Microsoft SDE Intern Interview Experience
💼 LTIMindtree Interview Experience (On-Campus) | Fresher | 2026
Salesforce SMTS | Interview Experience | Rejected
JPMC | SDE2 (Associate) - Java Backend - Interview Experience + Compensation
Microsoft - SDE2 - Coding Round
Microsoft | SDE 2 (L61) | Noida | May 2024 [Offer]
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)
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.
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.
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.
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.
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.
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.