** 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.
General Considerations
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
Specific Tips
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.

Hello,
Thought I’d add something… the thing that caught me off-guard, from the interviewee side, was that a lot of it focused on what sort of person I am. What are your other interests, hobbies, goals, what do you think about -non technical thing-? Overall I think the technical talk only got about half of the interview time.
But really I just wanted to comment.
I went through the process couple of weeks back (India). They told me I had some bright spots but I needed to get some experience since I had just 8 months of work-ex. They even said that they will give a list with few books that I should go through before applying again. Overall I loved the hiring process. I was evaluated based on various aspects. But I suppose I received a short feedback. Had they mentioned what exactly I need to improve upon, it would have been better. I emailed them last week asking for a detailed feedback. No response yet. I managed to get one though from an inside source.
IMHO, If you think you are good at software development, you should apply here. Not just because it is one of the best software firms to work at but even if things don’t workout, the evaluation process will expose your strengths and weakness and will shed a light on your areas of improvement.
Hey Chirantan,
How much time does thoughtWorks take to notify if you are offered a job or u are rejected?
thanks,
mark
Hi,
I was recently approached by Thoughtworks for an interview. I currently have the 3 coding problems in front of me and I am wondering which one to pick. Does it matter? Will it affect the screening?
Please let me know.
Thank you!
Prama
Well, I would say that you can rank them in terms of difficulty. A harder problem might get you a bonus point with some graders. However, the harder the problem, generally, the more code it takes to solve which results in more chances to make mistakes that could result in a bad grade. On the other hand, poor techniques on an easier problem is probably judged more negatively.
I would say that you should pick whichever problem you feel you can best solve. Assuming you can provide a great solution, it doesn’t matter which problem you solve.
Hi,
This might not necessarily have an exact answer, but generally, once i submit the code, in how much time does Thoughtworks revert back to me?
Also, pessimistically speaking, do they inform me even if it doesnt work out? Some companies have this policy of silence (instead of letting the candidate know)!
@Nikhil – They will always get back to you with a response. Sometimes the process takes a few weeks. If at any time you want an update, contact your recruiter and they should let you know what the likely timeframe is.
Thanks Kris; reassuring to know they don’t leave people hanging! Great blog; came here while googling for thoughtworks recruitment process, ended up reading many of your other posts too.
Hi Chirantan,
You have mentioned that thoughtworks has given some books to refer. can u please post those books name in this blog or can u pls mail me those to sathish.infotech@gmail.com. It will be very much helpful for me.
Thanx a lot…..
I second Sathish’s request. Chirantan If you can, email me or post here a list of the books they gave you after the interview.
rsmaniak@gmail.com
Thanks!
Yeah, one who would like to cruise thier career track in a fast pace can always consider ThoughWorks as a choice. Sure working with a company like TW will be fun too.
Kris, thanks for your informative (and optimistic) post. Do you have any recommendations on how one may practice for code submissions? I understand that you can’t reveal those used by Thoughtworks, but do you have any websites that offer a similar puzzles and grading?
@Clement – I don’t know of a specific site that you could use to practice with and be graded by. The closest thing I can think of are code kata’s: http://codekata.pragprog.com/2007/01/code_kata_backg.html Try solving some, and then analyze your own code. Try to come up with improvements and then incorporate them. Perhaps you can seek feedback from respected peers. Your goal, however, should be to learn and improve generally, not to practice for one code exam.
I went all the way upto the technical interview. The two gentlemen who took the interview gave a very good introduction about themselves(something unusual). This was followed by my intro and brief glance on various technology I’ve worked with. Then one of them picked up Hibernate and went a bit deep into it. They were expecting some deep concepts of hibernate, I told them I have the breadth of various technologies and frameworks. Depth is something than can be achieved on a need basis. Since I had experience in Cobol programming one of them went to the extent of asking how Inversion Of Control is achieved in Cobol. I was really confused. Then abruptly they asked if I had questions. Since I had asked some questions already in previous rounds, I did not had any.
Then, came the SHOCKER… they ended the interview and first guy said ” Well, it was NOT nice talking to you!”…. I almost could not believe my ears… let me say it again “Well, it was NOT nice talking to you!”.
Not only is that rude, it’s insulting. My total exp is greater than the exp of two folks that took my interview, however that’s not the point. I was not interviewed properly, they rejected based on just one framework/technology. I anyway had other better offers so don’t care!
@Vittal, I apologize for any rudeness that you encountered during your interview. We do our best to have a no-asshole policy at Thoughtworks and encourage a respectful culture, and what you have described is not something that most of us would consider normal or acceptable.
I can’t speak to the technical aspects of your interview, though it sounds like it could have been better. I hope that you had the opportunity to provide feedback to the recruiter you interacted with. We take feedback seriously and you can have an impact on making us better.
Hi
As I was searching for more Info on Thought Works ,I accidentally bumped on to your blog and it is very interesting because you have almost replied to each and every one of them and that`s the reason I writing my question.
I have just applied for a graduate tester position at Thought Works Australia.
I had a 6 months experience as Junior Test Analyst and my main role was to test the web based system and it was Manual testing.I just have an over view of the work which I have done as I haven`t tested any thing deeply,but used SCRUM Agile methodology for project in which I have worked on and more over I am preparing for my ISTQB foundation exam.
I was wondering that what kind of questions I should expect from them .How would be the selection process and how long does it take
Any info on this would be highly appreciated
Hi Mr Kremper
Very recently ,I had an telephonic interview with Thought Works for Graduate test Ananlyst position,I guess I did well in the telephonic interview
and I was told that I would get an Test Assesssent to complete and it` been a while that I haven`t heard from them .
What if I could not do Test Assessment properly,will I be rejected?
What kind of questions that I can expect in the main interview?
Any Idea how much time does the selection criteria will take ,probably 2 to 3 months?
Any Info on these questions would be highly appreciated
Sincerely your`s
Siva
Hey Kris
Thought I’d add a message to say thanks for this post, it’s very informative.
I recently passed the code submission for a developer job in Melbourne and have a skype technical interview booked for the coming week.
The one thing I’m struggling to measure myself against is the question of whether or not I’m a ‘top notch’ developer. Often I find that with programming patterns/practices the more I read, the more I realise I don’t know!
I was wondering if you’d be able to expand a little on what qualities/experience you think qualifies someone to claim to be a top notch developer?
Cheers!
Well, one measure is to judge people on what they know (particularly senior candidates). Knowledge of current and relevent technologies helps, as well as knowledge of good developer practices. There are many areas that are valuable, so don’t sweat design patterns specifically, they aren’t intrinsicly a good measure of a developer, but developers that care enough to learn about them tends to care about many other things as well. Honestly, even without a lot of knowledge, candidates that demonstrate significant passion and aptitude have the potential to be great. We probably value this more than knowledge.
Sir,
i need to know of we can develop the solution for sales tax problem as
windows application form rather than console application…..please do reply
as soon as possible…..its vry urgent
Regards,
Ritima.
I’m not going to tell you how to implement the solution to the problem. Read the problem statement and do your best to provide what is being asked of you.
Hello Kris,
this is by far one of the Most Responsive blogs abt TW…! Seems like u give a lot of time to ur hobby… and i thank u fr that…
I m an engg student (final year) and i m about to appear for my Technical Interview at TW tomorrow.
I am a lil more inclined towards the Business Analyst’s work profile. I believe that i possess great communication skills, i have a thorough understanding of several technologies and coding.
But i’d just want to know a lil bit about WHAT all i need to have to be a good BA…!!!
Hello,
I recently applied at ThoughtWorks, and gave my solution for “Game of Life” problem. But I was not selected. I just want to know if it is compulsory to wait for 6 months before re-applying? or is it possible to try again before that. Also I was not given any feedback about my solution, so I don’t really know what went wrong.
Thank You.
You can talk to the recruiter you were in contact with for that information. I don’t believe we ever provide details of the code review. I’ve never heard of a policy that says we must wait 6 months before we reconsider a candidate, but it’s probably a reasonable period of time.
Hi Kris,
It feels wonderful when a thoughtworker calls for an interview when we apply. Thank you.
I recently got a call from a recruiter, who gave me two coding problem Game of life and Sales tax. I would like to choose the Sales tax problem because i feel its simpler.
I am a 2 year exp women and have great aspirations to get into thoughtworks. Please do give me few tips on how to go about the interview process.
I can’t say much more than I have. Treat it seriously. I would compare it to writing an essay when applying to a university. You are trying to demonstrate your skill and style, but that doesn’t mean you need to cram in too much. Your work will be looked at and judged by 2 or more people, so don’t be sloppy and don’t cut corners. I don’t think it matters which one you pick, some problems are less complex and require less code, but it gives less material to a review and amplifies mistakes/negative aspects. Problems that require more code present more chances to communicate yourself, for better and for worse. I hope that helps.
hey,
I applied at both the US offices and those in Australia. I am not a cs major and have not done coding in a few years. I was told by a recruiter that there has been a shift towards more non-cs majors. I was wondering, despite this, do you have any insight into the interview process including lots of coding or any at all for entry level devs? I have coded but my technique is rusty to say the least. Will the potential to learn as well as past experience play a large role even if the coding at this point is not quite up to snuff?
Thanks a lot for your help!
Well, as of late last year, I left Thoughtworks to pursue other ventures, so I want to be clear that I don’t speak for them in any way. My experience being involved in US recruiting was that entry level candidates were still expected to do a code submission and generally be skilled at writing software. However, there were some programs to find and recruit people with non-traditional non-computer science backgrounds. I wasn’t involved in that, but my perception was that they were mostly looking for significant aptitude and energy in a candidate. Those candidates went through a more significant training program than usual. I especially can’t speak to Australian recruiting, as each region can do things a little differently. I don’t know if that helps, but good luck. Also, I still recommend Thoughtworks as a place to work. It’s a great company.
Hi,
First of all, the blog is really helpful and one of the most responsive blogs on TW, that I’ve come across.
I would like to mention that I am done with the logical and coding assessments. I just got a call from TW (India) for the technical rounds. I am a fresher (2012 pass out, CS major) with no work experience. I have done projects during my college and I’m confident about them. Although my coding skills are good and have strong OOPS concepts. I know only C++ and I am thorough with that. I don’t know anything about JAVA, Ruby or Python. Is is necessary to know all the languages? What are my chances? I am really really nervous for the rounds. please guide me.
Thank you!
I can’t guess at your chances overall; From my experiences with Thoughtworks in the United States, only knowing C++ isn’t a huge factor. It’s a plus when they have some experience with multiple languages, but if a junior candidate shows aptitude and enthusiasm in technology, then they will excel at whatever they work with later. It’s much more problematic when senior applicants only know one language, as they need to be very close to a senior Thoughtworker already, and most Thoughtworkers are polyglot programmers.