Google, Microsoft, Amazon | SWE | Seattle | Nov 2020 [Offers]
Anonymous User
14079

Background: Software
Experience: 2-5 years

LeetCode stats
Questions solved: 500+ (Easy/Medium/Hard ~ 150+/280+/70+)
Contest rating: 1900-2100
Mock interview rating: 8.5-9 (did ~100 on LeetCode)
Premium: Yes, very helpful in my opinion


I may sound like a broken record, but I want to truly thank LeetCode community being a gold mine of tips and information! There's no way I would have received any of these offers without this amazing platform. I didn't have any prior experience interviewing with FAANG-tier companies and was very intimidated going in.

Earlier in the year I decided to try and capitalize on being stuck at home and get in interviewing shape. I started by taking an online interview prep course (Udemy) to refresh my data structures & algo basics. Then I read through most CTCI chapters (without solving the actual questions). I was a beginner in terms of LeetCode-style interviewing, so I wanted to make sure my foundation was good before jumping into practicing questions.

After going over my basics I jumped into LeetCode. This was by far my main method of preparation. I started with Easy questions, and after a while moved up to Medium and then Medium + Hard. The monthly challenges made a huge difference for me as they gave me motivation to try and solve at least one problem per day. In parallel I went through the "Top Interview Questions" cards and did all those questions (Easy -> Medium -> Hard).

Once I finished those cards I decided to put my money where my mouth is and buy a premium subscription - this is where the real fun began! I dug into the company-specific cards and did >90% of those questions. I also completed a healthy amount of LeetCode mock interviews which I found greatly helped me become faster at coming up with solutions as well as coding them up. Another thing that helped me was the weekly contest - I was forced to solve questions I had never seen before under a time constraint. Perfect for interview prep if you ask me! I recommend aiming to solve 3-4 questions.

Aside from LC I also used another free platform for mock interviews (PR_MP). I got great feedback from these sessions and could tell that I was improving as an interviewee. Although the LC mocks were good for building up speed, they didn't properly emulate the actual interview experience - it's totally different when you're actually speaking with someone!

I won't discuss system design in much depth. I read through Gr__k_ng and watched a bunch of videos. It's tough to prepare for design questions as the interviewer can usually tell when they're speaking with someone who read up on these topics vs. someone who has actual hands-on experience building those systems. I think this is an area where actual experience is immensely valuable. I personally didn't have much experience building distributed systems, so I believe this was the weakest part of my interviews.

The entire prep process took me about 5-6 months while working full time. I prepared during evenings and weekends. To be honest I never felt like I was ready to jump into interviewing, but if I didn't give myself a hard deadline this could have went on forever.


Next I'll talk about my high-level experience with each of the companies. I won't go into the question contents at all due to NDAs, so I apoligize for the ambiguity.

My virtual onsites were scheduled within <2 weeks of each other as I wanted to have competing offers for negotiation purposes. Spoiler: this worked beautifully! If possible, I highly recommend scheduling your interviews close to one another. Not only can it help during negotiation if you receive multiple offers, but the interviews also act as practice and make you more comfortable during the upcoming sessions. As for negotiation, I was able to bring up my offer compensation by around 20% just by having competing offers.

Amazon

I was contacted by a recruiter and scheduled an online assessment after the initial recruiter screening.

  1. Online assessment - two questions directly from the LC list
  2. Virtual onsite (5 rounds) - three LC rounds, one design round, one manager round (past experiences)

I won't go as far as saying Amazon was the easiest of the three, but I was most confident that I did well coming out of that interview. It felt more straightforward than the others. Once you're comfortable solving Medium LC questions you should be well prepared for this interview. The system design question was straight out of Gr__k_ng.

As others have said, make sure to know your Leadership Principles well - try to prepare at least 2 unique examples per LP if possible. I was asked about past experience during each round, and the questions were focused around at least one LP. I'm not sure if I got bonus points for doing this but I also mentioned some of the LPs when answering the questions.

Overall it was a surprisingly positive experience! I went in expecting to talk to a bunch of jerks, but everyone I spoke with was nice and respectful.

Microsoft

I was referred for a few positions and was contacted by a recruiter.

  1. Phone screen - OOD question related to data
  2. Virtual onsite (4 rounds) - two design rounds (OOD), two LC rounds

Nothing special to mention here - LC questions were around Easy/Medium level. The OOD questions were also fairly straightforward, and having done a good amount of design-style LC questions (ex. LRU cache) helped quite a bit. Overall also a positive experience, interviewers were all very nice.

Google

I was referred for a few positions and was contacted by a recruiter. I skipped the phone screen due to the referral.

  1. Virtual onsite (5 rounds) - four LC rounds, one behavioral round

This felt by far like the toughest interview round. The questions seem like they have no end - they only get tougher and tougher to see how far you can go. They started around Easy/Medium and eventually worked up to Hard. I had seen maybe parts of some of the questions on LC, but it wasn't even close to having solved the entire question and just breezing through the interviews. This interview will truly test your fundamentals and how well you can actually solve these problems.

I felt like I did fairly well in at least three of the rounds, but wasn't confident at all for the other two. I came out of this interview thinking there was no way I'd get an offer. I believe the difference-maker here was my communication and overall positivity - I tried to make the experience as enjoyable as possible for the interviewers.

Again, this was a positive experience as everyone I spoke with had a great attitude and was respectful. What wasn't as positive was the beatdown I thought I took, but I guess everything worked out in the end!


Random tips

In no particular order:

  • Mock interviews were extremely beneficial for building up speed, talking through solutions, and overall confidence. I remember being more nervous for my first mock session than for my actual first interview. Practice makes perfect!
  • Flashcards helped me recall problems I had solved months ago. Don't just power through questions - make sure you're retaining knowledge as well. For those interested, I used Anki and created flashcards out of each question I solved. Spaced repetition does wonders
  • If possible, try to get referrals for positions you're interested in as they make a HUGE difference with getting your foot in the door
  • Smile and be as positive as possible! Interviewers are not only assessing your technical skills but also your soft/interpersonal skills. At the end of the day they want to bring on someone they will enjoy working with, so make sure to keep this in mind
  • Schedule your interviews so that they're close to one another. This will help keep you in the interviewing rhythm and can significantly increase your offer compensation if negotiating with competing offers
  • Luck plays a huge role, so please don't beat yourselves up if things go badly. I strongly believe that I was extremely lucky and that things could have turned out very differently had I been matched with bad interviewers

Stay consistent, prepare well, and results will come. Best of luck to everyone!

Comments (51)