微软 SDE II 上门

Hi,

I applied for a Software Engineer position and was subsequently invited for an interview onsite. I had a phone screen prior to the interview and after about a week I got the invite. The travel was booked and the recruiter called me the day before the interview to provide all the details about the interview schedule and expense reimbursement related stuff. She also provided the exact locations in Maps for the interview venue, my hotel and contact information of the reception in case I got late due to some reason.

The interview was scheduled from 11:00 AM till 5:00 PM including a lunch with the hiring manager.

After reaching the venue, I registered at the reception area and at the interview start time, the manager escorted me to a focus room. All my interviews took place in the same room.

Interview details and questions:
In all the rounds, I was initially asked about my experience and the work that I have done till now. I have total of 8 years of experience so I had quite a few things to talk about thankfully. After the initial discussion which took about 5-10 minutes, I was given a coding question. After coding, I was asked to talk about the time and space complexity for the code I had written. Last 5 minutes were left for any questions I had.

Coding Question Round 1:
Look and say (Count and Say - https://leetcode.com/problems/count-and-say/)
I solved this and then wrote some test cases to ensure the code was correct.
After this, we discussed a little about the team and the work that the team does.
Lunch discussion
After the first round, I went for lunch with the hiring manager. He was extremely polite all through and we discussed in detail about the work that his team does and how/where that work fits into the Azure’s vast set of services. I also talked about my experience, why I wanted to shift and other such details regarding my overall experience. I have previously worked for Microsoft as a Full-Time employee so most of the discussion revolved around that. There was also some discussion about my college, schooling and stuff.
Coding question Round 2
After the lunch discussion, I was introduced to another team member for the next round. Again, we discussed about my work and then I was given a system design question to design a URL shortening service that handles very high number of requests per second and is globally highly available. I was also specifically asked to write the code for shortening algorithm.
I did the initial design, discussed the components that should be used to ensure that the system handles the said load, discussed trade-offs and other improvements that can be made to reduce latency. After this, I wrote the code for the shortening logic.
NON-Coding Round 3
Post lunch, I had a discussion with the hiring manager’s manager who mainly wanted to know in depth about my previous work. He asked me firstly to talk about my total work experience. And then he asked me to explain in detail aboout 2 projects from my previous employer which interested him. This was a short ~25 minutes discussion.
Coding Round 4
Next round was another coding round which started the usual way. And then I was given a coding question related to trees. Basically I had to write code to print the level-order tree traversal in a Zig-Zag manner (Apparently, leetcode has all possible interview questions handy!! https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/)
It took a little time and some help from the interviewer for exactly understanding the ordering of the output, but in the end I was able to write the full code for it.
Coding Round 5
This was the last round and I was interviewed by the hiring manager again. Since we had already discussed in detail about my experience in during the previous discussion, I was straight away given a coding question which was something like, “Given a time on a clock, print the angle between minutes hand and hours hand precisely”. This was a fairly easy question and I was able to write the code for it in a few minutes. After writing the code, I discussed and wrote a few test cases to ensure the code printed the expected output everytime and then we discussed the time and space complexity for the same.

After interview
After the final round, I was escorted out of the building by the hiring manager and was told that the recruiter would get back to me within a week or two with the final decision.

Overall Experience
On the whole, the onsite interview experience was very good. The recruiter, all the interviewers, especially the hiring manager were all very polite all through and behaved very professionally.

I’m yet to hear back about the final decision.