# 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](http://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.

![Study sheet](https://1133441777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MP3gpNOfmHBf90k26iY%2Fuploads%2FONs9WWF6pBnthL1x7YU0%2Fimage.png?alt=media\&token=fede4e2d-bebf-4b0b-b42d-ff7503f321c9)

**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.*&#x20;

**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.*&#x20;

*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.*&#x20;

![My December'21 calendar](https://1133441777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MP3gpNOfmHBf90k26iY%2Fuploads%2FLO7bUCY28WHcnJFYZqqT%2Fimage.png?alt=media\&token=bf5464c2-d70a-4aa6-8e99-26e5764a890e)

\
**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.*&#x20;

***D-Day:***&#x20;

***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.*&#x20;

*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.*\
\
\&#xNAN;***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*\
\&#xNAN;***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* :smile: :tada:

![My January'22 calendar](https://1133441777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MP3gpNOfmHBf90k26iY%2Fuploads%2FfCk7zXSanKLCzixWtZ1c%2Fimage.png?alt=media\&token=ed533bdd-6ce0-41f0-94d2-fecff26ac55e)

**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.*<br>

**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 J**AN 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.

![Consistency ](https://1133441777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MP3gpNOfmHBf90k26iY%2Fuploads%2FSbJcausNSXqe8JjCS0kn%2Fimage.png?alt=media\&token=8742a2a6-fa1e-4239-a34f-1b846fd96caf)

\
**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.

![Consitency in Geeks For Geeks for three Months](https://1133441777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MP3gpNOfmHBf90k26iY%2Fuploads%2Feq3hu8U6FC1PTm8yV1GD%2Fimage.png?alt=media\&token=43c2377c-0dd0-4cea-9e78-a5022e7d70f3)

**Resources:**

**Algorithms** - Leetcode, GFG, Algo Expert&#x20;

**Low-level Design** from interview experience&#x73;**,** Head First Design Patterns

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