I was contacted by the hiring manager after seeing my resume, which was submitted for a different opening. I had a phone screen with a principal engineer on the same project. No coding questions were asked, but we had a great conversation about network management, latency, and my work in general. I was scheduled for an onsite interview two weeks later.
The day before the interview, I had a short phone call with the recruiter to discuss what to expect. I was told that three rounds of one-on-one interviews were scheduled, with a potential for the day to be extended to two more rounds. I was specifically told that more than three interviews is considered a good sign. The recruiter also promised to get back to me within 48 hours with the results.
The first round of interviews was with a principal engineer. He let me use his development system to code. Along with the main coding question, I was given two additional code snippets to find bugs or issues. All three problems were not overly hard but had plenty of areas that led to software design discussions. The next was a lunch interview, which was very pleasant. I had the opportunity to talk about both work and life in Seattle. The last 30 minutes were dedicated to a system design/requirements gathering question, and I was also asked to pseudo-code the algorithm at the end.
The third round was with the hiring manager. I was asked to go deep into a mutual exclusion problem that I had coded around five years ago. I had forgotten a lot of the finer details and was finding it hard to recollect. He let that pass and asked me a coding question that I was able to code. The fourth round was with one of his peers. The hour was mostly spent on OS fundamentals with a coding problem at the end.
I had a good experience overall, and I was happy with my performance. I waited three days for the recruiter to let me know the result, but all I got was radio silence. I had to convince myself that I didn't make it after waiting for a week. I guess their hiring standards are really high.
One piece of advice for other folks is to brush up on their past work to as much detail as possible. I felt I had missed out on the interview with the hiring manager where I couldn't go deep into my past work. Another helpful tip is to ask as many clarifying questions as possible about their coding problems. Everyone in the interview, including the hiring manager, is able to devise a problem on the spot and leave the details to us. It really helps to nail down the details before starting to code. Also, be aware that they can stop you at any time and pose a specific assumption for the problem that makes you change your approach and rethink everything all over again.
Cannot share questions. Signed NDA.
The following metrics were computed from 21 interview experiences for the Microsoft Senior Software Engineer role in Seattle, Washington.
Microsoft's interview process for their Senior Software Engineer roles in Seattle, Washington is very selective, failing most engineers who go through it.
Candidates reported having good feelings for Microsoft's Senior Software Engineer interview process in Seattle, Washington.