Microsoft | Engineering Manager | Hyderabad | May 2021 | Offer
Anonymous User
15552

Status: Experienced Professional
Position: Senior Software Engineering Manager
Location: Hyderabad, India
Date: May 2021
Experience: 14 years

“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” – Martin Fowler

Round 1: Screening - Coding Test [15th May, 90 Min]
Received the link for the Codility test around mid of May 2021. The test consisted of two questions:

  1. Given two non-negative integers A and B find the number of bits set to 1 in binary representation of the number A*B.
  2. The task was about string manipulation where we need to implement the method moveDirectory(String currentDirectory, String command) where currentDirectory can be e.g. "/dev/system" and command can be e.g. "cd /" , "cd ..", "cd temp", "cd ../solution" etc. The program should handle all such cases and pass all the test cases.

After 2 days I got the call from HR that I have passed the screening test and they will schedule next three rounds in a single day (20th May).

Round 2: Coding Round [20th May, 60 Min]
This round was about coding where I need to code on codlity platform and I was provided two coding tasks on the spot.

  1. LeetCode 85. Maximal Rectangle
  2. LeetCode 210. Course Schedule II

Round 3: Coding Round [20th May, 60 Min]
Given two sorted lists merge them in-place without using extra space. The solution should preserve the sorted order in both the lists and also the length of the lists should not change.

Input:
 
First List: 2> 6> 9> 10> 15> NULL
Second List: 1> 4> 5> 20> NULL
 
Output:
 
First List: 1> 2> 4> 5> 6> NULL
Second List: 9> 10> 15> 20> NULL

Round 4: System Design Round [20th May, 60 Min]
This was a system design question about auto-complete where based on user input all suggestions starting with that input should be returned e.g. if user types he we should suggest hello, here, heel etc. as possible suggestions. We should have a mechanism to update our suggestions database based on user location, preference, history, current trends etc.

The discussion revolved around various aspects:

  • API design
    • Various methods and their signature - how to improve it further to make it extensible and reusable
    • Http Verbs and when to use which etc.
    • Pagination
    • Rate limiter
    • Caching or Not
    • etc
  • Bandwidth constraints in mobile devices
  • Payload size restriction for various devices
  • Natural language understanding
  • Transliteration
  • Ranking algorithm
  • Permissions e.g. location as that can also influence suggestions
  • Conversation practices - monitoring daily used idioms by the user
  • etc.

Then discussion led to how will we update and keep latest suggestions, how we handle timezone, how do we store the suggestions (in Trie), how to reduce time taken to find and rank suggestions and then finally the task was to code the solution discussed so far.

After these rounds I was done for the day and after few days they informed me that I have cleared all the previous round and will have two more rounds. After few days I got invitation for next round.

Round 5: Managerial Discussion [60 Min]
The questions were similar to what we expect in managerial round but all the answers must be backed with one concrete situation where you demonstrated that quality.

  • Why are you leaving your current position?
  • Why do you want to work for our company?
  • What has been your biggest accomplishment so far?
  • If you could change one thing about your past place of employment, what would it be? Why?
  • Did you ever fire someone? Did you ever put someone on PIP? Why?
  • How is managing other managers different from managing individual contributors?

After few days I was informed that I have qualified this round and they informed that there would be one more round for two hours.

Round 6: Partner Manager Discussion [120 Min]
First thirty minutes were about discussion about resume, projects, responsibilities and my day-to-day work in current role. Then the next sixty minutes were about product design:

Design data model, storage format and network API for a TV program information guide system.
Design for:
1. 1000s of channels

Main UX use case:
Scrolling a grid based UI both verticially and horizontally.
User should be able to scroll many days into the future.
User can go and see the program details in a separate UI.
Program Data for X hours should be instantaneously available for the TV OS and kept in main memory.
Device has very limited main memory so cannot hold more than a few hours of data in main memory.
You do not have a DB on the client. 

The discussion was about the API design, method signature, data model at the backend and the api implementation. Then the last 15 minutes were about any questions I had.

[June 2021] - Got email regarding my selection :).

Note: The toughest part was product design rounds as they were very detailed and need more breadth than system design rounds - in essence they are similar to product design rounds in FB.

Major Take Away (Conclusion Notes)
There is no replacement for hard work but I must admit that luck also plays a major role. If you do not get into FAANG then its okay, its not the end of the world so don't get discouraged.

Life is not all about coding - we should appreciate the beauty of computer science where we have too many intersting areas to explore. I also got rejected in MS/FAANG around 5-6 times in past but I did not give up. I did not make the job in MS as my life's mission either. I continued my practicing in a slow and steady fashion becuase I just love programming and for me coding is like a poetry. Once you start loving it then things will start falling in place automatically.

Hope this would be useful for all of you !!

“I'm not a great programmer; I'm just a good programmer with great habits.” ― Kent Beck

========================= Interview Preparation ======================================

I have interviewed and also recevied offers from many product companies e.g. Facebook, Salesforce, Github, multiple startups etc. and I believe general trend is same in most of the companies. A number of you showed interest in my preparation journery and hence I have created a separate section for this:
https://leetcode.com/discuss/interview-experience/1264757/Microsoft-or-Github-or-Etc.-Interview-Preparation-JourneyStrategy

Comments (38)