Microsoft | L60 | Redmond | Feb 2020 [Offer]
Anonymous User
715

Status: Masters student in CS at a mid-level university
YOE: 1.5 years before masters

Phone Screen: Some questions from resume + 1 technical question about tree traversal

On-site interviews:
Round 1: System design
Design an API throttle system (which should be highly available and scalable)
Round 2: Object oriented design
Two questions
a. Write code to implement a singleton design pattern( while doing this question I realized that Python doesn't have private constructors, and you can't just create a singleton class like you would in some other object-oriented languages).
b. Write code to design a chess-game
Round 3: Algorithmic round
Question about graph traversal
Round 4: Algorithmic round
Again question about graph traversal (BFS/ DFS kind of question)
There were behavioural questions in all the rounds about projects and works on my resume and few hypothetical ones as well. And they cared a lot about whether my coding solutions are thread-safe or not. All of the coding were white-board coding.
Overall, it was a fun experience for me. I enjoyed and learnt a lot from them. They were super nice and experienced people and treated me very well.
I did pretty well in all the rounds except for the 2nd round( I guess). But it felt more like a discussion with a senior team-mate rather than a straight-face-interview.

Suggestions:

  1. Prepare well for the topics and patterns rather than individual questions.
  2. Don't over-learn. By that I mean don't look for every single problem at your disposal. Give your mind some space for thinking at the moment.
  3. During interview, try to communicate with your interviewer as much as possible. Because, firstly I think its not just about solving questions and secondly, you will always get scenarios where you have not seen the problem before ( even in real life). Its more about how well you communicate and get the perspective of your interviewer. The interviewers are looking for great collaborators and yes, of course, problem solvers.
  4. Try to research about the team and the interviewers if you get to know about them before your interview. Because you are interviewing them as much as they are interviewing you.

Preparations:

  1. I did mostly prepare for algorithmic questions from the books CTCI/ EPI(python) and leetcode.
  2. I had also prepared for system design questions from Grokking the system design interview
  3. I had never prepared for object oriented design topics ever. But I think one needs to be prepared for those as well.

I hope this post helps people who have upcoming interviews. Good luck!

Comments (2)