I applied through college or university. The process took 4 weeks. I interviewed at Microsoft (Seattle, WA) in Feb 2011
Interview
I received an interview after giving them my resume during an on campus visit. They promptly contacted me in a few days saying they were interested. I got an on campus interview with a Software Development Engineer. It was a 30 minute interview in which he asked one programming questions. I had to write the code on the board. It wasn't too difficult and he continued to probe my mind while I wrote code such as "why this method, how would you test this, is this the most efficient". I ended up getting a pretty good solution and was confident I did well. Although I was not offered an on-site interview.
Thinking back on what I would do differently, I would ask more clarifying questions, and more clearly explain why my solution is optimal. I get pretty nervous sometimes which causes me to not explain terms as clear as they can be. However it was a good experience and good interview practice.
Interview questions [1]
Question 1
Write code that would shuffle a deck of cards. Explain why your solution is optimal and how you would test it.
I applied online. The process took 1 day. I interviewed at Microsoft (Redmond, WA) in Mar 2011
Interview
Phone interview lasted about 30 minutes. I felt like I underperformed but still got called back. Scheduling the real interview was a pain but very flexible.
Interview was 5 individual interviews with different employees within the group, one being a phone interview. 3 focused on programming challenges, 1 on personal motivations/experiences/etc, and the final was a casual interview where I mostly asked questions. The programming interviews were all on a white board, which was the largest difficulty for me personally.
Interview questions [2]
Question 1
Write a non-recursive traversal of a Binary Search Tree using constant space and O(n) run time.