An Interview at ThoughtWorks an AGILE Company

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.

  • Very good in object design and OOP concepts.
  • Makes lots of interesting products like cruisecontrol, white, scrum etc etc.
  • They mostly work in cutting edge technologies C#, Java, Ruby.

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.

  • The Famous Mars Rover Problem.
  • The Famous Sales Tax Problem.

(Search it on Net for problem statements)

  • What they look in to solution is how good you are at OOP concepts.
  • How good we are at clean code i.e (No or hardly used "if else" or "switch statments") and use of OOP design.
  • They encourage small methods and Intuitive method names.
  • They also encourage Test Driven Development(J,N,R - units).

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,

  • What I saw was it was big Hall and just Huge Tables and some chairs and some cords on tables.
  • There were few PCs on Tables and remaining people were working on Laptops.
  • There were Nice Boards with index cards and some of the stickys.
  • Some People were Pair Programming.
  • There was a Table Tennis table there.
  • A Beautiful Lunch Room with LCD Tv and some games. I got free snacks and lunch - amazing concept, snacks were refreshing juices, fruits, cakes, and sandwiches, and nice lunch with sweets.

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.

  • They did not see my Aptitude 10 out of 11.(It shows grasping power even if I do not know things)
  • They did not consider my solution and pair programming.
  • They did not ask me any thing about my previous experience and stuff.
  • Interview Panel was only focusing on what they knew best without exploring my best..

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 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...

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 ?