59

Software EngineerSDEMedium to Hard

This interview process is for a Software Engineer (SDE) role at Microsoft, specifically for the '59' internal designation. It is designed to assess a candidate's technical skills, problem-solving abilities, and cultural fit within Microsoft.

Rounds·4

Timeline·~14d

Experience·2 - 5 yrs

Comp band·US$110000 - US$150000

Interview time·195 min

Evaluation

What they measure.

  • Problem-solving approach
  • Algorithmic thinking
  • Data structure knowledge
  • Coding proficiency and clarity
  • System design capabilities
  • Communication skills
  • Behavioral fit and collaboration

Preparation

How to prepare.

Tips

  1. Master fundamental data structures (arrays, linked lists, trees, graphs, hash maps) and algorithms (sorting, searching, dynamic programming, graph traversal).
  2. Practice coding problems on platforms like LeetCode, HackerRank, and GeeksforGeeks, focusing on medium and hard difficulty.
  3. Study system design principles, including scalability, availability, reliability, and common design patterns (e.g., load balancing, caching, databases).
  4. Prepare for behavioral questions by reflecting on your past experiences using the STAR method (Situation, Task, Action, Result).
  5. Understand object-oriented programming concepts and design patterns.
  6. Review common interview questions for Microsoft, especially those related to the specific role and level.
  7. Practice explaining your thought process clearly and concisely, both verbally and through code.
  8. Research Microsoft's products, values, and recent news to demonstrate your interest and understanding.

Study plan

Fig · Study plan — 06 phases

01 / 06
01

Phase 01 of 06

Foundational Data Structures and Algorithms

Weeks 1-2: Data Structures (Arrays, Lists, Maps) & Basic Algorithms (Sorting, Searching). Complexity Analysis.

Weeks 1-2: Focus on core data structures like arrays, linked lists, stacks, queues, and hash maps. Practice basic algorithms such as sorting (quicksort, mergesort) and searching (binary search). Cover time and space complexity analysis.

Questions

Commonly asked.

  • Given a binary tree, find the lowest common ancestor of two given nodes in the tree.
  • Design a URL shortening service like bit.ly.
  • Implement a function to reverse a linked list in place.
  • Given an array of integers, find the contiguous subarray with the largest sum.
  • Explain the difference between a process and a thread.
  • What are the different types of SQL joins and when would you use them?
  • How would you design a system to handle real-time notifications for a social media platform?
  • How would you optimize a slow database query?
  • What are the principles of object-oriented programming?
  • Describe a challenging technical problem you faced and how you solved it.

Locations

Regional differences.

Fig · Regions — 03 locations

01 / 03

Location

Redmond, USA

Interview focus

Strong emphasis on data structures and algorithms, particularly tree and graph traversals.System design questions often focus on scalability and distributed systems.Behavioral questions may probe for experience with large-scale projects and collaboration.

Common questions

  • Given a binary tree, find the lowest common ancestor of two given nodes in the tree.
  • Design a URL shortening service like bit.ly.
  • Explain the difference between a process and a thread.
  • How would you design a system to handle real-time notifications for a social media platform?

Tips

  • Familiarize yourself with common algorithms and their time/space complexity.
  • Practice drawing system diagrams and explaining trade-offs.
  • Be prepared to discuss past projects in detail, highlighting your contributions and challenges.

Rounds

Round-by-round.

Expand a step for evaluation criteria, sample questions, and prep notes.

Med

Data Structures And Algorithms Interview · 45 min · Software Engineer / Senior Software Engineer

This round focuses on assessing your core data structures and algorithms knowledge. You will be presented with one or two coding problems, typically involving arrays, linked lists, trees, or graphs. The interviewer will evaluate your ability to analyze the problem, devise an efficient solution, write clean and correct code, and explain your approach clearly. Expect to discuss time and space complexity.

What they look for

A systematic approach to problem-solving.Proficiency in coding and debugging.Understanding of data structures and algorithms.Clear communication of thought process.

Evaluation

  • Correctness of the solution
  • Efficiency of the solution (time and space complexity)
  • Code quality and readability
  • Problem-solving approach
  • Ability to communicate the solution

Sample questions

  • Given an array of integers, find the contiguous subarray with the largest sum.

    ArrayDynamic Programming
  • Implement a function to reverse a linked list in place.

    Linked ListPointers

Prep for this round

  1. 01Practice coding on a whiteboard or a shared editor.
  2. 02Focus on understanding the underlying algorithms and data structures.
  3. 03Be prepared to explain your thought process step-by-step.
  4. 04Consider edge cases and test your solution thoroughly.

Common rejection reasons

  • ×Inability to solve coding problems within the given time.
  • ×Poor understanding of fundamental data structures and algorithms.
  • ×Lack of clarity in explaining the solution.
  • ×Inefficient or incorrect code.

DSA

Coding questions at Microsoft.

Frequently reported on Microsoft loops

Other guides

More at Microsoft.