Recommended: Sing it, brah! 5 fabulous songs for developers
JW's Top 5
Optimize with a SATA RAID Storage Solution
Range of capacities as low as $1250 per TB. Ideal if you currently rely on servers/disks/JBODs
Page 3 of 4
Matt Heusser: Wait. You just said 12 hours a day, seven days a week to come up to speed -- for eight months. That sounds like a serious life commitment.
Jim Showalter : When you’re in flow state, you don’t really notice time. And it didn’t feel like work, because I was learning a bunch of new stuff, and learning is fun.
Matt Heusser: Tell us more about those eight months. What kinds of problems were you working on? Was it an at-home project? Open source? What IDE, version control, and technology stack were you working with?
Jim Showalter : It was entirely at home. Initially it was Visual Studio and C#, but later it was Eclipse and Java. Version control was Subversion, but now I use Git and the eGit plugin.
Matt Heusser: When it came time to code again, did you look at different languages? Why Java?
Jim Showalter : Java had become the dominant language for web development, plus it’s just a generally well-thought-out language. It doesn’t have a lot of weird exceptions or oddities. I can code in it basically as fast as I can type. I already knew C#, so the transition was fairly straightforward, although I still miss reified generics, value types, and delegates. I’m looking forward to Java 8 and beyond. Every update to the language has added something valuable, for example built-in support for XML serialization, annotations, for that matter generics. It keeps improving.
Matt Heusser: Can you tell us a little bit about what you do at Intuit? What products do you work on? How does Java fit into the Intuit architecture?

Jim Showalter : I work on Quickbooks Online, which is a full-featured web-based accounting application. The back-end is written in Java, and I work on the back-end. It’s a classic three-tier architecture, plus we have a layer of services. We’re gradually integrating it with everything else at Intuit, scaling it out, internationalizing it, making it part of Intuit’s third-party developer platform, etc. There’s a ton of activity -- a great place to be developing at Intuit!
Matt Heusser: Are there any little-known Java code libraries that you use every day that you would like to tell other developers about?
Jim Showalter: Most of what I use is standard stuff everyone knows about. JMockit is probably my favorite lesser known library. It’s indispensable for writing unit tests -- you can mock pretty much anything, including constructors, private methods, static methods, etc. The guy that writes it -- and there’s only one guy -- has a brain the size of a planet. There are some Eclipse plugins I really like that maybe aren’t well-known: EclEmma for coverage (it even has branch coverage now), UMLet for UML diagrams, and eGit for Git. I also really like Maven, but it doesn’t qualify as little known.
Matt Heusser: How has Intuit's technology stack changed in the seven years that you have been at the company?
Jim Showalter: Intuit's server-side technology stack hasn’t changed very much (Oracle, Java, Tomcat), although we continually upgrade the components to newer versions. On the other hand, the UI stack is constantly and rapidly evolving. It’s a full-time job just keeping up on the new JavaScript frameworks.
Matt Heusser: You say you work on the Java back-end of Quickbooks Online; do you ever work with client-side technologies?