I had four rounds of technical interview. The first round was writing the code for a couple of problems. Not too tough. You are expected to walk the interviewer through the code. The next two rounds were focussed on different areas of my technical domain - Servers & Request handling and Core Java concept questions.
The final round of interview was with the Project Manager for whose team I was going to work. Apart from questions on previous work experience, I was asked only one technical question. I was expected to answer with the algorithmic approach to the solution, in a more language-agnostic manner.
There was at least one puzzle question asked in all the rounds of the interview. I had solved many puzzles in the past, so I already knew a couple of questions. The other two were completely new to me. The interviewers seemed quite affable and a bit lenient. They waited patiently as I solved the problems or puzzles.