Status: 1+ year Exp
Position: SDE2 at Microsoft
Location: Atlanta, GA
Date: June 2021
Virtual Online assesment
Hiring event
I applied to multiple companies in February 2021, got offer from another company and started working there. I got an email from a recruiter at the end of May. She told me about the hiring event and sent me the OA link after 2 days. I didn't have much time to prepare but solved the leetcode list of MS OA Questions which helped me.
Online Assessment (1 hour):
The email said to take the assessment in 72 hours. There were
These were from the leetcode list of Microsoft OA Questions. I completed in time, added comments to the code.
I got email from the Microsoft recruiting after two days that I passed the OA and they will schedule interview. The recruiter set up a call with me and explained the next step and how the interview is going to be like. But I didn't know which team will be interviewing me or anything about interviewers.
All the 4 rounds were with different engineers from similar team. Last one was with Hiring Manager. They didn't have any preferred programming language, so I chose python. There was no system design interview. Each round was 45 minutes long and 15 minutes break afterwards.
Round 1: Interviewer started with asking me about my background, what I do currently. I can't remember if there was any behavrioral question at this round.
The technical question was a leetcode easy problem about Linked List cycle. I used python, so I gave a O(n) runtime and O(n) memory solution of using a set to save the nodes and check if the node was seen before.
Then she asked if I can optimize the memory and I explained a two pointer solution. I implemented the code and tested it with some edge cases. She asked about runtime and memory of my implementation and seemed satisfied with it.
Last 5 minutes she took my questions. I asked about their team and her responsibility etc.
Round 2: Interviewer started with asking me about my background, my current position. He asked lots of details about my last project and that took up some time from the technical interview. There was no behavioral question in this round.
The technical question was -
Given a xml file that consists of contact info for employees, which can have multiple levels like- (Name(First, Middle, last), Address(road,..),Phone,company(team(..),manager)) etc., create a tree like structure, where each node can have multiple children, and it can be traversed from the root node. I took a lot of time on understanding the problem, as I was not familiar with the xml format that well. I discussed multiple options and getting hint from the interviewer decided on a stack approach, which I started to implement but couldn't finish because of time. I could not get anything tested.
We were already over time, but he wanted to take my questions and discussed for a couple of minutes.
I was a little nervous because I could not complete the implementation but the interviewer seemed okay.
Round 3: Interviewer was very nice and friendly and started with my background, a behavrioral question and specifically mentioned as looking for the core value "Drive for result" which was very helpful.
The technical question was a treetraversal type question. Given a tree where each node is a file/folder that has ID, filesize, ifDirectory, write a function that can calculate the size of a specific node. For a directory, size would mean total size of all its children. I implemented a recursive solution at first. Then when asked if I can optimize, I added a memory to keep the already calculated directories to save recursive calls. The interviewer liked my solution and asked another conceptual question about difference between graph and tree (no cycle).
Last 5 minutes I asked about their team and what they do etc. We had a nice chat and it was really pleasant experience for me.
Round 4: This was with the hiring manager. He asked about my background, what are my skills that I consider would add value to their team. Then a behavioral question about a time when I had to handle a major change in a project.
The technical question was another leetcode easy problem about missing number in a sorted array. I was excited so I started saying a optimized result. Then I remembered to mention that we can just check linearly each item with each index and return the first mismatch. that would take O(n) time. Then he asked about the optimization and I suggested a binary search and implemented it. I had an error in one test case and took a while to fix that, but the interviewer seemed okay with that.
During the last 5 minutes he took questions from me and discussed his team's responsibility.
Offer:
The event was on Thursday, I got an email next Monday saying they will move forward with an offer.
Recommendations:
I really didn't have much time to prepare after office and family for this interview. That's why I started preparing for the hiring event right after finishing the OA even before getting result. I solved 56/62 Microsoft problems using Leetcode premium. Although I had most of them solved before (last year interviewed for Amazon and got rejected), but I tried solving them by my own and then looking at my own solution and then leetcode's solution. I didn't have much expectation this time which probably took away some pressure and helped me during the interview.