I initially turned in my resume during a campus career fair. Approximately two weeks later, I was emailed by a recruiter who asked me to participate in an on-campus interview (the first round).
The campus interview was with someone who wasn't a recruiter but had clear technical expertise. This interview lasted approximately 25-30 minutes. We mostly talked about items on my resume, whether or not I faced any unique challenges, and if so, how I overcame them. This was a very conventional interview. Upon conclusion, I was asked a technical question.
About three weeks later, I was emailed again by a different recruiter who asked if I was available to fly out to Redmond, WA, for the second round of interviews. I had a very compact window to interview within, and the recruiters did a great job setting everything up within my constraints.
On interview day, the first step was to meet with an on-site recruiter who discussed the group/team I would be interviewing with and answered any other questions I had at the time. This recruiter was also the one who would tell me the results and work further with me should I receive an offer. After meeting the recruiter, I took a personal shuttle to the buildings where my interviewers were. Mine were all in the same building.
Next, I met with 3-5 interviewers, and one of the interviews was a lunch interview. I was told beforehand that each interviewer passed on comments to the next one, presumably so they could confirm or deny a weakness.
For me, the first interviewer didn't want to talk about my resume at all. He was more or less the manager of the group and was very blunt about the skills he was looking for. Some non-technical questions included:
Then he moved on to coding problems: one a mathematical proof, and the second more coding-oriented.
The next interview was over lunch. This interviewer initially asked me about my research but quickly started trending towards questions more oriented towards the group. After lunch, we went back to his office, and I was asked another coding problem.
The third interview was more theoretical. The interviewer briefly spoke about my research, noting that it looked interesting, and then we went into an open-ended math/optimization problem.
After the third interview, I was told that I would not be seeing the fourth interviewer (indicating I had failed) and was taken back to HR to discuss the day with the recruiter. The recruiter was very helpful and looked into other groups that might have been a better fit.
Overall, the interview was very challenging. You absolutely need to be prepared to code and solve difficult problems. The second round is not about what you have done, but rather what you can do now in a high-pressure situation.
Also, while you are told you can code in any language, in reality, you need to be able to code in C/C#. Not being familiar with either, I tried to use Python so as not to get bogged down in syntax, but it was generally not well received.
On Campus
First Round
Second Round
Prove that for a set of numbers that are {prime -> non-prime -> prime} (e.g., 11, 12, 13), the non-prime number is always divisible by six.
Write a class that adds or removes data from a queue.
Write a class that can store and interpret large integers (i.e., numbers that cannot be stored as an int). The class must be able to perform mathematical operations on the represented data.
You are the owner of a building with a broken revolving door. What time do you replace the door?
The following metrics were computed from 214 interview experiences for the Microsoft Software Development Engineer role in Redmond, Washington.
Microsoft's interview process for their Software Development Engineer roles in Redmond, Washington is fairly selective, failing a large portion of engineers who go through it.
Candidates reported having very good feelings for Microsoft's Software Development Engineer interview process in Redmond, Washington.