Microsoft Detailed Interview Experience
Summary
I recently went through a detailed interview process at Microsoft, which culminated in an offer. The interview included multiple rounds covering online coding, data structures and algorithms, low-level system design, and a final hiring manager discussion that delved into high-level design and behavioral questions.
Full Experience
My interview journey at Microsoft consisted of four comprehensive rounds.
Round 1: Online Codility Test
This round lasted 60 minutes and featured two coding questions. The first problem involved calculating total final prices after applying a specific discount: given item prices, I had to apply a discount based on the first later item with a lesser-or-equal price. The second question challenged me to efficiently maintain token expiries, prioritizing the use of expired tokens before each operation, for which I considered a hash map coupled with a min-heap approach.Round 2: Data Structures & Algorithms (DSA)
The second round was a 60-minute DSA session with two questions. The first question was related to hashing and circular search concepts, while the second involved a linked list structure where each node possessed both a standard 'next' pointer and an additional 'recommend' pointer.Round 3: Low-Level Design (LLD)
This 60-minute round focused on the low-level design of Tic Tac Toe. I began by outlining the object requirements and the flow of requests, then created a UML diagram. Following the design, I proceeded to the coding part, implementing key components like the Main function, Player, PlayingPiece, PlayingPiece0, PlayingPieceX, PieceType, and Board. I initially assumed a 3x3 board and two players, with an eye towards future scalability.Round 4: Hiring Manager - High-Level Design + Behavioral
The fourth and final round, also 60 minutes, was a combination of high-level design and behavioral questions. For the high-level design portion, questions touched upon scaling, bottlenecks, distributed systems, databases, and general data structures, though I cannot recall the exact problems. The behavioral segment aimed to assess my character and thought process. I was asked about my interest in joining Microsoft, experiences with team conflicts in my current organization, work distribution strategies, past mistakes, and challenges I've encountered.Interview Questions (6)
Given a list of item prices, for each item, apply a discount equal to the price of the first item appearing later in the list that has a price less than or equal to the current item's price. If no such later item exists, no discount is applied. Compute the total of all final prices after applying discounts.
Design a system to maintain token expiries. Before each operation, prioritize using tokens that have already expired. The suggested approach involves using a hash map combined with a min-heap.
Design a Low-Level Design for a Tic Tac Toe game. I started by outlining object requirements and the flow of requests. I then created a UML Diagram before proceeding to the coding part. For the initial implementation, I focused on a 3x3 board and 2 players, with plans to scale it later. I wrote code for the Main function, Player, PlayingPiece, PlayingPiece0, PlayingPieceX, PieceType, and Board.
Why are you interested in joining Microsoft?
Have you faced team conflicts in your current organization? Describe the situation and how you handled it.
Questions were asked regarding work distribution, past mistakes, and challenges faced.