Microsoft | Senior Software Engineer | Bangalore | March 2025

microsoft logo
microsoft
Senior Software EngineerBangalore5.5 years
April 1, 20252 reads

Summary

I interviewed for a Senior Software Engineer role at Microsoft in Bangalore, encompassing coding, LLD, HLD, and managerial rounds. My experience concluded with a likely rejection due to my inability to effectively debug a complex code problem involving linked lists during the final round.

Full Experience

I am currently working as a Senior Software Engineer in a fintech company with a total of 5.5 years of experience. Below is my interview experience with Microsoft.

All rounds happened on the same day as part of a recruitment drive.

Round 1: Coding

Q1: Stock Buy/Sell with at most 1 transaction. Follow up: Print the buying and selling day as well. Follow up 2: We can do at most 2 transactions.

After the problem, we discussed a random problem related to one of the issues the interviewer faced in his project.

Round 2: LLD

Q1: Given an array, we need to perform one of two operations on each element at most once:

a[i] = a[i] + k
a[i] = a[i] - k

Return the minimum possible difference between the minimum and maximum values after performing these operations on the entire array. Each operation can be performed at most once on each element. It is mandatory to perform either one of the 2 operation on each element of the array.

Q2: LLD for a URL Shortener.

Round 3: High-Level Design (HLD)

Design a scalable web platform for an e-commerce admin portal used by various roles such as Admins, Support agents, Sellers, Finance teams.

The system should support the following functionalities:

  • Search and manage users.
  • Fulfill, refund, and cancel orders.
  • Manage product catalog (inventory management).
  • Monitor dashboard and analytics.

Round 4: Managerial

The interviewer initially discussed my previous project and asked some design related questions.

The interviewer then showed me a complex code he had written, which involved implementation of linked list via memory chunk allocation, and pointers which pointed to head and tail of each linked list. I was told few test cases were failing, which I need to fix. Unfortunately, I wasn't able to fully understand and fix the code during the interview. The interviewer mentioned that I could have used pen and paper to visualize and debug the code more effectively.

Verdict: Most probably rejected as I didn't fully grasp the problem in my final round due to a lack of effective visualization, and I could have approached the debugging better with visual aids. Funny thing is that I was able to understand and visualize the code when I went to sleep that night😅

Interview Questions (5)

Q1
Stock Buy/Sell with At Most K Transactions
Data Structures & AlgorithmsMedium

Stock Buy/Sell with at most 1 transaction. Follow up: Print the buying and selling day as well. Follow up 2: We can do at most 2 transactions.

Q2
Minimize Difference After Array Operations (Add/Subtract K)
Data Structures & Algorithms

Given an array, we need to perform one of two operations on each element at most once:

a[i] = a[i] + k
a[i] = a[i] - k

Return the minimum possible difference between the minimum and maximum values after performing these operations on the entire array. Each operation can be performed at most once on each element. It is mandatory to perform either one of the 2 operation on each element of the array.

Q3
Low-Level Design for a URL Shortener
System Design

LLD for a URL Shortener.

Q4
High-Level Design for E-commerce Admin Portal
System Design

Design a scalable web platform for an e-commerce admin portal used by various roles such as Admins, Support agents, Sellers, Finance teams.

The system should support the following functionalities:

  • Search and manage users.
  • Fulfill, refund, and cancel orders.
  • Manage product catalog (inventory management).
  • Monitor dashboard and analytics.
Q5
Debug Complex Linked List Implementation
Data Structures & Algorithms

The interviewer then showed me a complex code he had written, which involved implementation of linked list via memory chunk allocation, and pointers which pointed to head and tail of each linked list. I was told few test cases were failing, which I need to fix.

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!