An Interview with ThoughtWorks

I recently went through the ThoughtWorks interview process.  When I was starting the interview process I read quite a few blogs about what the interview process is like so I thought I would give an account of the process I went through.

Keep in mind that my line of interviews was probably completely different to the regular interview process – since I am located in South Africa all my interviews had to be handled telephonically or on skype.  So for other candidates the process would probably be completely different.

The different steps

My entire interview process took around 4 months.  It’s definitely the longest interview I’ve ever been through.  I think the long timeframe is a combination of interviewing for a position in a different country as well as the stringent measures ThoughtWorks employ to choose their employees.

The first step was a simple conversation with a recruiter – why do I want to join ThoughtWorks, my history in software development, etc.

The next step was a coding challenge.  I was given a choice of 3 different problems.  All of the problems are pretty straightforward and they reminded me of some of the programming competitions I participated in at school level.  I really enjoyed the coding exercise – it’s crazy to think that in all the programming positions I’ve interviewed for this is the first time I have been asked to do any coding.

Next up was a technical interview.  I found the technical interviews to be rather different to those I had done in the past – it’s a more relaxed discussion on what you like and dislike in software development.  This was a great opportunity for me to get some more insight into the kind of work that ThoughtWorks consultants do and chat to some really interesting and passionate developers.

With the first interview done we moved on to the assessments.  The first is the Wonderlic assessment – it’s basically a set of simple questions and you have to try and complete as many as possible in a set timeframe.  The key is to go as fast as possible.  The second assessment is a set of logic tests.  It requires intense concentration, but it’s also incredibly fun.  It was definitely one of the most enjoyable tests I’ve had to do – if you like programming you will probably like these tests.

With the assessments out of the way I went through quite a few (technical and non-technical) interviews.  Every time I had the opportunity to talk to someone from ThoughtWorks I could immediately tell how passionate they are about software and about the company.  Most of the discussion revolved around what work I’ve done, open source experience and just generally which technologies I like and dislike.  It was a real privilege to be able to chat to such passionate and intelligent individuals.

The Conclusion

A few weeks later I got the feedback that all the interviews went very well.  The next step was for me to choose the city I wanted to live in – I opted for Chicago.  I then had 2 more interviews – one with the Market and Office Principals for Chicago and another with the Market Technical Lead.  Again – the interviews were really interesting with similar discussions to the previous interviews.  I also got the opportunity to learn more about the ThoughtWorks culture and values.

A few weeks later the recruiter phoned my with a formal offer of employment – needless to say I was ecstatic!

Advice for future candidates

As I said initially – my interview process was probably quite different to that of regular candidates.  The only real advice I can offer is to be yourself.  For example – the coding exercise is really straightforward – implement it in the way that you think it should be implemented – there is no right or wrong answer.  I think this pretty much goes for every step of the interview process.

Apart from that – good luck!  And enjoy!