Microsoft | SDE 2 (L61) | Noida | May 2024 [Offer]

microsoft logo
microsoft
SDE 2noidaOffer
June 15, 202429 reads

Summary

I interviewed for an SDE 2 position at Microsoft in Noida and successfully received an offer after navigating multiple technical and design rounds.

Full Experience

My interview process at Microsoft for the SDE 2 role in Noida involved several rounds. It started with an Online Assessment, which had two questions of medium-hard difficulty. Following that, the Problem Solving round included two DSA questions, specifically 'Next Largest Element' and 'Minimum Window Substring'. The Design round was quite comprehensive; I was tasked with writing working code for the Low-Level Design (LLD) of an LRU cache, and then asked to make minimal changes to adapt it into an LFU cache. I also had to provide a High-Level Design (HLD) for my current project and then design an HLD for a system similar to a Voting system. The final round was an AA (As Appropriate, often Hiring Manager) round. Here, I was asked to design a database for a Supply Chain Management or Warehouse system, which involved drawing an ER diagram, writing SQL queries, and discussing various DBMS concepts. I successfully cleared all rounds and received an offer.

Interview Questions (6)

Q1
Next Largest Element
Data Structures & AlgorithmsMedium

In this problem-solving round, I was asked a Data Structures & Algorithms question commonly known as 'Next Largest Element'. The goal is typically to find the next greater element for each element in a given array, where 'next greater' means the first element to its right that is greater than it. If no such element exists, a default value (like -1) is used.

Q2
Minimum Window Substring
Data Structures & AlgorithmsHard

Another question in the problem-solving round was 'Minimum Window Substring'. This is a classic string manipulation problem where, given two strings, say S and T, the task is to find the smallest substring of S that contains all characters of T, including duplicates. The solution usually involves a sliding window approach with character frequency maps.

Q3
Low-Level Design (LLD) of LRU Cache
System DesignMedium

During the design round, I was challenged to implement the Low-Level Design (LLD) of a Least Recently Used (LRU) cache, requiring working code. This involves designing a cache that evicts the least recently used item when it reaches its capacity, typically implemented using a combination of a hash map and a doubly linked list to achieve O(1) average time complexity for get and put operations.

Q4
Low-Level Design (LLD) of LFU Cache
System DesignHard

After completing the LRU cache LLD, I was asked to modify my existing code to implement a Least Frequently Used (LFU) cache with minimal changes. An LFU cache evicts the item with the smallest frequency count. If there's a tie in frequency, the least recently used item among those with the minimum frequency is typically evicted. This is often more complex than LRU and can involve multiple data structures.

Q5
High-Level Design (HLD) of Voting System
System DesignHard

I was asked to propose a High-Level Design (HLD) for a system similar to a Voting System. This involved discussing various components such as user authentication, ballot casting, vote storage, real-time vote counting, handling concurrency, ensuring data consistency, scalability considerations, and potential database choices for such a system.

Q6
Database Design for Supply Chain Management/Warehouse System
System DesignMedium

In the AA/Hiring Manager round, I was given a scenario to design a database for a Supply Chain Management or Warehouse system. This included drawing an Entity-Relationship (ER) diagram, outlining the schema with tables and relationships, writing example SQL queries for common operations (e.g., retrieving inventory, order processing), and discussing relevant DBMS concepts such as normalization, indexing strategies, transactions, and data consistency models.

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!