I had three rounds:
My first round was telephonic interview and it lasted for about an hour and the questions covered entire breadth of core CS subjects, there were questions on Operating Systems, questions on some SQL queries, Computer Networks, Computer Organisation, Digital Design, some algorithms and there were some questions based on the projects i did (that was specified in Resume) i was asked questions on Android since i did a project on Android,and at last they asked me a puzzle on probability.
In The second round (which was face to face interview), the emphasis was mostly on designing algorithms for some new problems, and they expected me to give optimal solutions, and they asked me to design web server and what are the various challenges you will be facing.
The third round was the most critical one and the questions were mostly on C++ concepts and some operating system design issues (e.g., spin locks, semaphores, etc.,) and there were even questions on storage classes and how do you think they might be implemented, there were some questions on algorithms which were simple but there were many in-depth analysis on those questions (e.g., In finding the loop in the linked-list what happens when the fast pointer takes 3 steps instead of 2 does this algorithm does this algorithm converges,what is the condition under which the algorithm converges), they asked me to code some design patterns, and i was asked some puzzles to solve