Status: 4 years professional, BS CS
Position: SDE2
Location: Seattle, WA
Date: May 10, 2022
Initial Steps
I wanted to give Microsoft a shot, so I dug through my LinkedIn messages and responded to the latest Microsoft recruiter who reached out to me (1-2 months prior). I explained that I was looking for a full-time remote role. She said those were very rare, but had on-site roles. I was willing, so we went through a technical OA. It didn't go perfectly, but well enough to move me to the on-site. The next Hiring Day was May 10, so we scheduled for then. I live in Hawaii (-3 hours from PST). They were unwilling to change from a 9 AM PST interview time, so I had to settle for a 6 AM HST start.
On-site Preparation
With on-sites for Google and Amazon approaching, I put in as much time outside of work and family as possible to Leetcode. I had a busy 1 week vacation during that month, so in reality I had 3 weeks to prepare). Prior to the process I had solved 200 LC questions (~100 easy, ~100 med). During the 3 weeks of preparation, I solved an additional ~60 (more mediums than easies). I did several practice video interviews with friends.
Virtual On-site
The 6 AM start was rough, and I still scratch my head over why Microsoft was so rigid with this.
Round 1: Technical + Behavioral
Similar to LC 1047 Remove repeated neighboring values from an integer array.
ex: [1,2,2,2,10,3,3,9,9,1,1] -> [1,2,10,3,9,1]
I was so excited for a very easy question. I got my 2 pointer approach ready and.... I couldn't function. It was way too early and it was a mess. The interviewer clearly was not going to give approval, and the last 20 minutes were a formality.
Round 2: Technical + Behavioral
Convert a hexadecimal string to a byte array.
ex: Given "DF0A123EA1", return [223, 10, 18, 62, 161]
This went well. Interviewer was nice and conversational.
Round 3: Technical + Behavioral
LC 1429
This took some conversation to understand, but I got to the correct solution. Interviewer was nice and conversational.
Round 4: Technical + Behavioral
Scale a 2d array by a given factor.
ex:
Factor=2
Array=
[[1, 7]
[2, 3]]
->
[[1, 1, 7, 7]
[1, 1, 7, 7]
[2, 2, 3, 3]
[2, 2, 3, 3]]
I nailed this question, after a little debugging.
Conclusion
I thought I stood a chance to get an offer. If I had to rate my rounds, I'd give them: 2/10, 7/10. 7/10, 9/10. However, the recruiter followed up in a few days saying that it was a reject. Ignoring the disastrous first round, I think I could've done better on the behavioral portions. Otherwise, it went well.