Newsletter sign-up
View all newsletters

Enterprise Java Newsletter
Stay up to date on the latest tutorials and Java community news posted on JavaWorld

Sponsored Links

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

The full Java life: Interview with Jim Showalter, principal engineer at Intuit

Coding server-side Java on the Quickbooks back end

  • Print
  • Feedback

Page 4 of 4

Jim Showalter: Historically my focus has been on the server. There are enough problems on the server to keep a person occupied for an entire career. Yet lately I’ve been coming up to speed on client-side programming. JavaScript standardization across browsers, HTML5, and maturing tools make client-side programming increasingly straightforward -- but the rate at which new JavaScript frameworks and language features are introduced keeps it challenging.

"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: I know you've been working on a fair amount of web services and database work. Do you prefer REST or SOAP -- or JSON or XML -- and why?

Jim Showalter: As service providers, we can’t really dictate REST vs. SOAP, or JSON vs. XML to our clients, so we support them all. However, the programmers who use our services are trending towards REST/JSON as their preferred combination.

Matt Heusser: How do you test the web services? Do you have a framework?

Jim Showalter: We use a combination of HttpClient and JUnit, with canned requests in XML along with expected responses. We’ve written a bunch of test utility classes that understand our complicated business logic (the application does double-entry bookkeeping and has a global tax model) and our query format. When we detect that we’re writing the same boilerplate for multiple tests, we factor that into more utilities.

Matt Heusser: You also write a lot of unit tests in JUnit -- do you ever wrap those in timers to create performance tests? Is there a concept of performance testing at the unit level?

Jim Showalter: We use DynaTrace for performance testing, in a dedicated performance environment, and we get numbers there that are accurate. We run a series of end-to-end performance tests, rather than small unit tests.

Matt Heusser: What is your favorite way to "wrap" a database? Do you use an object-relational mapper like Hibernate?

Jim Showalter: I like JPA/Hibernate, but our application was written before Hibernate existed, so we have our own ORM. But we’re investigating what it would take to port to a standard.

Matt Heusser: Have you written classes that other programmers reuse? Tell us about code reuse at Intuit.

Jim Showalter: I’ve written classes and frameworks for reuse, and so do other programmers at Intuit, but that’s not where the true reuse advantage comes from. Our significant reuse comes from exposing our application’s accounting engine and data through a service layer other programmers can use, both inside and outside Intuit.

Matt Heusser: What is one thing about Java at Intuit that the world should know?

Jim Showalter: When young programmers think of “cool” technology companies, they’re probably thinking of Google, startups, that sort of thing. But Intuit has been described as a 30-year-old startup. We innovate, we’re growing (and hiring), we dominate some market sectors and are expanding into others, and the company is well managed. Java programmers (and other kinds of programmers) owe it to themselves to check us out.

About the author

Matthew Heusser is a writer and consulting technologist who lives in West Michigan. You can follow him on twitter @mheusser or learn more about his company, Excelon Development.

Read more about Enterprise Java in JavaWorld's Enterprise Java section.

Figure 3. Showalter with John Ruberto, director of product development for Intuit Quickbooks, Matt's host for the day at Intuit.

  • Print
  • Feedback

Resources