LONG POST ALERT: This is my very first attempt to interview at FAANG and I have waited a long time to get started with this post, ever since I knew I will be appearing in their online assessment. Was never really sure what I would write but finally, here it goes.
TL;DR; Just read through the point titles
P.S. I worked my ass of these past few months, juggling a full-time job, learning, practicing, cooking and doing most necessary household chores. But in the end, I felt that I could have done more and I wish I had done so. So if you/'re in a position where I was, just hold on and keep grinding.
Status: Software Engineer at an International Organization
Position: SDE2/3 at Amazon
Location: Vancuover
Date: Apr-Jun 20
YOE: 3.5+
Interview process:
1.5 hours Online Assessment + Survey
Technical phone screen (1 hour):
Onsite (5 rounds):
Result: Reject
Overall, it all started when the hiring manager reached out to me over LinkedIn and asked if I would like to interview with AWS Vancuover. AWS has been my dream destination (not to mention, Canada has always been my top target to move to). Even though I didn't have any preparation (or problem solving practice whatsoever), I decided to take a go.
Online Assessment
Similar to the other OA interview experiences, except that, I was able to solve both the questions, except for a few test cases in the first question. I started trying to be extra smart and and ended up ruining the first 45 minutes of the interview. Having nearly given up, I moved to question 2, solved it and got back in time to start question 1 from scratch. As you can guess, I did not have sufficient time but I was able to get 60-70% of the test cases correct for question 1 this time. And knew what I had to do to get the rest of the cases right, but did not have enough time.
Similar questions (to the best of my memory):
Prison cell after N Days
Number of Islands
Heard back from the recruiter that they would like me to proceed to the Phone Interview round.
Phone Interview
The phone interview started off with a LP and soon he gave me a problem to solve. The problem isn't like the ones we generally find on LeetCode but more like an algorithmic problem focused on OOD. While solving this problem, I felt like it was trying to develop the underlying interface of a MapReduce framework or a Messaging Queue to some extent. I was able to solve the first part as he wished, but then he modified the requirement. I struggled for a while but then got hold of my breath and tried to figure out how to solve this problem optimally, all the while making it a discussion with him. Eventually, I reached a solution and started to code it up, but there was not enough time. So I explained in detail how the solution would work and also went over the time/space complexities (by myself since he didn't ask) before he gave me some time to ask a few questions.
Onsite Interview
Honestly, every step of the process I felt I was not ready enough. I started from 0 LC problems solved to solving a total of 163 problems by the time of my onsite [105 problems (33 Easy, 60 Medium, 12 Hard) on LC, 58 on Algo Expert (9 Easy, 28 Medium, 18 Hard, 3 V Hard)]. I have seen people with a lot more problems solved and still struggle in an interview, I can only count myself lucky to make it this far without vast experience in problem solving.
I also had nearly given up in the Online Assessment (half-way through) and struggled in many rounds but I would like to mention everyone in my shoes is that it is possible to bounce back. All you have to do is keep your composure and do what you do best. When I agreed to interview, I knew that I would either come out as a winner, or lose just enought to make myself much better throughout the process. And I believe I did become a lot better, I have gotten into a regular habit of solving problems, and I know myself a much better now.
How I prepared:
Some other resources I found key (apart from the popular ones):
I will keep updating this list because trust me, this list can be endless. But most importantly, I would like to mention that whoever you are, don't give up. I only tried when the opportunity presented itself, but it also brought me to think how many opportunities that we miss out simply by giving up or not trying. One last note, with work everyday, it has been difficult to make time for practice consistently, but the better you plan your interview preparation, the better you can achieve.