My interview was for a MSIT SDE position, so my experience may have been somewhat different from interviews with product groups.
I had my resume given to a recruiter by a classmate who was recently hired by Microsoft. I was given a phone interview in December, and on the phone was told that I would be contacted for an in-person interview at the Redmond Campus.
I flew in on a Thursday, and Microsoft put on a meet-and-greet event for all of the candidates. Free food and open bar, plus a chance to get to meet current Microsoft employees and some of your potential interviewers. It was a lot of fun, and I think helps candidates relax and gain a bit of confidence before interview day.
In January, I received information and scheduling for my on-site interview. Microsoft paid for my flight, hotel, food and other costs. In February I was informed the interview would consist of four 1 hour interviews, at the end of which I would find out whether or not I would be given an offer.
I flew in on a Thursday, and Microsoft put on a meet-and-greet event for all of the candidates that evening. There was free food and open bar, plus a chance to get to meet current Microsoft employees and some of your potential interviewers. It was a lot of fun, and really helped me relax and gain a bit of confidence before the interview day. We were given packets that had our schedule for the next day, stating whether you would interview in the morning or afternoon group.
**The Interview**
We were shuttled to the Microsoft campus, where we had breakfast and a brief meeting with the recruiters before our first interview.
First Interview:
Met with a SDET who had been with Microsoft for over a decade, and had been a PM previously. Very friendly, asked mainly general questions about my experience, what I'm interested in, etc. Then, he asked me to design a subscription service system. After asking a few questions I found that he wanted the tech stack that I would build it on, with justifications for some of the choices. Overall, this interview went very well.
Second Interview:
I met with a PM who asked me some more general questions, asked me about a previous project I had worked with. No technical questions, and this interview also went quite well.
Third Interview:
Meeting with a SDET who asked me about past experience, how I got into software engineering (since I'm an MIS major). He then asked me how I would test the whiteboard, followed by how to test a piece of paper. Finally he asked me to write a method to remove all instances of a certain character from a string. He then modified it asking for how to remove a string of sequential characters from a string. The testing questions threw me a bit initially, but I still felt pretty good by the end of the interview.
Fourth Interview:
Met with an SDE who briefly asked me about my resume, then jumped into questions on OOP. Can you explain OOP to me. What is a class? What is an object? What is multiple inheritance and what are its drawbacks? Does C# or Java allow multiple inheritance? How is this problem solved? Finally she asked me to reverse a linked list, which I completely botched. I had seen it several times before, but just couldn't get the algorithm right. I didn't solve it before our time ran out, and had to leave it unfinished.
At this point, I was feeling pretty nervous about my outcome. We were taken to lunch and when we returned, we were told our results would be given to us shortly. My name was called first, which I assumed meant the worst. The recruited told me, "I hate to do this to you, but we want you to meet with one more member of the team." I had a final interview with another SDE, he was very direct and jumped right into the technical question. I was asked to write a method to find the max int in an unordered binary tree. I nailed this question, which I think got me the offer.
I was later told that they sometimes ask for an additional interview to determine fit within the team, how true this is I don't know.
I then returned to the lobby to wait a bit more to hear my results, and was finally called back and told I was getting an offer.
Final Thoughts / Advice
The process is pretty intense but also very enjoyable. If you can, make sure to attend the event the night before the interview. It helps you gain confidence, because you get to see them as normal people, not some sort of mythical geniuses. Plus, by being sociable, displaying interest and being excited about the opportunity, you can put yourself in a good position with potential interviewers. My surprise fifth interview was with a guy who I had a pretty good conversation with the night before and joked a bit with during the event.