My Preparation for Tech Giants

After four months of strong preparation finally cleared Microsoft.

October'21: I started my preparation from October Mid Week. I revised my basics in a week or two. During this time I solved tiny problems from codingbat.com and hacker rank to buckle up my basic java questions.

November'21: After two weeks, I started with leetcode questions. I was able to solve 2 medium questions a day. At this point, I realized if I continue at this pace, I cannot solve more problems. I increased my pace to 4-6 questions in a day anyhow topic-wise ( Hard Deadline ). I marked my calendar to complete the questions from this topic (Try to solve top questions). I reached the end of November. At this stage, I was able to figure out what kind of data structures should I use for a particular problem. At this stage, I have covered the top approaches used to solve the problems and they ask most in the interviews. Then I took leetcode premium and algo expert, system expert premium. and solved 8-10 questions a day.

Google:

In the last week of November, I received a call from Google for Backend Engineer. Requested HR for one month Preparation. She gave me time for preparation but I was unable to clear all the rounds.

December'21: By the third week of December I was able to solve 80 questions from Algoexpert. I solved easy medium and a few hard problems. There are advanced questions also in that. They have questions segregated by topic-wise, level. Each and every question, I used to solve the problem in two or three approaches. Make a note of all these in an excel sheet. By the End of the week, I used to recap all the questions I have solved till that week. I started with mock interviews in the last week of December.

Amazon:

I received the interview request from Amazon and cleared the assessment successfully. Requested HR team for 20 days for interview preparation. After successful preparation, I was able to clear four rounds of interviews but got rejected in the fifth round.

Microsoft:

By end of December, I received the call from Microsoft HR - I was shortlisted for the interview and as HR said, I received the Codility test link and completed the test in just 30 mins. In the remaining time, I added the comments and checked for performance.

Codility platform has normal test cases, Hidden test cases, Performance test cases. I was able to solve both the problems in O(n) complexity. One question from Strings and another question is based on DP. -- Cleared the assessment.

January'22: I revised all the topic-wise notes from the excel sheet and start thinking of new approaches to the problems. and started giving mock interviews. I gave 1 or 2 mock interviews a day to keep my confidence.

Microsoft:

In the first week of January, I received the schedule for the Microsoft Interviews. At this stage, I was not having a lot of confidence in the interviews. Since I have already been rejected by Big Tech giants. All the rounds happened on the same day.

D-Day:

10:00 AM - Interviewer directly started with problem-solving ( Literally my confidence went very low ), after solving the first problem on trees with good time complexity, my confidence levels increased. The Interviewer was happy with my solution. Since there is more time left, he gave another problem on twisted Array, was able to solve the question with a small hint- The Interviewer liked my approach. He asked to code for both problems ( Production-ready code ) in less time. --- Self Feedback: Hire

11:30 AM - Started with Low-level design round. The Interviewer asked me to design Split wise. First ten minutes, I focused mostly on the problem statement ( Requirements, identify top functionality ). Then started with identifying Models, Interfaces, Custom Data types, Enums, Services, Custom Exceptions, Driver Codes. The Interviewer Mostly focused on the Models, OO design principles. --- Self Feedback: Strong Hire

2:15 PM - [Most Interesting round] The Interviewer was very cool. He set the agenda of the call in starting three minutes.

For 10 - 15 min, There was a deep-down project discussion,

  • Why do you use elastic search?

  • How do you debug in a production environment?

  • How do you detect services down / Database Down?

  • What changes you have done as part of performance optimization?

Next, he jumped on to the Problem statement. Build high scalable, low latency, highly available systems like Amazon or Flipkart, or dunzo Initially, the interviewer asked me to list down the important features then moved to the high-level part. The Interviewer expected me to move from MVP, Staging system requirements, Production requirements. Follow up questions:

  1. Why NoSQL Database but not RDMS?

  2. Why Microservice architecture why not monolithic?

  3. Do we need a single load balancer / Multiple load balancers?

  4. Can you say load balancer can be a single point of failure?

  5. How can you make sure the system is having highly available and less fault-tolerant?

  6. How do you handle failure in any of the micro-service?

This round lasted for 1:25 min -- Self Feedback: Strong Hire

6:30 PM - As appropriate - AA Round - Principal Project Manager took this round

15 - 20 MIN - Deep Down into project discussion at the architecture level and recent challenges you have faced in the project. I used STAR ( Situation, Task, Action, Result ) format to answer these questions 20 - 25 MIN - After that, I had given the task to design Google Pay System - Focus is mostly on how to handle payment failures and database design.

10 - 15 MIN - Few behavioral questions, Why Microsoft? Why are you leaving the current company?

In just 3 min after completing this round, I received the call from HR, 'Congratulations Sunil, Welcome to Microsoft '. I didn't believe that I got selected in Microsft. After five minutes, again I called HR and asked for the next steps, then she said you will be receiving an email for document verification then I believed strongly 😄 🎉

GITHUB:

In the third week of January, received the interview request for Github (SDE III ), was able to clear the two rounds. Got rejected in the final round.

Daily Strategy: Mon - Fri: ( 3- 5 Hrs per day ) Solved at least 2 or 3 problems before starting your working hours (Mostly Leetcode daily challenge, GFG Problem of the day). During working hours I subscribed to email communications from DailyByte, AlgoDaily, Daily Coding Problem from JAN 2020. I just used to see the problems and think about approaches but didn't code to the questions. At the end of the week, I used to solve the questions.

Sat-Sun: ( 10 -12 Hrs per day) Spent one hour in the contest and then revise at least one topic, see different approaches one problem can be asked for and revise the excel sheet I have created. Solve the problems from DailyByte, AlgoDaily, Daily Coding Problem email communications. Solve at least two to three interview experiences from FAANG.

Resources:

Algorithms - Leetcode, GFG, Algo Expert

Low-level Design from interview experiences, Head First Design Patterns

High-Level Design - Alex Xu - System design, Grokking, Gaurav Sen Youtube videos

Last updated