The full Java life: Interview with William Weiss at

On passion, determination, and playing at work

There’s more to being a code slinger than late nights, coffee, and grey cubicles. In this first installment of The Full Java Life, Matthew Heusser travels to Las Vegas, Nevada, to talk to William Weiss, a veteren Java programmer for Weiss talks about his career trajectory, life at Zappos, why he's not interested in management, and what Java tools he finds currently most exciting, as well as indispensable.

A few months ago I ran into a video produced by our friends at Oracle called "The Java Life Rap Music Video" (see Resources). The video is funny. It includes standard stereotypes like the geek with the high-water pants and horn-rimmed glasses. One scene is a late-night pizza session where, In the background, we see an old data center with wires everywhere, dimly-lit grey cubicles, Cheetos and Red Bull in the on-site vending machine.

Why is "Java Life" funny? Maybe because it's a little too true. Here's the question, though: is the best thing about living the Java life really getting a Herman Miller Aeron Chair? Is there something wrong with a programmer who is still programming after 10 years or more, rather than switching over to management?

I don't think so, and I hope you don't either.

The Full Java Life is a new JavaWorld series that asks how Java developers really work. What keeps mid-to-senior technical professionals engaged with programming and how do they create lives that escape the cliches of grey cubicles, coffee stains, and geek pride? What inspires young guns to do their best work, and how do they temper and hone themselves into the seasoned programmers their profession needs them to become? How do career programmers break out of the cubicle, or make peace with it? These are some of the questions I'll ask with this series, interviewing one developer at a time to find out what we can learn from each other about living a full Java life.

For this first episode I travelled to Henderson, Nevada, to interview William Weiss, a programmer at

About Zappos

You know Zappos, it's that little company that grew from startup in 1999 to $1.01 billion in sales in 2008, when it sold to Amazon for 10 million shares of common stock. Today, the company is a wholly owned division of with stock worth around $1.2 billion.

The ethic at Zappos is service, the motto is to deliver happiness. That's also the title of the book by Tony Hsieh, the company's CEO and co-founder. Zappos takes its service ethic seriously, too; the car it sent to pick me up was painted with big white letters promising to "Bring the wow."

The offices at Zappos are actually fun. The environment is freewheeling, and outside of the call center (where someone has to be on the phones at all times) no one watches the clock.

When I asked whom I should interview for this series, Director of Software Development Rick Duggan suggested that I talk to William (Bill) Weiss. According to Duggan, Bill is serious programmer who takes his craft seriously, and has made a personal commitment to Java. Several of Bill's projects have become internal tools that people actually use -- and like. Other programmers go to Bill when they get stuck, and many look up to him.

I met up with Bill in the "Blue Man Group" room, which is decorated like the famous improvisational show. We only had a few minutes to talk, but we made the most of it.

Figure 1. Meet William Weiss: 'They said you wanted a hardcore Java programmer. But everybody went to lunch, so they sent me.'

Matt Heusser: You've got an interesting resume. Five years as a bartender at OutBack Steakhouse, then you became a programmer in 2002. How did that happen? What can you tell me about your education?

William Weiss: It all started with a little Commodore 64 that my parents had the foresight to purchase in the early '80s. At the time, our family lived in the little Nevada mining town of Round Mountain. Not a whole lot to do there. The closest town with a McDonald's was 57 miles away, and that didn't even happen until 1991! Given the lack of options, my brother and I chose to manually type in games from computer magazines ... and pray the power didn't go out since we didn't have a floppy drive at the time. This led to actually wanting to learn what we were doing, and two BASIC programmers where born.

As far as education, I'm either highly educated, or completely uneducated -- depending on who you ask. I've been fascinated by computers from the first day I sat down in front of one. Since then I've spent countless hours reading, programming, and designing on both my own time and my employer's. From an academic perspective, I took computers in high school, received my diploma and have six totally non-computer related credits from UNLV. I've just never enjoyed the academic setting. It has always bored me to tears. I just wanted the teachers to get out of the way so I could actually do something. On the other hand, my brother went on to get a Masters in Computer Science. Go figure.

Given this background, I never really thought that I would become a "professional" programmer. It was a hobby, something I did because I had a passion for it and enjoyed creating cool stuff, not because I thought anyone would pay me for it. However, I had done a little freelance web work in ASP, and was thinking about applying for web designer position open at the company my brother worked for. Against my better judgement, he convinced me that I should apply for a programming position. Amazingly, I made it through my interview, completing the programming sections in Applesoft BASIC!

In 2000, when I told my regulars at the bar that I was leaving to do programming, they gave me funny looks. They thought you needed a degree to do that. Guess not.

Matt Heusser: I'm curious about the choices you've made. Why Zappos? Why Las Vegas? Why Java?

William Weiss: I'll try and tackle these in chronological order. First, Vegas. I moved to here in 1995, which practically makes me a native. Las Vegas being only one of two decent-sized cities in the state (Reno being the other), it was kind of a natural fit for a guy looking to escape the small town life and find more opportunities. It also helped that my brother was already attending UNLV and I already had established friendships here.

Next came Java. After I landed my first programming job, it was time to learn something a bit more marketable than BASIC. In 2000, at least where I worked, Java was still the new kid on the block. Coming from BASIC and ASP, I loved the concepts I found in OOD. The idea that I could encapsulate my logic and use it over and over again was great. Interfaces? Polymorphism? Awesome. When I began to discover the persistent nature of servlets, I was hooked and never looked back. Of course, that was back in the time when rolling your own servlets was still common.

In 2007, when the funding for the government contract our company was working on started to look iffy, I began putting out feelers. In the end I was offered a job by two companies in town. The first company was a Java shop, quiet cubicles ... you know, familiar. The other was Zappos, pretty much the polar opposite of all my previous programming experience. Zappos was loud. Really loud. Everyone worked in a big bullpen ... writing Perl. Despite this, my gut told me that in the end, I would grow more, have more opportunities and way more fun at Zappos. The gut got it right.

The idea that I could encapsulate my logic and use it over and over again was great. Interfaces? Polymorphism? Awesome. When I began to discover the persistent nature of servlets, I was hooked and never looked back. Of course, that was back in the time when rolling your own servlets was still common.

I should also mention that during the interview, when asked where I saw myself in five years, I said: programming. I made no secret that I had no interest in management. I'll take designing and writing actual code over meetings every time. Five years later, I'm still at the keyboard and my calendar is very light -- life is good.

Matt Heusser: You've been at Zappos since 2007. Over the past few years, what are you most proud of that you built? What are you working on right now?

William Weiss: I've always agreed with the "eat your own dog food" paradigm. Actions speak louder than words. If you're proud of what you're writing, whenever possible, you should be using it yourself. This thinking led to probably my proudest moment: my dog food eating itself.

I had written a session-management tool to meet our peculiar set of requirements. Along with this I had written a dashboard for management and monitoring. Inevitably, before this dashboard could really be put to use, it would need to be secured. How would I manage the dashboard's sessions? Using the exact same tool that the dashboard was monitoring (and no, this did not cause an infinite loop). This wasn't the most complex or cool code I'd ever written, but it clicked right into place -- that is a great feeling.

As of late, I've been working on a lot of things at the same time. One library that I always come back to is our core "commons" library. As of late, I've been working on a lot of things at the same time. One library that I always come back to is our core "commons" library. Not the sexiest code, but this is a project where I can quickly see it help my fellow developers. Frankly, having someone tell me that something I've written made their job easier, or that they love this new feature is the best part of being a programmer.

Matt Heusser: You self-identified as a Java programmer going way back, but when you started at Zappos, they were a Perl shop. In the time since, the company has transitioned back to Java. What was that experience like? What did you learn?

William Weiss: I relearned Perl for one thing. I also learned that I am not a very terse Perl programmer. In fact, my Perl code tends to look a lot like Java, pretty verbose. I take my hat off to those masters who can write an entire program in one line of Perl. In the words of Wayne and Garth: I'm not worthy!

Overall, I'm very grateful to my very patient colleagues that helped me comprehend the existing codebase and made my work a success during those early days.

So, I was pretty happy to be playing in the world of Java again when I was moved over to work on some of our search capabilities with Lucene.

Matt Heusser: What is it like working at Zappos? What is your favorite part of the company culture?

William Weiss: Loud. Seriously though, it is constantly evolving. I feel as a company we work really hard to try and retain the sense of fun despite the fact that we are growing. It makes for an interesting mix of trying new technologies / in-office parade / solving the hard problems / happy hour down the street / hit the release date. In short, working at Zappos keeps you on your toes. But don't get the wrong idea. While Zapponians may play hard, we work hard too. A great deal of effort is put into ensuring code is robust and scalable.

If you can be passionate and determined in what you do for a living every day, then you don't have to go to work anymore -- you're going to play.

A great part of our culture in the technology department is that we are always exploring. In fact, we are actively designing with freedom to try new things in mind. Design the system interactions in such a way that we are not tied to any given technology. This always gives us the option to change when a better way comes along.

The 10 core values at Zappos have been covered a number of times in various articles. I'd have to say the part of our culture nearest and dearest to my heart is "Be Passionate and Determined." Working at a company that encourages this is priceless. If you can be passionate and determined in what you do for a living every day, then you don't have to go to work anymore -- you're going to play. I love what I do, I'm passionate about writing the best code I can, and I'd do that even if nobody paid me for it. I have to admit that this is one of the key things I look for when speaking with job candidates. Is this something you love, or is it something you do for the money? If you love it, you will strive to excel and learn all you can.

Matt Heusser: What is new and exciting in the world of Java?

William Weiss: I'm not sure that these would be considered "new," but they are definitely exciting to me and I'm just getting a chance to really get my hands dirty with them: First, projects like GWT and Echo3. Yes, they are vastly different architectures, but the end goal is similar: make it easy to create your app's front-end in a programmatic fashion. Combine that with Jetty and you can pretty quickly iterate through development.

Along the same lines of making things easier and quicker, I'm a big fan of pretty much everything from SpringSource. The Spring framework itself just seems to keep getting better and more useful, although I'm a little worried about some of the annotation stuff. While I have not had a chance to play with it much yet, I really like the idea of Roo. Anything that lightens the load of getting a project off the ground gets a thumbs up from me.

Matt Heusser: Okay, forget new and exciting. What do you think is the most under-appreciated feature or library in Java? What are the one to three things you use every day but suspect some folks have never heard of?

1 2 Page 1
Page 1 of 2