177 symposiums and 27,750 attendees since 2002

Nathaniel Schutta

Author, speaker, software engineer focused on user interface design.

Nathaniel T. Schutta is a senior software engineer focussed on making usable applications. A proponent of polyglot programming, Nate has written two books on Ajax and speaks regularly at various No Fluff Just Stuff symposia, universities, and Java user groups. In addition to his day job, Nate is an adjunct professor at the University of Minnesota where he teaches students to embrace dynamic languages.

Video

Designing for Ajax
Designing for Ajax
Monday - September 1, 2008


Blog

Ajax: Tools of the trade

Posted Tuesday, May 26, 2009

Over on JavaWorld, you can see my latest article: Ajax: Tools of the trade. If it’s been a while since you looked at client side development and you still think alerts are the end all be all of web debugging, you might want to more »

Good Ideas Aren’t Always New

Posted Tuesday, April 21, 2009

At QCon, Glenn Vanderburg, Michael Feathers and I (there may have been others, as I recall some ESB was involved…) were talking about Mike’s 10 Papers Every Programmer Should Read post (if you haven’t read it, pleas more »

Test Infecting the Legacy Organization

Posted Wednesday, April 15, 2009

As Neal Ford explains, the NFJS Anthology series has been reborn as a monthly magazine and in the current edition, you can read my take on test infecting legacy organizations. I’ve been a proponent of the testing meme for most o more »

Vendors are Risky Too

Posted Monday, April 13, 2009

“We’re not a software company” is a common refrain these days; ever since Nicholas Carr’s “IT Doesn’t Matter,” it seems like more and more companies are bending over backwards to prove they don more »

Keynote 09

Posted Sunday, March 29, 2009

I’ve been a big believer in Keynote since shortly after it came out - at first I didn’t see what all the fuss was about, but after using it for a few months, I had to create a presentation at work and I was reminded of how p more »

Speaking at TSS JS

Posted Wednesday, February 18, 2009

March is a busy month on the conference circuit - in addition to speaking at QCon London, I’ll be at TheServerSide.com’s Java Symposium talking about DSLs in JavaScript (yes Virginia, there’s a real programming language more »

Speaking at QCon London

Posted Saturday, February 7, 2009

Just a quick note to say I’ll be speaking at QCon London in March - I’ll be giving a talk on DSLs in JavaScript. Looking at the schedule, it should be a heck of a show and I’m really looking forward to spending some quality time more »

JavaWorld Podcast - Ajax developer’s toolkit

Posted Monday, January 26, 2009

A recent chat with my good friend Andy Glover (of “Jolt award finalist” easyb fame) has found it’s way up on JavaWorld’s podcast page. Andy has a good overview of our conversation over on the Disco Blog. I had a blast coveri more »

It Isn’t the Uniforms

Posted Sunday, January 18, 2009

If you’re a football fan (American style) this is a big weekend - the AFC and NFC championship pit (pun intended) a couple of six seeds vs. a two and a four respectively. Much will be made in the off-season of just how the Cardinals made a Gia more »

Speaking at CodeMash

Posted Monday, December 29, 2008

I’m a bit late in announcing this, but along with fellow Fluff Talkers Ken Sipe, Andy Glover and Venkat Subramaniam, I’ll be speaking at CodeMash 2009 this January! I’ll be talking about Dynamic Languages and the JVM as well as Test more »

Rewrites Are Like Moving

Posted Sunday, December 14, 2008

M more »

The Importance of Retrospectives

Posted Friday, November 14, 2008

T more »

Duct Tape and Bailing Twine

Posted Thursday, September 18, 2008

I more »

Hug a Developer

Posted Sunday, August 31, 2008

M more »

Vendor Presentations

Posted Tuesday, August 26, 2008

R more »
Read More Blog Entries »

Presentations

Pragmatic Usability (aka, Software Engineer's Guide to Usability)

While some companies have the luxury of a full time usability team, most of us have to make do on our own. Sure, it might be easier (and more comfortable) to focus on all the hip back end goodness, but if your user interface makes users yack, your produc more »

Test Infecting the Legacy Organization

When starting a new project, most developers make sure that testing is a priority. However, only the lucky few live in the idyllic world of greenfield development; the vast majority of us must contend with code written when "test" was a four letter word a more »

Dynamic Languages and the JVM

With all the attention being paid to Ruby and it's hip cousin Rails, many in the Java camp may be feeling like their party invitation is "lost in the mail". Fear not loyal Java lovers, the dynamic language meme is alive and well in your space! Between num more »

Designing for Ajax, part 1

So you've convinced the boss that your new web application just has to have Ajax... more »

Improving Code Quality

It seems that software follows the second law of thermodynamics - in other words, code tends towards disorder. Of course it doesn't have to be that way, and we have a number of tools and techniques that we can apply to keep our code in tip top shape. This more »

JavaScript: the Good, the Bad, and the Ugly

Thanks to Ajax, JavaScript is cool again and developers are taking a second look at this much maligned language. This session will give you an overview of this misunderstood language as well as opening your eyes to some of the excellent tools available to more »

Project Smells

We all know that code can have a certain... more »

Dojo: Getting Started

So you want to do some Ajax and you've rightly concluded that you don't want to build your own library. After some thought, you've settled on using Dojo - but you're not sure how to get going. This talk will introduce Dojo and discuss several ways that Aj more »

Designing for Ajax, part 2

We'll pick up where Part 1 left off working in even more advanced approaches such as offline support with Google Gears more »

Testing the Web Layer

While your project might have nearly 100% code coverage on the server tier, many projects ignore testing the web layer. With more and more code being pushed to the browser, a lack of tests for the client code begs for trouble. more »

Hacking Your Brain for Fun and Profit

The single most important tool in any developers toolbox isn't a fancy IDE or some spiffy new language - it's our brain. Despite ever faster processors with multiple cores and expanding amounts of RAM, we haven't yet created a computer to rival the ultra more »

Seven Habits of Highly Dysfunctional Teams

Being on a high performing team is a transcendent experience - unfortunately, many of us find more dysfunction than function. In this talk, we'll take a look at some of the common issues that face teams and discuss some ways of working towards a happy cre more »

CSS For Developers

By now, developers know they aren't supposed to use tables for layout but despite good intentions, most look at CSS as a black art. While schooled in algorithms and data structures, when it comes to CSS, most of us just copy, paste and pray. This talk wil more »

Project Bootstrapping

Ah, that new project smell, it's intoxicating! Full of hope, we trek off in pursuit of technical greatness. In this talk, we'll cover some of the important first steps of a new project including continuous integration, creating a testing culture and esta more »

Making Web Apps Suck Less

We've all used web applications that had us screaming at their creators - unfortunately sometimes we're the ones being cursed. Believe it or not, there are some simple steps we can take to ensure that our users have a great experience. We'll talk about th more »

Pragmatic Usability (aka, Software Engineer's Guide to Usability)

close

Nathaniel Schutta By Nathaniel Schutta
While some companies have the luxury of a full time usability team, most of us have to make do on our own. Sure, it might be easier (and more comfortable) to focus on all the hip back end goodness, but if your user interface makes users yack, your product is doomed.

This talk will provide an overview of usability from the perspective of the software engineer.

Test Infecting the Legacy Organization

close

Nathaniel Schutta By Nathaniel Schutta
When starting a new project, most developers make sure that testing is a priority. However, only the lucky few live in the idyllic world of greenfield development; the vast majority of us must contend with code written when "test" was a four letter word and testing was the sole responsibility of that "other" organization. We'll examine some techniques for introducing testing - not just to your code but to the rest of your development organization.

When starting a new project, most developers make sure that testing is a priority. However, only the lucky few live in the idyllic world of greenfield development; the vast majority of us must contend with code written when "test" was a four letter word and testing was the sole responsibility of that "other" organization. We'll examine some techniques for introducing testing - not just to your code but to the rest of your development organization.

Dynamic Languages and the JVM

close

Nathaniel Schutta By Nathaniel Schutta
With all the attention being paid to Ruby and it's hip cousin Rails, many in the Java camp may be feeling like their party invitation is "lost in the mail". Fear not loyal Java lovers, the dynamic language meme is alive and well in your space! Between numerous JSRs and various languages, the JVM is becoming quite the dynamic disco. After an overview of what it means to be dynamic, this talk will look at JRuby, Groovy, and Rhino.

With all the attention being paid to Ruby and it's hip cousin Rails, many in the Java camp may be feeling like their party invitation is "lost in the mail". Fear not loyal Java lovers, the dynamic language meme is alive and well in your space! Between numerous JSRs and various languages, the JVM is becoming quite the dynamic disco. After an overview of what it means to be dynamic, this talk will look at JRuby, Groovy, and Rhino.

Designing for Ajax, part 1

close

Nathaniel Schutta By Nathaniel Schutta
So you've convinced the boss that your new web application just has to have Ajax...but now what? With dozens of libraries making even the most blinkish of interactions trivial, how do you decided where to sprinkle the magic Ajax dust? This talk will give a plain old boring "web 1.0" an Ajax facelift with a focus on improving the user experience providing you with a game plan for introducing Ajax to your world.

So you've convinced the boss that your new web application just has to have Ajax...but now what? With dozens of libraries making even the most blinkish of interactions trivial, how do you decided where to sprinkle the magic Ajax dust? This talk will give a plain old boring "web 1.0" an Ajax facelift with a focus on improving the user experience providing you with a game plan for introducing Ajax to your world.

Improving Code Quality

close

Nathaniel Schutta By Nathaniel Schutta
It seems that software follows the second law of thermodynamics - in other words, code tends towards disorder. Of course it doesn't have to be that way, and we have a number of tools and techniques that we can apply to keep our code in tip top shape. This talk will discuss ten things you can do to fight back!

It seems that software follows the second law of thermodynamics - in other words, code tends towards disorder. Of course it doesn't have to be that way, and we have a number of tools and techniques that we can apply to keep our code in tip top shape. This talk will discuss ten things you can do to fight back!

JavaScript: the Good, the Bad, and the Ugly

close

Nathaniel Schutta By Nathaniel Schutta
Thanks to Ajax, JavaScript is cool again and developers are taking a second look at this much maligned language. This session will give you an overview of this misunderstood language as well as opening your eyes to some of the excellent tools available to ease the pain of developing in this dynamic language.

Thanks to Ajax, JavaScript is cool again and developers are taking a second look at this much maligned language. This session will give you an overview of this misunderstood language as well as opening your eyes to some of the excellent tools available to ease the pain of developing in this dynamic language.

Project Smells

close

Nathaniel Schutta By Nathaniel Schutta
We all know that code can have a certain...odor but frankly so can projects. Everyone has their favorite horror story or tale of a death march. In this talk, we'll discuss common project smells and what you as a developer can do to maintain your sanity - and your hair line!

We all know that code can have a certain...odor but frankly so can projects. Everyone has their favorite horror story or tale of a death march. In this talk, we'll discuss common project smells and what you as a developer can do to maintain your sanity - and your hair line!

Dojo: Getting Started

close

Nathaniel Schutta By Nathaniel Schutta
So you want to do some Ajax and you've rightly concluded that you don't want to build your own library. After some thought, you've settled on using Dojo - but you're not sure how to get going. This talk will introduce Dojo and discuss several ways that Ajax can improve your new or existing application.

So you want to do some Ajax and you've rightly concluded that you don't want to build your own library. After some thought, you've settled on using Dojo - but you're not sure how to get going. This talk will introduce Dojo and discuss several ways that Ajax can improve your new or existing application.

Designing for Ajax, part 2

close

Nathaniel Schutta By Nathaniel Schutta
We'll pick up where Part 1 left off working in even more advanced approaches such as offline support with Google Gears.

We'll pick up where Part 1 left off working in even more advanced approaches such as offline support with Google Gears.

Testing the Web Layer

close

Nathaniel Schutta By Nathaniel Schutta
While your project might have nearly 100% code coverage on the server tier, many projects ignore testing the web layer. With more and more code being pushed to the browser, a lack of tests for the client code begs for trouble.



This talk will explore several testing options including Selenium, JsUnit, Crosscheck, JSCoverage, Watir, JSLint, JSSpec and others.

Hacking Your Brain for Fun and Profit

close

Nathaniel Schutta By Nathaniel Schutta
The single most important tool in any developers toolbox isn't a fancy IDE or some spiffy new language - it's our brain. Despite ever faster processors with multiple cores and expanding amounts of RAM, we haven't yet created a computer to rival the ultra lightweight one we carry around in our skulls - in this session we'll learn how to make the most of it. We'll talk about why multitasking is a myth, the difference between the left and the right side of your brain, the importance of flow and why exercise is good for more than just your waist line.

The single most important tool in any developers toolbox isn't a fancy IDE or some spiffy new language - it's our brain. Despite ever faster processors with multiple cores and expanding amounts of RAM, we haven't yet created a computer to rival the ultra lightweight one we carry around in our skulls - in this session we'll learn how to make the most of it. We'll talk about why multitasking is a myth, the difference between the left and the right side of your brain, the importance of flow and why exercise is good for more than just your waist line.

Seven Habits of Highly Dysfunctional Teams

close

Nathaniel Schutta By Nathaniel Schutta
Being on a high performing team is a transcendent experience - unfortunately, many of us find more dysfunction than function. In this talk, we'll take a look at some of the common issues that face teams and discuss some ways of working towards a happy crew.

Being on a high performing team is a transcendent experience - unfortunately, many of us find more dysfunction than function. In this talk, we'll take a look at some of the common issues that face teams and discuss some ways of working towards a happy crew.

CSS For Developers

close

Nathaniel Schutta By Nathaniel Schutta
By now, developers know they aren't supposed to use tables for layout but despite good intentions, most look at CSS as a black art. While schooled in algorithms and data structures, when it comes to CSS, most of us just copy, paste and pray. This talk will remove some of the mystery surrounding styling web applications. We'll cover the basics and show you how libraries like YUI can make things even easier.

By now, developers know they aren't supposed to use tables for layout but despite good intentions, most look at CSS as a black art. While schooled in algorithms and data structures, when it comes to CSS, most of us just copy, paste and pray. This talk will remove some of the mystery surrounding styling web applications. We'll cover the basics and show you how libraries like YUI can make things even easier.

Project Bootstrapping

close

Nathaniel Schutta By Nathaniel Schutta
Ah, that new project smell, it's intoxicating! Full of hope, we trek off in pursuit of technical greatness. In this talk, we'll cover some of the important first steps of a new project including continuous integration, creating a testing culture and establishing low ceremony process.

Ah, that new project smell, it's intoxicating! Full of hope, we trek off in pursuit of technical greatness. In this talk, we'll cover some of the important steps of a new project including continuous integration, creating a testing culture and establishing low ceremony process.

Making Web Apps Suck Less

close

Nathaniel Schutta By Nathaniel Schutta
We've all used web applications that had us screaming at their creators - unfortunately sometimes we're the ones being cursed. Believe it or not, there are some simple steps we can take to ensure that our users have a great experience. We'll talk about the role of testing, easy ways to make a web site perform as well as where Ajax can help give a richer experience.

We've all used web applications that had us screaming at their creators - unfortunately sometimes we're the ones being cursed. Believe it or not, there are some simple steps we can take to ensure that our users have a great experience. We'll talk about the role of testing, easy ways to make a web site perform as well as where Ajax can help give a richer experience.


Nathaniel's NFJS Schedule

Minneapolis, MN
Mar 13 - 15, 2009

Denver, CO
May 29 - 31, 2009

Columbus, OH
Jun 12 - 14, 2009

Austin, TX
Jul 10 - 12, 2009

Salt Lake City, UT
Jul 17 - 18, 2009

Des Moines, IA
Aug 7 - 9, 2009

Boston, MA
Sep 11 - 13, 2009

Seattle, WA
Sep 18 - 20, 2009

Calgary, Alberta
Sep 25 - 27, 2009

Minneapolis, MN
Oct 2 - 4, 2009


Books

by Ryan Asleson and Nathaniel T. Schutta

Foundations of Ajax Buy from Amazon
List Price: $39.99
Price: $28.42
You Save: $11.57 (29%)
  • Foundations of Ajax presents a concise, down-to-earth explanation of the Ajax technology. Cutting through the hyperbole, this book focuses on what the Ajax technology means, how you start using it, and why it can make a difference to your products.

    The authors begin with a clear explanation of how the Ajax techniques work, presenting the "XMLHttpRequest" object, and outlining how requests to the server are handled. Then they demonstrate the techniques' strengths and weaknesses in a variety of environments, backing up their discussion with a multitude of coding examples and links to existing Ajax applications already on the Web. The authors put it all together and leave you with a solid understanding of how to use this new Ajax approach to its fullest potential.


by Ryan Asleson and Nathaniel T. Schutta

Pro Ajax and Java Frameworks Buy from Amazon
List Price: $49.99
Price: $31.98
You Save: $18.01 (36%)
  • As a Java developer, you want a guide that shows you how to add Ajax functionality to your web applications with a minimum of effort. Well look no further than Pro Ajax and Java Frameworks. In this book, recognized Java experts and authors of the best-selling Apress title, Foundations of Ajax, will show you how.

    The authors begin by recapping Ajax basics. Then they unveil a comprehensive Java/Ajax toolkit. Tools include JSEclipse for code editing, Venkman for JavaScript debugging, and Dojo Compressor for code compression. They also explain Log4js (and other tools) for JavaScript logging, JsUnit (and others) for testing, and various libraries like AjaxTags, DWR, and Script.aculo.us for rapid code development.

    The last part of the book shows you how to build up a series of professional Java/Ajax applications. These will incorporate some of todays most popular frameworksSpring, JSF, Struts, and Tapestrygiving you all you need to incorporate Ajax into your everyday work and become an Ajax expert!


by Nathaniel T. Schutta

Extreme UI Design: The User is Always Right Buy from Amazon
List Price: $39.99
Price: $26.39
You Save: $13.60 (34%)
  • You know about Extreme Programming, Agile cooperation, and continuous improvement, but did you know you can apply these to UI design? I'll show you how to make your end users happy all the time by applying what you already know about software development to the design and implementation of user interfaces. More and more, developers are being called upon to create user interfaces without designers. Extreme UI Design: The User is Always Right will show you how to use your well-honed programming skills to build measurably effective front ends.

    It's all about usability, the software equivalent of flossing; you know you should do it, yet sometimes there just isn't time. For developers, there often isn't money to hire a designer. In tough times, developers who can design become essential, but most software engineers are schooled in algorithms and compilers and rarely in the intricacies of user interaction. This book is for all of you who find yourselves working on the front lines of software development and want to create an application that respects the maxim that all users are right.

    • Discover best UI design practices for software engineers.
    • Maximize usability right in your code with a few simple tools.
    • Write software that works for the user!

    What you'll learn

    • Distinguish usability myth from reality
    • Give users both what they want and what they need (these aren't the same)
    • Use your application prototypes as test beds for usability
    • Apply rigorous heuristics to measuring UI effectiveness
    • See why CRAP is important to creating good interfaces
    • Identify and avoid common UI anti-patterns

    Who is this book for?

    Looking to get an edge in today's workplace? Worried about being downsized? As companies look to cut expenses, the developer who can do more has a better chance of survival. If the UI team gets the axe, can you step in and help run a usability test or whack out a paper-based prototype? After reading this book, you'll be more valuable to your software development organization, you'll have a more complete toolbox, and you'll create applications that don't make your users yack .

    This book is primarily aimed at software developers who are tasked with front-end development. Considering that almost all software has some kind of interface, it should appeal to a large audience. Depending on how the book is slanted, it should also interest the agile community.