All started with handing out my resume at my university's carrier fair. MSFT's (Microsoft) rep was an SU Alumni and I had a recommendation which I guess helps a lot initially. We spoke about my projects, my interests, and how I like spending time, etc etc...
I was shortlisted and an on-campus 1:1 interview was scheduled. This was a 30 to 45 minutes interview. Everyone were asked a programming question and a testing question. Both were pretty simple, coding question was to count the occurrences of every character in a given string. And the Testing question that I vaguely remember was to write test cases for a function that takes a string as input and does something. I was also asked to describe any scalability issue that I had faced in my previous projects.
Then I was called for a final round of interviews to Seattle for an SDET position. On the day of the interview recruiter said I will be interviewing with Windows team. Thats a huge team and I could be interviewed by any team within it. But this already sounded exciting to me!
1st interview was with a team lead from Kernel Team. He said he wanted to start my day with less rigorous coding question and asked me to write a function to return the nth Fibonacci number in the series, given integer n. I discussed my design choices before start the code, then wrote a first function where I used arrays, which was inefficient for a large input and then I discussed use of a liked list instead of arrays which wasn't any better with its memory foot print, then it flashed to me that I dont have to store the whole series and I just have to return what ever is required... He also asked for a recursive solution and asked to compare both solutions. Testing question was more of a learning for next rounds than the answers i gave. But learning is important.
2nd round was with another team lead from Hyper-V team. Coding question was to rotate an image by 90 deg. Image is represented by a 2D int array. After bit of crumbling, I came to a solution. I was asked to device strategy to my own code. Again it was half learning from the interviewer and applying what I had learnt from earlier interviewer.
3rd one was a lunch interview, so no coding question but lot of testing questions. Also he was expecting me to ask back as many questions.
4th and final was with a manager. He asked a simple puzzle, a coding question to reverse a linked list using recursive technique. He also asked me about how other interviews went. Did a lot of talking here, not technical all the time, but about the day to day work at MSFT, about the team and what they are working on, etc.
After couple hours, I heard from the recruiter that I did get through!