A coding round, followed by two Skype interviews on Android and iOS, followed by a series of interviews in their office at Pune.
At their office there are two non technical rounds. One round is solving flowcharts; mindless conditional loops implemented using conditional jumps. Another round was a set of 50 simple arithmetic, logical reasoning, and English questions to be solved in 12 minutes.
One long round of Android interview. In all of their Android / iOS interviews, they interviewers were good. They ask you specific questions, or gives a specific high level requirement and counters and discusses your approach right from design to code.
The so "design round" was exactly opposite. There was no context; no code, not even a well defined high level problem! I was asked to recreate any code I have re-factored exactly as it was "before" the re-factoring! In the absence of a context, the discussion and questions were superficial and sometimes silly. They shook their heads a lot, but were not able to actually counter me once! Also, they seem more interested in jargon like name of code smell, name of the pattern than the actual solution. I may be biased, but I have a strong feeling that the interviewers' knowledge of designing is more academic than hands on.
After a long wait I was told by the HR that I was not selected because I lack iOS skills, and design skills.
Before I went to Pune the HR told me that the interview would be on my "general technical aptitude". Interestingly, there was no code paring session; no evaluation on troubleshooting skills; absolutely no questions on fundamentals like os, algo or data structures. They design / re-factoring skills was assessed as I mentioned above. They certainly have a unique notion of "technical aptitude!"
All in all, a very disappointing experience for me, not because I wasn't selected, but because of the superficiality of their interview process. Perhaps more so because I had a very high expectation from it.
--------------------------------------------------------------------------------------------------------------------------------------------------
Thoughtworks contacted again to offer me a contractual position (for exactly the same job I applied for!) for 6 months, during which I have to "prove myself." Naturally I declined. The HR wanted me to share my feedback with the interview panel.
There one of the guys told me to read about design patterns. I was shocked! When I asked him what made him think I don't know them since he hasn't asked any questions on this in the interview, he said, "you have named a very few patterns in the design discussion."
This is perhaps the stupidest explanation I have ever heard. This tends to cement my suspicion that the interviewers themselves probably have never had a chance to design anything significant and apply patterns to real problems.
I told them that I have seen and used "all" the GoF patterns in actual code, that I have been using them for 7 years now, that I think the ideas are more important than the names they have, and that, most importantly, as a designer your job is not to apply patterns but to to solve the problem at hand as elegantly as possible, using the patterns as a tool whenever applicable. He mumbled, "No that's not so." but mercifully kept his mouth closed afterwards.