Monday, January 7, 2013

Cracking the ThoughtWorks interview



This my experience about the ThoughtWorks interview which I cracked. . When I was in third year, I was selected for the selection process of “Fellowship program” (something like internship). I have written my experience about this in THIS post.

During my fourth year, I got a mail from college regarding the visit of TW for the recruitment process. To tell the truth I didn’t prepare much for the interview. On the day ThoughtWorkers came to our college. The first round started by around 11.30 A.M. The results came around 2.00 P.M. The second round started by 2.30 P.M.

Day 1


  1. Pre Placement Talk – PPT
  2. Aptitude round
  3. Coding round
Aptitude round is a very simple. It is not like the general aptitude we all have heard. It just checks your concentration and logical thinking. You can google to get one set of questions of this round.

Those who cleared aptitude were divided into 3 batches. Batch 1 had students who scored low in aptitude. They had a qualifying round. In that they asked to write a program to print an inverted triangle. Those who cleared it were joined with batch 2 and 3. Batch 2 got ipod problem and batch 3 got hotel problem.

You can google to get these questions too.

Hint: The program should be a generalized one. It should work even if they change any values in the problem(like cost of ipod). It must use OOP concepts.

Day 2


They ask for a copy of your resume. They never saw my certificates.(Still carry them in a file). After each round they attach the feedback of the interviewer with your resume.(I feel that their final decision depends on our performance in each round).
  1. Technical round 1
  2. Technical round 2
  3. Technical round 3
  4. They gave me a paper having different characters. They asked me to tick the character that I’m and what others want me to be.
  5. General aptitude.


Technical 1[50 minutes]


  • What are the entities present in the TGMC project that you did and draw the entity diagram.[TGMC project]
  • Design the table for the department and complaint.[TGMC project]
  • Write a query to get departments that have no complaint filed.[TGMC project][I gave a solution using NOT IN. They asked me to give another solution]

DepartmentID
DepartmentName

ComplaintID
Complaint
DepartmentID
  • Design database tables for social networking site like Facebook that has options of sending friend request, posting on friends wall.
  • In operating system like Linux, which class should have the method for checking whether a user has permission to access a file?[I said File class and they said Role class. We argued for nearly 5 minutes]
  • Different types of users in Linux.
  • Which data structure is used to keep track of the order in which the functions are called?
  • What are the applications of stack?


Technical 2[1 hour]


  • “25 horses 5 tracks” puzzle.[Google it for solution.]
  • A building has 10 floors. There are 6 lift. Each floor has two buttons to specify the direction. When a button is pressed any one of the six lift must come. Design classes for this scenario and write algorithm.[When I gave a solution they complicated the question, like to consider the direction of the lift, what if a lift is idle]
  • A stream of numbers is generated for 3 hour. One number is alone repeated for odd number of times. How will you find that number?
  • OOPs concept.
  • What is data abstraction?
  • What is encapsulation?
  • Actions that take place when google.com is typed in a web browser.
  • Have you contributed to open source?
  • Difference between DTD and XSL.
  • Why is JQuery popular?


Technical 3[45 minutes]


  • Design a table for a search engine like google.[when I gave solution using DBMS, they asked for other solutions without using DBMS]
  • Sum of n numbers without using loop.[use recursive function]
  • Print the nodes from leaf node to parent node.[I gave a solution using postfix. They asked me to use loop instead of recursive function]
  • Tell me about yourself
  • Why you want to join ThoughtWorks?

Most of these questions were based on what is there in my resume.

The duration for each round varies for each student. For some it went even for 2 hour.

For each round there will be 2 interviewers. First they give handshake and introduce themselves. They ask the questions. They check how we think to get the answer. Try to apply OOPs, data structure. There is no correct answer for the questions that they ask. If you don’t know the answer, tell them directly. Finally they ask whether you have any question for them.

HR

  • Tell about your family.
  • What you want to achieve.
  • Any idea of higher studies.

Around 800 students attended the aptitude round. Around 80 cleared it and attended the coding round. 17 attended the Technical 1. 5 attended Technical 2. Only I attended Technical 3 and HR. (Till now I don’t know why there a Technical 3 round). This is the first interview that I have ever faced and I feel very happy that I cracked it.

After 4 months I came to know that ThoughtWorks interview process is ranked as 6th most difficult interview.

ThoughtWorks Fellowship program


TW selected top 30 students for the selection process. First they asked us to mail our previous experience like what projects have you done, what you learnt from it, what mistakes you made. Based on this, they selected students for the next round. It was a coding round. They mailed us a scenario and asked to write a program for it. Those who cleared this were asked to come to their campus. There they asked us to do some modifications in our code that we wrote for the previous round. I made some logical mistakes and I didn’t get selected for the next rounds. The next rounds were Technical.

Simple mistakes are hard to find


Two days back, I was breaking my head to find the error in my project. It was not any logical or syntactic error. The server was responding with a HTTP 404 error. It means that the page I requested was not found. After 1.5 hours of struggle I found that I made a simple error by creating the JSP file in the WEB-INF folder of my project instead of creating it in the WebContent folder. The server replied that the resource is not found. Usually I like to crack errors(whatever type they may be), but at some point of time I get frustrated. At last, when you solve the error and you find that it was a silly and careless mistake, you will really feel like kicking yourself. I would like to add a point that this is the project that I’m going to submit as my undergraduate degree project. And this is the first time I’m working in JBoss server. Till now all my JSP projects were based on Web Sphere Application Server.