Microsoft Interview Experience for SDE – II

During my career transition, Microsoft emerged as one of my prospective employers. A recruiter contacted me in mid-July to outline the hiring process and forthcoming steps. This post aims to encapsulate my comprehensive interview experience with Microsoft.

Note: My recollection of the interview questions isn’t perfect due to nerves, so I’ve collaborated with a colleague who recently underwent a similar interview to provide a thorough summary.

Round 1: (Online Coding)

The initial round involved two coding challenges. A score above 50% was necessary for shortlisting. The first problem of medium complexity was a variation of the stock buying and selling dilemma, akin to the one found [here](https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iii/).

The second challenge was as follows:

Given two arrays of bits (sequences in base -2):

– Array A, length M, representing integer X

– Array B, length N, representing integer Y

For instance:

Input: A -> 011001011101011 (5730), B -> 001001111101 (-2396)

Output: 0101100010111 (Sum = 3334)

I solved the first problem completely and achieved 75% on the second.

Round 2: (DSA/Algorithm Virtual Interview)

This round featured two DSA challenges. It began with an introduction and a brief about my current role and the technologies I utilize. The first problem was a moderately difficult LinkedList question as Identify and repair a broken node in a circularly doubly linked list that isn’t correctly pointing to its next and previous nodes and the second was a simpler task to Construct a binary tree from a series of inputs, then perform and print a level-order traversal.

Round 3: (Design Interview)

Although scheduled for 60 minutes, this discussion extended to approximately 90 minutes. The focus was on high-level design and pseudocode for a given problem, which was to Design a user-friendly alarm system with functionalities to create, update, and delete alarms, including a mechanism to alert users at the set time. For this, I had to outline the High-Level Design (HLD) and the APIs for CRUD operations. Resources like [this one](https://www.focuslk.com/designing-an-alarm-clock/) are available for reference.

My colleague faced a different design challenge:

  • Create a high-traffic coding contest platform capable of handling a surge of submissions at closing time, estimated at around 10^6 transactions per second.
  • Design problems have no definitive solutions; it’s crucial to list requirements clearly and communicate your thought process to the interviewer.

Round 4: (Hiring Manager Round)

The final round commenced with an introduction, followed by database-related inquiries and behavioral questions. The technical questions were:

  • Advantages & Disadvantages of SQL and NoSQL databases.
  • The appropriate database choice for processing user payments.
  • Scenarios favoring NoSQL databases.
  • The feasibility of adding a new column to a large SQL table.
  • Crafting a query to identify the top five highest-earning employees from Bangalore with over three years of service.

I trust this post will be valuable to those preparing for their interviews.

Thank you! ?