Amazon SDE2(offer) | Google L4 | Facebook E4(offer) | Microsoft SDE2
Anonymous User
7393

Status: 4 years experience
Position: Fullstack developer in a startup.
I'll start by saying I won't get into details of the technical questions, and I won't say my location.

Background:
I started dreaming of getting to one of these companies about 5 months ago, and since then I have spent a considerable amount of time getting there. I would say I spent almost each day of the last 2 months studying atleast 2 hours a day, but mostly atleast 5-6 hours a day

Preparation:
320 problems solved: 68 easy, 190 medium, 62 hard.
I problem solved atleast 200 of them multiple times.
for system design, I used GTSDI and I bought SE course, and saw all the videos there.

Microsoft:

round 1: 2 Algorithm question - easy and medium. what was weird for me here was that the interview kept asking me "what would you like the input for this question to be?". thanks to this interview, I learnt it is possible to be asked about the data structure of my input.
the interviewer gave me 30 more minutes. I sucked hard

round 2: I was asked an OOD question. I didn't know those kind of questions. I did horrible, but again, I learnt a lot and went to studying.

Summary and Advice: Needless to say, I did not pass. be aware that OOD questions are possible at Microsoft and Amazon! asking for the data structure of the input is possible at Microsoft and at Google.

Amazon:

Online assesment: 2 medium level questions, nothing to say here.

Onsite Interviews: each round is 1 hour, where 20-25 minutes go to leadership principles, and 20-25 minutes go to technical
round 1: this round was with a bar raiser, and it was 25 minutes of LP, and 20 minutes of algorithmic.
the interview asked me 1 easy question, and after i finished coding it in about 5 minutes, he asked me a hard followup DP question on leetcode, one of the hardest IMO. I actually solved it in O(N^2) instead of O(N), but he was super super pleased with it. couldn't come up with the more optimal solution.
this round was great, as I learnt later from the HR

Round 2: Another bar raiser. 25 minutes of LP, and 20 minutes of OOD question. This time I came prepared, and I lead the convesration, using various design patterns and writing a lot of code. a lot of data modeling, thinking of the design and understanding the requirements.
Great round as well.

Round 3:: System design question. The question is a variation of a popular system design question. I did okish, I was great at the early stages, but as the design got trickier, I slowed down. I did finish all the functional requirements, but didn't get too much in-depth. 30 minutes of this, and then 15 minutes of LP.

Round 4:: 25 minutes of LP, and then a hard question. probably my best round. The interviewer even told me he was really impressed with my solution.

Summary and advice:
HR called me about 3 days later and told me I passed. HR did confirm I did great in all the rounds by the SD.
I would say Amazon's technical questions were really hard, but the system design was pretty easy. I obviously didn't put enough effort to the system design. I would suggest to really try doing system design, and not just read other solutions.
Amazon's technical questions can be found on leetcode, but they are not the most popular ones.
I got the compensation about a week later.

Google:

Phone screening: 1 medium-hard question, with the interviewer asking me "what input data structure do you want to have?". a hard follow up. I did awesome here, with a lot of explaination of third party libraries and how their work behind the curtains.

Onsite Interviews: each round is 45 minutes.
Round 1: a medium level question, with the 'what input' kind of question. a hard follow up, with DP. I did okish, but I didn't have enough time to write code for the follow up.

Round 2: A system design interview. a very niche system design. I have never used that system, and wasn't even familiar with it, so I had to learn everything on the spot. I was okish minus, and this was talked a lot later with the HR.

Round 3:: behavioural round, I did great and it was fun.

Round 4:: Another coding round, 1 hard question, with the "what input". I got the answer and the coding aswell. Great round.

Round 5:: Coding round, 2 medium question, and a medium follow up. The problem in this round was that my interviewer could not understand my anwer. it took 15 minutes for him to atlast understand why my solution is right, which killed me time. I showed him on an example multiple times, talked slowly, and by this round I know how to explain my solutions good, but this guy could not understand it and it killed my round. nevertheless, i could finish the first problem, and give him the solution to the second one(which, again, took 10 minutes to explain).
the bothering thing is that the HR told me that he said: "The interviewee came up with the solution late, but after he got it, he explained it very coherently and wrote the code very fast".
It took me about a minute to come up with the solution... oh well

Summary and advice:
Always think of your input, and what input would be optimise for the question, as this is was Google does.
None of the questions I was asked were on leetcode, and they were brutal.
Also, put a lot of effort to the system design.
After 2 weeks of ongoing conversation with the HR, I did not pass the commitee. I was not good enough in the system design, and it I need too much guidance.

Facebook:

Phone screening: 1 easy and 1 medium question from leetcode popular

Onsite Interviews: each round is 45 minutes.
Round 1: 2 medium leetcode questions. did great.

Round 2: system design question, not popular one. did great.

Round 3:: behavioural round, did great.

Round 4:: 1 easy and 1 medium leetcode questions, and 2 follow up questions, one which is hard IMO, which I finish the coding. the interviewer really wanted to test if he can break me, I think.

Summary and advice:
Facebook was the easiest. One of the interviewers told me I finished the question in record time, other interview told me he never thought about this edge case. Nice ego boost :P
I was told by the HR the same day I probably got it, and a day later I was accepted by the commitee.

Last words of advice:

  1. Prepare for OOD questions with youtube video or some course
  2. Prepare for system design a lot.
  3. make a DFS learning. finish stack questions first, then graphs, then DP, whatever. Don't BFS on everything, as you'll need to be great in every kind of question.
  4. Try to have fun, and try to finish atleast 1 question a day, so you'll stay in shape all the time.
  5. Stop learning when it's not your smart-time, for me it's beyond 19:00.
  6. Be ready, Google and Microsoft asks 'what input do you want', and this will take a lot of time, and a lot of thinking.

Summary:
First, try to have fun from this "project". I could not do this if I didn't have fun, which I did, after about a month into the studying. This project is going to make you a faster, better developer.
The algorithmic preparation will make you learn new syntax, and will the change the way your review pull requests. It will make you own the programming language more, and think of your big O all the time, without needing to actually think about it.
The system design preparation will make you think of high level components, think how those components interact with eachother, what happens when they fail. It will make you think of the architecture of your own features and systems without really thinking about it, as it will be in your brain all the time.

What I am trying to say is that even if I did not got to Facebook and Amazon, it wouldn't matter, as I became a better developer, and I had a lot of fun.

Good luck everyone, have fun!

Comments (16)