About Derek Hammer

Derek Hammer

Derek Hammer writes code for a living. He loves to travel, share a good beer and try new things. He currently lives in Chicago, Illinois and works for ThoughtWorks.

I was born in 1987 in Indianapolis. I grew up in Brownsburg and Plainfield. Both are outside of Indianapolis. I graduated from Plainfield High School in 2006. I attended Rose-Hulman Institute of Technology and pursued a B.S. in Software Engineering.

At Rose-Hulman, I became a different person. I was the President of the Spirit Club, a Sophomore Advisor and I often felt like a Van Wilder on campus. I went from being extremely introspective to a more balanced person that could find happiness in either a college party or in a quiet room with a book.

I learned some software on the side. I wasn't able to get an internship my freshman year and so I worked at a Wal-Mart warehouse and ran my own side business. My business was in fixing people's computers. I charged the low-low fee of $20 per hour (and most of the work that I did was only an hour long). People were happy to pay a college student that fee.

My sophomore year (and surely being an SA helped this!) I was able to grab an internship with an esteemed Rose-Hulman grad company in Indianapolis. Software Engineering Professionals was a solid software company that has a very good reputation in Midwest software circles. I was there working on a web application. I was terrible at writing software then. I can't believe that they put up with the interns' code! That internship was about learning what I did not know about software.

Coming back to school with knowledge in hand about what I didn't know in software, I started to try to better myself. This was really the first time I took serious initiative in my professional development. The largest gap in my knowledge was testing. I spent the year diving into how to best test software. That lead me to test driven development. For a number of reasons, I jumped in. Along side, I was working through the 37X series at Rose-Hulman. That is the software engineering curriculum (we had 'common CS courses' before this). This allowed me to experiment with how I wrote code. Testing helped me produce working code. It didn't help me produce working software.

I had another internship at SEP the following summer. There I worked on a mobile application (for old-school Windows Mobile 6 platform). There, I grew into the software creator that I am today, though with some rough edges. I was lucky enough to be on the same project as Jon Fuller. Between Jon and Mike Brown (a mentor on another project), I was able to absorb more knowledge as I had in the previous three years of college. By the end of the summer, I was a confident software engineer that felt able to deliver real software. I also picked up a habit of pairing, TDD and this new group of practices called Agile.

The first year that I lived off campus, I lived with two of my best friends. That was the life. There were three different staples to my life there. First, the obvious, was school. I still needed to attend classes and get my hours in for graduation. Second, there was the social gatherings (also known as college parties and/or the bars!). However, we weren't always surrounded in the social context that is living on campus (which tires all but the most extroverted people). Last, there was the intellectual discussions, research, bickering and entertainment. I was not odd for us to come home after courses and course work and watch a TED video. Then we'd talk about it. Then we'd drink a couple of delicious beers and head to bed to do the same the next day.

While most of my course work that year was about getting enough credits for graduation requirements, there were two exceptions. The first exception was senior project. We were working with OmniGroup to create "OSL" (it would later be 'branded' as Localize). Armed with my new found confidence in delivering software, I was able to convince the team to go about the year-long project using this thing called Agile. Though they weren't as gun-ho as I was, they agreed with the plan and we rolled with it. Our first release was 6 weeks after we started. I was disappointed we didn't have a release in week 2. That was, in part, my ignorance. We rolled with it the rest of the year and produced something that I was proud to create. It wasn't perfect and, in retrospective, we could have done some things better. I was and am proud of that product.

The other exception to the "getting enough credits for graduation requirements" was Compilers. The course was with Curt Clifton and my partner in the course was Chandler Kent (Chandler was also a senior project team member and good friend). Curt waved a pre-requisite in order for me to get into the course and I am really glad that he did. In terms of computer science geek-out, it was the best project I've worked to complete. Not only that, we completed it with ease. Part of the reason for that is that Chandler and I 'click' as a creative software team. Since this was the final term of the three term system at Rose (and my last one at college), Chandler and I were able to apply what we had learned from Senior Project to the compilers project. We created a MiniJava + Closures compiler that used jison. That is, we wrote a simplified Java compiler that generated JVM byte code in Javascript. That was pure fun.

At the end of 2009, I got a call from ThoughtWorks. They wanted me to come in for the Super Saturday interview in Chicago. I was excited. I only applied to five or six companies and really focused my applications toward them. I also invested a great deal of energy in deciding on those five or six companies. It was very much like the college selection process for me. My top 'school' was ThoughtWorks. It was my dream job. I would get to work with some of the best minds in the industry, get to see the world and learn more in 3 years than I would learn spending 15 years in a corporate job.

I got the job. Brian Guthrie had something to do with that. I started at ThoughtWorks in June 2010. Since starting, I've worked in 5 different "first class" languages (Java, Objective-C, .NET, Javascript, ActionScript [:\ I know]) on 4 platforms (iPhone, Android, iPad, Web) through 4 different client projects (and a couple pro bono projects). I've worked in three major cities (Chicago, Dallas and Los Angeles). I've visited two others (San Francisco and Seattle). I've done coaching, delivery, facilitation and dev-ops. All of it is fascinating and the pace of my learning seems to be increasing. The most surprising thing that I've learned, though, is that what I'm learning most has nothing to do with technology and everything to do with life.

Disclaimer: All opinions on this blog are solely mine and may not be shared by my employer.