The whole interview process lasted almost a month. First I got a call from the HR to confirm my application and then was explained about the interview process. The interview basically divided into 3 stages. A remote coding challenge, a technical phone interview and the then a 3 face to face interviews at their office. The coding challenge consisted of questions from Java collections, JDBC, JMS and one code optimization question. I was told about the result within 3 days and was asked to schedule a date and time for a phone interview which would be for 45-60 mins. The phone interview consisted of questions from java, databases, xml, design patterns, n-tier architecture, web services, SDLC and few behavioral questions. They came back with the result again within 2-3 days and was asked to schedule a date and time for the 3 face to face interviews. The on site interviews were very difficult and everything you claim to know would be tested. The first of the 3 interviews was with a hiring manager, he eased me into the interview process by talking in general and then in depth about my CV. Then I was asked to explain one of my previous projects on the white board and was then asked to solve some database queries. Then the next one was pure technical from the start I was asked to write a database query and was then asked to explain some code they had on paper, and then I was asked to code on the whiteboard the given problem. The final interview was more of a cultural fit interview. The interviewer asked things in general, to check if I would be a good fit for their organisation. He even demonstrated one of their products and was given a chance to ask question regarding it and the organisation. Then I was asked to code on the whiteboard one final time. All the interviewers were very friendly and made me feel comfortable answering their questions and would suggest me other solutions/approach if they thought I was going wrong anywhere. A HR then came after the final round and talked to me about the overall experience of my interview that day and, was told that would discuss my performance with the interviewers and get back to me soon. I was given a call after 3 days telling that they have liked my overall performance and would like to extend an offer. I accepted the offer. The overall process was very grueling and difficult, but I understand its required by them as they want people who can handle their complex code at work.