Amazon | SDE 2 | Seattle | Mar 2020 [Offer]
Anonymous User
14908

Status: Software Engineer in Fortune 500 Company, BS Computer Science, Top 3 University in Canada
Experience: 2 years
Position: SDE 2 at Amazon
Location: Seattle, WA
Date: March 2020

Hi everyone! I just wanted to start off by giving gratitude to the LeetCode community, it was extremely helpful in my preparation for this experience from start to finish. I'm writing this post to not only give back to the community but hopefully instill some hope in those who are losing faith in the interviewing process. I had been rejected from a couple of big-named companies previously after only going through coding assesments, so I had to course-correct and figure out the right way for me to study effectively for these interviews.

Preparation advice:

I'm starting off with this because I think its important for everyone to know how to learn smarter before diving into the rest of this post. I know everyone here seems to be really obsessed with getting their LeetCode problem count high, which is understandable as it seems like that's the right thing to do given that most interviews are revolved around coding questions but I found this to be super unproductive. I have been out of University for 2.5 years now, so I completely forgot all the core-concepts, from the difference between BFS and DFS, to even how to traverse through a binary tree. It was embarassing for me to accept that at first, since I did really well in University and learned all of this in the past. So, I tried to trim the process and jumped straight into doing lots of medium/hard LeetCode problems and reading Gr#kking the System Design course when I couldn't even remember something as simple as how hashing worked! My boyfriend was actually the one who noticed this and said I needed to get back to the basics and that advice was what ran through my mind the entire time of preparation.

I went ahead and read the Cracking the Coding Interview book from cover to cover, starting from the very basics (Arrays, HashTables, etc) and used additional resources like HackerEarth to cross-reference with the topics I was learning that day. I used the Pomodoro Technique and did 25 minute of work, 5 minute of break, with 4 sessions during weekdays and 8 sessions during weekend for three weeks straight. I compiled a document of notes for what I learned and after reviewing all of the core-concepts (which actually did not take long because if you are already a CS grad, this should just be more of a refresher), I continued on with preparing for the OOP design interview through the Gr#kking the Object Oriented Design Interview course, then finally the system design interview: Gr#kking the System Design Interview. I really recommend both courses, they are definitely worth the money!

In total, I only did probably around 10-15 LeetCode questions for preparation. I found that you only have to do enough to get a grasp of the different algorithms you might use for certain cases. So, if you have LeetCode premium, I'd recommend going through the Amazon card, and working on at least two questions per topic, if you have time, work on more. As for the Amazon leadership principles, this post here was a life-saver: https://medium.com/@scarletinked/are-you-the-leader-were-looking-for-interviewing-at-amazon-8301d787815d. I basically read through the article, one principle at a time, and compiled notes with two examples of answers I would give for each type of questions that might get asked which pertain to the principles. Once you have that, then its all a matter of choosing the appropriate story for the question asked. Here is also a list of behavioural questions that I read through and practiced from after writing my examples: https://leetcode.com/discuss/interview-question/437082/Amazon-Behavioral-questions-or-Leadership-Principles-or-LP.

Online Assesment:

I was given 90 mins to complete 2 coding questions, with 15 mins to descibe my approach, and 15 mins for a work style survey. This forum was extremely helpful when it came to preparation for this as my question was listed in the top five questions: https://leetcode.com/discuss/interview-question/344650/Amazon-Online-Assessment-Questions.

I completed the OA on February 14th with all passing test cases and three days later, I received the invite for on-site (which later became a virtual interview due to COVID-19) scheduled three weeks later.

Onsite:

Some advice before going into the onsite experience, try to get as much sleep as you can the night before (a good technique for me is to block out all the lights and hide your phone/laptop in another room). Also, eat a big breakfast and when it comes down to your lunch break, make sure you eat a lot too. I took advantage of the virtual aspect of the inteview and ended up napping for 15 mins during the lunch break, which I think helped me a lot in my last two interview as I was more refreshed. I also kept reminding myself to not be nervous as being nervous doesn't get me anywhere (I found that in the past I wouldn't do as well in interviews because I just get super nervous for some reason).

As for virtual interview specifics, I coded on an online live-editor provided by Amazon and used a mini whiteboard I bought from the dollar store to draw for the diagram portions (I found this is easier than marker and paper that they suggested because it's hard to erase if you made a mistake).

Round 1: This round was with a hiring manager, he was extremely pleasant and we had a great conversation. There was no coding questions asked in this round and it was all leadership principles/behavioural. I think in total, there were maybe about 5-6 questions and by the end he expressed how great of a culture fit I would be at Amazon and he hopes that I do really well in the technical aspect as he would want someone like me on his team. I was glad that this interview came first as it set a really good tone for the rest of the interviews.

Round 2: So, this round was actually the one that had me worried during the period of time after completing the onsite and before the offer. Reason being was that even though I had suggested the correct approach, I felt that my code was not as clean as I wanted it to be and I thought that might dock my marks off. I'm a classic over-thinker, so I kept replaying this interview over and over in my head but it was honestly not that bad. It was a sorting/searching LeetCode hard problem. This interview was with a software engineer, they also asked me 3 behavioural questions before going into the coding problem.

Round 3: This round was OOD oriented, it was not tricky at all as I was already given the existing API for the problem. I'd say the number one thing to prepare for these type of rounds is to familiarize yourself with basic OOP principles and do a couple practice questions on the Object Oriented Design course I linked above. This interview was with two software engineers, but one was silent and just shadowed. Again, the interviewer started out with around 3 behavioural questions before diving into the coding portion.

Lunch: I ate enough to feed three people and napped. This was a great choice as I was kind of starting to lose sanity after the first three rounds. Talking non-stop for three hours takes a lot out of you!

Round 4: This round was probably one of my best ones, it started out with a graph problem that was solved with BFS. It went very smoothly and I was getting reassurance from the interviewer that I was on the right track all throughout (even though I knew lol). This was then followed with 3 behavioural questions, this interview was with a software engineer.

Round 5: This round was for system design, it wasn't a typical system design question like design Uber, Twitter, etc. but was for desiging an existing system in Amazon. Here is a list of systems in Amazon to get familiarized with: https://mindmajix.com/top-aws-services. The interview was with a hiring manager and another software engineer shadowing him. I was excited to get to do this as I find that these type of interviews allows me to show off my breadth of knowledge and creativity. It is also the most similar thing to a day-to-day task at my job and you don't have the pressure of having someone watch you code every line lol. It was also followed with some behavioural questions and some follow-up questions. I left this interview feeling really great and optimistic.

Result:

I completed the interview on Friday and was in full state of anxiety leading up to the call about my offer. I received an email the following Tuesday night that a decision has been made and a call was scheduled for the next morning. I got on the call and was trying to hold my tears as I was given the verbal offer. I'm extremely happy with the outcome and I can't believe I get to write this post today. I hope that anyone reading this can learn from my earlier mistakes, if you put in the time and effort to work smartly, you will be able to achieve anything you set your mind to! Stay grinding and don't give up. Now, stop reading these LeetCode forums and go back to reading your CTCI book. Best of luck to everyone!

Compensation:
https://leetcode.com/discuss/compensation/552061/Amazon-or-SDE-2-or-Seattle

Comments (22)