I applied through other source. The process took 4 months. I interviewed at Thoughtworks in Jan 2015
Interview
The personal was very kind and treated me very well. Their whole Interview Process is based in their foundation pillars (the company values) and how well could you adapt to them. They promote tolerance, team play and other values during the interviews which was also nice.
I only have two complains about this Interview Process, the first one, the SLOOOWNESS! It took over FOUR months for the team to present an offer.
My second complain is the coding interview, there was only one coding interview in the four months process and for me was pretty lame. Let me describe it:
A couple of guys interviewed me a week after I submitted the code task, during the interview I couldn't fail to note that they haven't watched the code neither the inform they made me write, and they were more worried about the unit tests I was showing to them that even the algorithms I used or the design patterns I chose to implement. They criticized the javadoc comments I put for some interface methods, and claimed that the signature for unit test methods should be something like:
void thisMethodShouldReturn0IfTheValueOfTheParamXisLessThanFive(int x) ...
YES, something like that! I'm not joking about this. They claimed that this was the way they were documenting their code, I was shocked by this but tried to keep things going. I tried to explain them the parser I wrote and how well the program reacted to some apparently bad queries... I still remember one the guys saying "why did you made this so complex?"... I was shocked at this point and I just gave up.
I have to remark that the problem statement didn't say a word about the input behavior and it was up to me to decide how to process it.
Interview questions [1]
Question 1
The only coding task was to submit an application that solved one problem from a given list of 3 problems. The chosen problem was a long list of things to do over a graph, the input file contained the graph description and the graph queries, they emphasize that the implementation should use good OOP practices and told me that if the input is bad or well behaved was something up to me and that I should write an inform about my approach.