Google (L4), Microsoft(L62), Amazon(L5) [Offer] | Uber(SDE-2) [Reject] | India
Anonymous User
14344

Hi Leetcoders,
Everyone has their own unique journey, here I am sharing mine.

Background
Experience: FAANG+ company, 4 years
Education: B.Tech in Computer Science from Tier-1 college in India

July 2020
I was pretty much bored in my company and was looking a way out (4 years cliff was also there). Coincidentally, got a mail from a Google recruiter on LinkedIn. But he kinda ghosted me after that. After my 2 mails and a long wait, I got the reply that they have frozen the hiring for L3/L4 for some days.

Aug 2020
I heard about LeetCode for the first time. Created account here and started practice. Huge thanks to LeetCode Daily Challenges to help me in keeping my consistency. I can see that my consistency eventually helped me in picking up good speed in solving problems, both in how to approach the problem, and typing the code.

Sept 2020
An Amazon recruiter approached me, but ghosted (wow! right?). A lot of small startups approached and I scheduled a few interviews with them (at least for practice!). In all of them, my coding rounds went superb but always got eliminated right after Design round. This time I joined SDE Skills Discord Server and started learning how to approach Design questions.

Oct 2020
A Microsoft recruiter approached me and scheduled my interview for 2 weeks later. After a week, another Amazon recruiter approached, and I got it scheduled for first week of November.

Microsoft Interview (L61) [Offer]

  • 1 coding round - LC medium question (totally copied), I did that just 2 days ago, killed it.
  • 2 design rounds - Worked through the 4-step guide of how to approach design problems. The interviewers were very good and appreciated the thought process.
  • Hiring manager round - One design question. And a few behavioral questions.

All the Microsoft interviewers were so nice, and they appreciated the thought process over the final solution. I could see tremendous difference compared to the interviewers at small startups (No offense!).
Recruiter contacted after 4 days and offered the job, saying that the feedback was highly positive.
Initially the offer was for L61 but after Google offer, they were ready to offer me L62, saying that they can't give that much compensation at L61. Otherwise level-change after interview never happens, that is what recruiter told me.

Nov 2020
Amazon Interview (L5) [Offer]

  • 2 coding rounds
    • Both LC-medium level problems (1 Graph and 1 DP).
    • Graph problem was totally new to me. Both problems were very challenging, loved solving them

After a week, another 2 rounds were scheduled

  • Bar-raiser round
    • A lot of LP questions and asked me everything related to my work, what libraries I used, why I chose what, totally went in depth and noted everything down.
    • One normal coding question, found it little tricky to write clean code for that.
  • Hiring Manager round
    • One design question (both HLD and LLD)
    • Discussed multiple real-life challenges coming up in the above problem
    • A lot of LP questions like how would you bring benefit to Amazon with your presence here.

Got offer next day.

Meanwhile, I was approached by Uber recruiter. Got it scheduled in December.

Dec 2020
Uber Interview (SDE-2) [Reject]

  • Coding round 1:
    • 1st problem was brilliant and totally unique so far, LC-hard level. Pretty challenging for me, tried 3-4 different approaches and finally solved it optimally. Loved it! Interviewer seemed pretty happy.
    • 2nd problem was DP on tree. It was just 5 mins problem as Interviewer only asked for the approach.
  • Coding round 2:
    • 1 question on Graph, other on array. LC-medium level.

Got last 2 rounds scheduled after a day.

  • Design round 1:
    • Design Amazon Wishlist. Interviewer had deep knowledge of Databases. I felt very intimidated and nervous.
  • Hiring Manager round:
    • A lot of discussion around my current project I was working on. He pointed out one problem there (a little misunderstanding, I would call it) and that's how the situation went pretty bad.

I found Uber interviewers very talented.
Recruiter contacted me after 2 days. Told me that coding rounds had very positive feedbacks but last 2 rounds dramatically ruined it for me.

3 days later, out of surprise, the Google recruiter who contacted me in July, contacted me. Told me that the hiring has been resumed. I told him about my 2 offers and he tried to schedule the interviews ASAP, but I still asked for 1 month time for more preparation (After all, it was Google). In this time, my friends at Google helped me understand the process. Asked them for mock interview.

Jan 2021

  • Screening round
    • 1 LC-medium level question where you have to create a class and write a few methods. I was pretty nervous there.
    • Clarified question as much as I could (it is important in Google interviews). Forgot to clarify a few edge cases, and came up with a sub-optimal solution.
    • Then I was asked one follow-up question.

Recruiter contacted next day, good feedback about question clarification, bad feedback about edge cases. Overall positive, so onsites were scheduled for next week.

  • Onsite coding round - 1
    • Wasted 8 minutes in hi/hello and learning about what they work at Google and all.
    • 1 LC-hard, totally vague question. Minimax algorithm based. But I used some graphs and all. Couldn't complete code. Negative feedback for this round.
  • Onsite coding round - 2
    • 1 LC-medium level DP problem.
    • 1 follow-up on it.
  • Onsite coding round - 3
    • 1 LC-medium level Graph+DP based problem.
    • Solved it in 20 minutes, and interviewer said that was all he came up with. So, I just discussed about their experience at Google for a few minutes.
  • Onsite coding round - 4
    • A class implementation problem with two methods. LC-medium level and its follow-up.
    • Interviewer was impressed with my approach to reuse code and make it cleaner and modular.
    • Also got positive feedbacks for clarification and edge cases.
  • Googliness round
    • The interviewer was expecting for Coding round instead, rescheduled for next day.
    • General googliness questions comprised of both past experience problems and hypothetical problems. Judged how I would lead the team or how good I am at team work.

All my rounds were scheduled in late night in India with NYC-based interviewers. Every night one round. All rounds had 45 minutes time limit. There was no extra time given for greetings or other discussions. And, instead of basic horrible Google Docs to write code, I was provided with a better platform, which had indentation and syntax highlighting support, and I think that's now standard virtual editor in Google interviews now.

Next day, recruiter contacted me and told me that all the feedbacks were highly positive. Except for first round, no other interview had any negative comment.

Google Interviewers write pretty detailed feedbacks (yes, you can hear them typing something all the time).
In all the feedbacks, I observed that they check for

  • speed
  • whether you were struggling and needed hints
  • Clean code
  • Problem clarification
  • Edge cases

After 2 days, got HC result. L4 was offered.
Recruiter gave me some peanut hike over my other offers. Didn't know Google pays much more than Amazon/Microsoft so didn't negotiate as I was getting hike over top offers from Amazon/Microsoft (It sucks, ngl!). Never make this mistake. If HC is accepting you, it is a huge plus for recruiter as well so they won't let you go easily. Demand!
Within 3 days, had team matching discussion with 2 teams. It is very hard to choose a team when you can't tell how they internally work. Both seemed pretty good to me, accepted one almost randomly.

Feb 2021
Declined other offers. Microsoft was ready to retain with hike over Google offer and also offered L62 level compared to initially offered L61. But I felt pretty exhausted after these 3 months, and wanted to take some rest. So, clearly maintained about joining Google.

How I prepared

  • Solved daily challenges on LeetCode, missed only 1 day from Sept till now.
  • Participated in almost every weekly and bi-weekly challenge. Weekly challenges occur in early morning in India, so used to miss them.
  • Always used to solve 3/4 problems in these challenges. (Knight badge).
  • Mock contests on LeetCode every 3-4 days. I didn't have premium so could only do Random ones. But I don't think it matters. Good quality there. Solved all the questions in mocks. And my score fluctuated between 7.19 and 8.61.
  • After 6 months, the problems I solved were 300+ with 1:4:2 ratio of easy:medium:hard. But I don't think number of problems matter at all. You can always introspect and tell your areas of improvement. A quick way is, open a random problem and observe how intimidated you are feeling.

Till September, I didn't know what was gonna happen in next few months.
2020 ended pretty well with 2 offers. 2021 welcomed with more happiness :)
So never feel demotivated while going through tough situation. Continue working hard.

Thanks for reading!

UPDATE

Questions asked in the comments

Q1: How did you negotiate for 3 months with Microsoft?
Ans: I got offer letters from both Amazon and Microsoft in November. I accepted them but made it clear to recruiters that I can't join before Feb. Both the recruiters didn't show any reluctance with that and put my joining date for Feb. For 2 months, I negotiated between Microsoft and Amazon.
Also, if you noticed, I said that in December, when Google recruiter contacted me, I told him about offers and my joining date in Feb, that's why he tried to make the process super fast.

Q2: My competitive coding ratings?
Ans: My CodeForces title is Expert (lower-end), and my LeetCode contest rating is ~2150.

Comments (13)