I received a call from the recruiter, who then set up a phone screen with a member of the hiring team. This process took about a week.
After clearing the technical screen, I was invited onsite for a round of interviews. The entire process took about two weeks.
Round 1: Dynamic programming. The interviewer did not acknowledge the concept of using an array of 256 characters and instead insisted I use a hashmap. This question, if solved genuinely, takes a few hours and cannot be finished and tested in 40 minutes unless one is copying it from LeetCode.
Round 2: Design the game of Boggle and return a list of all words that are of length three or more. I provided a recursive solution by the end, but the interviewer was looking for a better solution (recursive but with fewer lines of code). This is a question that cannot be coded and tested in 40 minutes.
Round 3: "What is a binary search tree? Why do we use them?" Write code to check if a given binary tree is a binary search tree. I gave the solution using in-order traversal, but the interviewer felt the code was hard to read and not maintainable, opting instead for a single line of code using C#'s Enumerable class. He then discussed an NP-complete problem for 30 minutes, without a clear idea of what he was asking. "We use constraints" and "these are open discussion problems" were the two phrases iterated throughout.
A negative experience.
Cannot disclose as I signed an NDA.
The following metrics were computed from 26 interview experiences for the Microsoft Software Engineer II role in Redmond, Washington.
Microsoft's interview process for their Software Engineer II 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 Engineer II interview process in Redmond, Washington.