** UPDATE (July 5th, 2012): I’m disabling comments on this post. I no longer work for Thoughtworks. I still consider it a great company and wish you luck on joining them. However, I can’t really answer questions about the company anymore. I hope this post still helps people hoping to better understand what the interview process is like.
I recently checked the statistics for my blog and I was surprised to find that one of top reason that someone came to my blog was because I had tagged a previous article with the “Thoughtworks interview process” or something to that effect. Unfortunately for those people, the article was brief, and didn’t reveal much more than the Thoughtworks interview info page.
Given that I have been involved in the interview process at thoughtworks, I thought I would share my perspective for anyone who’s interested – the perspective of a developer at Thoughtworks that may be interviewing you at some point.
Here are some general consideration that go through my mind when I’m evaluating a candidate.
1. Are you a top notch developer
2. How much do you know about Agile, and do you have experience in Agile
3. Are you a fit for consulting – ie: can you travel, will you be mesh well in a variety of client environments
4. Are you generally interested in Technology
5. Will we want to work with you, are you fun to work with and would I learn from you
6. Are you poly-skilled – will you be able to work in many programming languages, platforms, and frameworks
7. Are you open to learning / are you open to new ideas
1. Spend some time researching us and have an idea what we care about. This doesn’t mean you have to know a detailed history of the company, but you should have an idea of some higher level points of who/why/what we are.
2. Take the code submission seriously. This is the one of the first major gates that needs to be passed to get to the interview process. It’s your chance to express to us your coding philosophy. Don’t communcate “I don’t care about this part” or “I didn’t have time to do it well.”
3. Don’t try to tell us what you think we want to hear. Don’t try to show that you have more knowledge/experience than you do; it’s very easy to spot that. Be yourself, honestly express what you know and don’t, and what you are interested in, or not.
4. Have fun. We hope to have fun on days were we interview people, and it’s great when the candidates have a good time as well.
5. Get a good nights sleep before the day of the interview. It’s going to be a long day, and you don’t want to try to swing it on 4 hours of sleep.
If you don’t get in, don’t worry
1. There are many points of failure – Our process is not easy. Unlike the way many other companies interview developers, candidates don’t just show up and talk to a few tech-lead or architect people. This means that if you have an “off day” there are more stages that it can affect.
2. Our process has variation – There is no perfect pass/fail criteria in the process. It depends on a myriad of factors that might be different on a different day.
3. Perhaps you just weren’t a good fit overall And that’s okay. No one is able to work anywhere. You are probably exactly what someone is looking for.
4. You might not be ready yet, but that doesn’t mean that you won’t be next time around. Sometimes, there are people that have the right background, and the right attitude, but they are a little short on experience or skill-sets.