An Interview at ThoughtWorks an AGILE Company
No No, I do not work at Thoughtworks where Martin Fowler is chief Scientist.
Besides this what I know about Thoughtworks is, Amazing company to work for.
So when I was working at Directi last December(2007), I applied at Thoughtworks.
Procedure for Interview very interesting one, I really loved it.
Here it goes....
When you apply for the job the first thing they do is send u one problem, or may be 2 problems and they ask you to solve one of them or both.
Phase One
I received a mail from them and it had 2 problems.
(Search it on Net for problem statements)
So after carefully reading problems, I gave a thought which one to solve and selected "Mars Rover".
I was recollecting how to solve it and just flipped some of the pages of HeadFirst Design Patterns Book from ORelli. and suddenly "State Pattern" Bingo ... I
I solved Mars Rover using State Pattern, and sent them mail.
Phase Two
I got a call from them. I went picking up six O clock bus and reach Pune at 12 O clock and Thoughtworks office at 12:30 Pm.
so when I reached office, I found very cool place to work,
It starts with an Aptitude Test(Not a regular English and Maths one)
It consists of 11 questions or 11 flow charts questions. You need absolute concentration to solve them. as you have to calculate some values depending on flowcharts.
I got 10 out of 11 dam Interesting one.
Then there's a Pair Programming session, In which they give you one extension in solution you submitted before.
In this exercise One Thoughtworker discusses problem and solution and sits together with us for solving it.
Idea behind this exercise is they get acquainted with us and make us acquainted with company, refactoring concepts, and together solve the problem.
Beautiful concept of knowing the candidate well and hows there approach to solve the problems and how good is candidate at logic and concepts.
Any Guesses I cleared this also with feedback as I have some inhibitions in listening.(there was one stage where I told that guy to solve problem my way and not his and I solved it also. )
Round three with 2 guys from there.
They gave me one problem to solve of card game
Two players picking up cards and one who gets higher card wins
Simple isn't it.
So Classes Goes here as is
Card Class
Player Class
Game Class
Game class initializes Player which constructs Card,
In Game class, it compares Cards and gets winner.
In problem one more condition added, one with lower one wins.
So I took comparing logic out side Game Class and used strategy Pattern with 2 strategies to solve problem.
They were focusing on names of strategy classes and its methods.
So the problem arrived was which card is winner, when I construct strategy object with 2 parameters, should I pass either cards or players and which of 2 is winner first object or second.
So I decided to pass Player objects and decided Strategy Class to return Winner Player Object.
But they said I should not expose Card through Player as it not good OOP concept or it breaks Object Delimiter Property(as if big deal).
Then I said We can use some sort of Icomparer interface and let Card class implement it and So Card compares it self with other one and return whether its higher or lower.
They finally agreed to it.
But But they said I did not gave them solution in first attempt and so Big Reject.
So Guys I really tell you all prepare good OOP concepts and go for Interview, they are very strict in that case.
I got little disappointment as just because of this round I got rejected.
These are my thoughts,
Any ways It was awesome experience spending day with them and seeing their enthusiasm for doing things and crystal clear Concepts
Great Company to work for and All the best to all Thoughtworkers for all their endeavors
Comments
I am not alone
The time when I attended the interview, I was shocked based on the outcome. I did google but did not come across this site. I find that I am not the only one who faced the music of TW.
1. 1st round of interview. (2 people - 1 A Senior Consultant 2. Project Manager(he just looked arnd 7 yrs of experience)
Basic questions on why you want to join, what have you done .... bhal...blah...The Senior consultant was working in a Competitor product .... so in product companies, you know what the competitor does not have...so questions were more focussed on that. went for 1.15 hours
2. 2nd round of interview - some flowchart questions .... God only knows if those questions were wrong or right - 20 mins
3. 3rd round of interview - some case study .... about a movie rental online
The question asked was how do you address the requirement. So i framed my answers on that basis ... only to realize that the expectation is more on how do I advise the customer on increasing his business. but my JD stated about coming with products / solutions to address the needs of the customer. I was asked what I do when I get the requirements .... I told them, I will do a google search to get the understanding of the business .... there were questions on how will that help .... blah....blah .... During my interview another lady also joined (shud be a fresher ...saw her in linkedin with her experience as working in tw for 3 years) and started asking questions more on the flowchart on how I will address the requirements
My chance to ask questions
1. What will you do when you get the requirements? the lady answers ... " I do a google search and try to understand on that subject" .... I am puzzled ... coz the person who asked me this question was also around and he happens to be her boss.
After 2 days got a mail stating I am not selected.
I was hurt but later on realized may be it was a just a dream company on paper and with the question / answer above came to a conclusion .... that if you are beautiful without brains and say "yes" to whatever your boss says ... you can work in TW.
Made a lot of friends since the interview and most of them are in TW. They all share the same experiences written above in other posts....
TW can talk about Agile, their products, their workshops, Open Culture and everything. But all it has is internal projects, low pay, useless culture
An insider's comments
I'd like to explain how the hiring process works.
1) It starts with the phone/face-to-face interview. Can you communicate well? Do you sound like you know what you're talking about? Are there any obvious issues? The person doing the phone interview may not be highly technical; in fact they may just be the Human Resources person, who likely has done many such interviews and is looking for sane, intelligent, honest, friendly human beings. You can fail here in obvious ways.
2) A choice of 3 problems is given for you to solve; you choose and submit the solution for one (in India, this may be different). Can you provide a well-structured, flexible solution? A working solution and unit tests ARE expected. ThoughtWorks is hiring you to be a developer, after all. However, if structure and tests are lacking (due, perhaps, to a lack of experience), the solution should at least demonstrate some spark of intelligence and "wow factor". My submission, for example, contained neither tests nor any pattern usage, since I knew about neither; but I had a novel solution for the Mars Rover problem that included complete operational logging (back to "Earth"), "control" satellite communications, enhanced map definition capabilities, etc. I'd like to think the "wow" part made up for my lack of skills at the time. Your code is generally reviewed by two people, independently. You can fail here by not providing proper structure, inherently obvious application of appropriate methodology, or decent "wow".
3) The pairing exercise. Can you learn quickly? Can you weigh and proffer suggestions? Remember, much of ThoughtWorks development is done in a pairing environment. However, I think the most important point of the pairing exercise is to determine if they would they want to work with you AS A PERSON. You can definitely fail here, mostly by being incapable of working effectively with others.
4) The purpose of the aptitude, etc. tests should be obvious. They do want the best people. You can fail here by, well, being dumb.
The quality and friendliness of people I have met far exceeds that of any company I've been in or have worked beside. The opportunity for growth, experience, and travel go well beyond my expectations. Frankly, I'm amazed at the negative comments. The number of 'snobs' is about the same as in any company I've worked for. The bad experiences during the hiring process are, I expect, highly amplified here due to the fact that I only see the people's remarks who did not get hired. However, I do apologize to those that were poorly treated; perhaps things are different in India, but seriously, some of the reported situations are inexcusable and should have been mentioned to HR. I have not had any bad experiences; and for the first time in my life, I've been treated like a person, not a machine. I can go as far as *I* want to. I have choice and, where I want, influence. ThoughtWorks is, to me, home.
Just my thoughts,
John
It was not nice talking to you!
After reading several blogs about goods and bads of TW recruitment, I decided to give a try at TW. I got the first call and as usual got the choice of two problems to solve. I chose Mars Rovers as it was more challenging. I submitted it within the given time(spending few nights for arriving at the solution). There was silence for about next 3-4 weeks. Since I was trying out elsewhere I already got offer from other companies. I thought they rejected my solution.
But after 4 weeks I got a call for next round of interviews. So I went there. There was a test of 50 questions in 12 mins to start with. It was pretty easy, but what they check is your correct to wrong ratio when you are under time constraint. I think I cleared that and next was pair programming with a TW colleague. The enhancement given was pretty straight forward, my initial solution already catered to 70% of the requirement. So we only had to do little coding, I struggled with the laptop keys as I am used to my personal laptop. I think I cleared that too..
Next, there was predictability index test. Here you have to tick about what you think others will think about yourself in one sheet and what you think about yourself in another test. I think it was just to check some personality aspects of people, I don't think there were scores or elimination in this.
Next, was a 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!". That's how rude these folks are!
In my 16 years of professional experience never has any one told me something like this. So that makes me think that there are some arrogant (may be smart) guys working in this company. I did not believe some of the -ve comments some of you have written about, I thought it's the case of sour grapes... But after my experience I have reasons to believe.
So, be careful with these folks. If they don't like you, they can be rude/arrogant/insulting....
TWI is not what it looks like
I got through, here is a summary of my experience http://redzeditech.blogspot.com/2010/12/thoughtworks-interview-dark-side... , i do not have fascinations about it any more , for all who did not make it , trust me you did not lose much.
TW is not always what it seems to be
Nikunj,
I feel for you man and I like your attitude. I am happy you are not too tough on yourself. I think you summarize it very accurately in the end.
I worked with folks from TW and I think TW engineers are overrated. Please don't mistake me. Some of them are really super stars and I am happy I know them but most of them are not worth the hype. And they almost always over-engineer. There is really no one right solution in Software Engineering. IMHO, the design is almost always based on time and cost rather than on the engineer's skill. It is OK not to use patterns. It is OK not to use DI. And more often than not, it is OK when the design is not perfect. Their Face-to-Face interview processes is almost always subjective, so if the candidate gives a solution which the interviewer deems is not correct, he/she is rejected.
If you are young and have about 2 or 3 years of experience TW may be a good idea. Figure out what they want and practice it and do it. But don't go by how the offices look and free food etc ... all those wear off after sometime and you may start having other thoughts.
Checkout this book and video on careercup.com. It is by a former colleague of mine and she nails a few points on how to prepare for interviews in the top engineering companies. Having worked for in two of them, I can say she is spot on.
Anyway, good luck with your career.
AS
I did not found state pattern
I did not found state pattern suitable there .I used command pattern to solve this problem .How many states would you add ..? What If more varaible stated like more directions.. ?
Same MANGO with APPLE skin.....think before trying hard
Hi all,
One of my roommates worked there around 2 years. He was attracted towards TW India because of same things you are talking about.
It was great place to work before 2-3 years back, because of rapid growth rate they are not able to maintain their work culture and values now they are remains only on paper. Most of the old tech guru left the company including their India MD from Bangalore.
After 2 years he find himself de-motivated and confused. This place is full of egoistic people (they are saying “Best people”) 1 year fresher is jumping more than 10 years exp Lateral. What they are saying outside about open culture, transparency and flat hierarchy is just a trap to attract talented resources. People are coming to TW India sacrificing lot of things in career, finally what they are getting is just a frustration.
no regrets
this company,met late last year.contains a bunch of low level employees and few really good ones, trying to practice something which cant be applied in real project LC. Ethics were zero. people making fun. but definitely it is worth working with the few good ones. Been a consultant for 10+ years around the world and cant stand some questions during the interview. wish the CEO corrects their thoughts.
Just got call from a consultant
Hi Nikunj24,
I just got call from a consultant company that I have to attend an interview with ThoughtWorks. Without a minute wait, I googled and got into your post. You blog post really a helpful message and I will definitely work through. Hope I will clear at least first round to see their office. :)
I will let you know on my progress.
Thanks for your post.
Triguna M S
Thiughtworks
Dude, don't regret. It's a snobby, pretty low qualified people, trying to force any problem to agile fanatically, even it does not fit. And that "purification" with OOP just another snobby show, they can’t even apply OOP properly with Agile (in most of the cases).
Is it really a snobby...
Do you really believe TW is not a place worth to work for? Why is that people who get rejected or the ones who are clueless in the interviews crib that the company is not good. Lets accept it, you are not worth the company and its fine, no one is perfect, so aren't you. You might as well post the same blog once you clear the interview and reject the offer and I will believe u meant what you wrote.. again.. no offences meant to you.. chill...
Yes it is!
its not jus ppl who get rejected who have this opinion... my room-mate (he himself is a BIG GEEK and hence a lil snobby)has been working there since almost 3 yrs now... and he's of the same opinion...its simple logic...if ure "better" than most of the ppl who are applying there or other colleagues - there's a natural tendency to have ure feet FIRMLY on cloud#9 ... human nature..!! :-) ... the sense of humour of ppl is generally dry and sarcastic... BUT..it is a great place to learn latest cutting edge technology.... sure..it is a little overhyped considering its 2010 now.. ;-)
like i said..my room-mate himself is a snob at times and he knows it.... since it takes 1 to know 1... im pretty sure its true..
so...chill ;-).. no-one's cribbing or anything...during an interview..if u as an interviewer are trying to show the candidate that ure a "cool" geek who knows inside-out of OOPS and Java and what not ...rather than trying to find out what the candidate knows and what HE is best at...then its bound to cause "SOME" frustration...
P.L.U.R
Like to be geek
I think, not clearing the technical rounds made u so disgusting that u come out and then bitch, instead of focusing on things that u could not achieve.
Its pretty sad to read ur statement 'they can’t even apply OOP properly with Agile'... My dear friend OOP and agile are not at all related. Agile is the methodology to develop and deliver software. I think u better clear your thoughts first.
Programming Langauge used ?
HI
can u tell me which language u used to write ur code ?
I used C#
I used C#
Re: Nice Coincidence!
Heyy,
It wasn't a coincedence, I did go through your blog entering the Thoughtworks arena :). I believe when we search for Thoughtworks interview we pretty much would land on either of our blog posts and people read about how I was kicked out :)).
Thanks
Hi Blogger,
I have been practicing design and working on design for a while(now i am 8.5 yrs exp), i some how got a call for the second round.But I was not fortunate to work with people smarter( in programming aspect other wise they are real smart folks ) so I have learned what I could from my reading and my opensource work.
I am also poor in my analytical skills so i don't think that i will clear the aptitude question with ease, I have been seeing the work around me getting boring and monotonous so I think thoughtworks could be an exciting place to revitalise my experience and exposure.
You guys are lucky as they called you at Pune office, but they are telling me to come to Bangalore office to give n interview even though they know I m from Pune! As i m unemployed I don't mind going there and meeting my old friends from Bangalore. I have not used state pattern to solve that issue as the issue is more complicated as there needs to be compiler and data collector and then compilation and then execution of rover. So if u think it is more complicated that getting solved using one pattern.
I have read ur blog that is nice to know so many people are interested in design and patterns where as I thought I m the odd man here.
thnks,Babaji
Good one
Thats lot of information for someone preparing look for an opportunity to work with Thoughtworks
My experience at Thoughtworks
Sup Dude,
I was interviewed yesterday by thoughtworks and pretty much same result :). Pair programming went awesome, the tests were pretty good too, I guess I screwed up a little bit in the final 2 interviews. In the first interview, my object design did not satisfy their thirst, and in the second interview it was more about solving some old school problems like logic gates, binary operations and some more datastructure stuff. Time to move on!!
Thanks
Abhang
When did u come to know that u were rejected
My recruiter told me to wait for 5 business days for a decision but have not heard anything yet.
When did u come to know u were rejected? Thanks.
last 2 rounds interview
can you please explain abt your last 2 interview, what kind of question they asked?
thanks
U rock !
Intersting experience ........best part even afer being rejected you took some good learning from the place......m sure u deserved a chance.....!!!!
Its TW's hard luck, they
Its TW's hard luck, they missed d chance. - Pawan
I too failed badly...
I too got a call from them and recieved qus thru mail...
I took them very lightly and failed badly.. dint clear the first round itself...
I choose sales programe and given best solution to them, but din not use any junit or jar file
I just coded that well, decorated well and and sent whole project as zip file. :( big mistake....
any idea how long we have to wait for another chance?
Me too got rejected in first round
Me too got call. I had not used any design pattern as such and did not use any junit. I got rejection call in one day:(-. Good to know Indian IT industry is progressing. Though I have 8 yrs exp in industry I have worked mostly on existing applications so not used any design patterns
why is that a mistake ?
not using jar/junit was a mistake ? y ?
did the problem description ask you to use it ?
Why need Junit
Agile is also a test driven so we need to write JUnit Test first before writing code, may be thats the reason they expect it....
It's not expected
I can assure you that JUnit tests are not mandatory.