Applied through University recruiting, there was a first technical question to write on paper and after that you got a call if you pass to the first round of interviews.
The first round was with one employee from Redmond, first minutes was a little talk and introduction, after that a question related to Binary Trees, i managed to answer it correctly, after that he gave me another question related to the original problem and i made it good, then it was a little talk and some feedback from the interview which i think was a nice detail from the interviewer.
After a few weeks I got an email from the recruiter, he told me that my interviewer recommended for the next round so a final round of interviews was scheduled next month.
Honestly i studied very little, i reviewed some algorithms but the final round was totally different, there was three back to back interviews, all in the same format that the previous round, i think i made it good on the first two, however, the last one i didn't like the interviewer too much, he didn't speak too much and was always paying attention to his computer rather than the interview, after a week I recieved a rejection email.
As a tip, read Program Interviews Exposed and Cracking the Interview code, also review algorithms and data structures, TALK ALOUD on the interview! this is very important!