February 16, 2010

ThoughtWorks Interview Process

Moved from my Tech blog http://venky-techspace.blogspot.com

If you are planning to take up an interview with ThoughtWorks, be prepared for a whole new experience.

ThoughtWorks interview process will give you an opportunity to interact with 5-6 ThoughtWorkers. This process helps the candidate as well as ThoughtWorkers to decide whether they are comfortable working with each other.  

I will try to explain the steps I had been through before I got in here.

Step 1 - Quick telephonic interview:
Once you submit your resume, you will have a quick telephonic interview.


Step 2 - Coding Problem:
You will receive the two problems in email. You need to solve ONE of these problems and send your code within 3 days.

TIPS:
   * Anyone can solve this problem but the way you solve it is important.  
   * Use proper design pattern.  
   * Write Test cases for your code. 
   * Spend enough time on this problem to come up with a good design and decent code.
   * Do not leave unnecessary code or files while submitting. (send Production like code)  
   * Solution should be scalable and flexible for changes.

INTERVIEW AT THOUGHTWORKS OFFICE:

Following interview rounds will happen at ThoughtWorks office. Be prepared to take up 3-4 hours of interview.

Step 3 - Puzzle Solving:
Simple puzzles to test your problem solving skill. Try to do as much as you can in stipulated time.

Step 4 - Logic Solving:
You will be given about 12 complex logical questions with enough time to solve it. Before you start this test, two sample questions will be provided with answers. You will have 30 minutes to practice the sample questions and validate the answer.

Step 5 - Pair Programming:
In this round you would be pairing with one of the ThoughtWorker and writing code. This round will help Thoughtworks in identifying whether the candidate is hands-on. 

Tips: 
   * Try to gather some knowledge about pair programming if you have not done it before.
   * Your code submission should be scalable.
   * Take time to think through the problem and come up with a good solution.
   * Ability to come up with right design has more weight-age than just solving the problem.
   * Never think about hacking/patching the code to make it work. 

Step 6 - Technical Interview (2 rounds):
This is were the real fun starts. This is supposed to be the round where most of the candidates fail to make it. There is no specific pattern of questions that you can expect.
Tips: 
 * Design pattern is very important for lateral hires.   
 * Identifying entities, their relationship and behavior is a must.(You can improve this skill by practicing to visual real world objects as entities)
 * You should be very comfortable in explaining the current project architecture, pain points, how you could have done things differently, etc.  
 * No need to prepare for API's, definitions as you do for other interviews.  
 * NEVER mention any technology in your resume without having worked on it.
 * You would not want to mess up the interview by throwing some jargons. Be careful while using it.   


Step 7 - Cultural interview:  
This round would just be a cake walk for most of them. It is to identify whether you can fit in the organization based on your interests, etc.

After all these rounds you would be an exhausted soul :) but the whole interview experience will give you a glimpse of how things are done in ThoughtWorks and the effort involved in maintaining high standards.


Wishing you all the best for your interview!!