Amazon | SDE1 | Vancouver | July 2020 [Offer]

YOE: 1 year research experience in machine learning and 4 month internship as a full stack developer at medical research facility.
Status: I'm a new grad from one of the top 3 Canadian universities.
Position: SDE1 in AWS

I signed the NDA form so I'm not allowed to share any coding question, but I can share my experience about how I went through the interview.

1. Online Test Assessment (June 15th, 2020)
I had an hour and half to finish two coding questions. They were both easy to medium level LC questions about array and graph traversal. I was able to give optimal solutions, and I was given 15 minutes to justify my solutions. I got an email from the recruiter that I passed the online assessment, and that I'm invited to virtual onsite interview. I was surprised because I was expecting to have technical phone interviews.

2. Virtual Onsite Interview (July 9th, 2020)
a) First round: Behavioral Questions + LP with senior software engineer and manager. I was asked a lot of LP questions and a lot of follow-up questions. This was one of my favorite rounds throughout the interview because the interviewer was very engaged and was interested in my previous experience.
b) Second round: 30 minute LPs + system design with a bar raiser. This was fairly difficult round, and I was stuck on the question for first 5 to 10 minutes because I didn't understand the requirements of the system. But I managed to pull through by asking a lot of clarifications and doing some examples, and the interviewer actually gave some hints along the way, so I was able to come up with a solution. The interviewer was pleased with the solution.
c) Third round: 30 minute LPs + 2 coding questions related to array with software engineer. It was probably the least engaging interview I have ever had. She didn't seem to care about what I said. I wasn't able to come up with optimal solution - somewhat close to optimal; only different by logarithmic factor.
d) Final Round: 30 minute LPs + 2 coding questions with a hiring manager. It was some optimization problem with an array given as an input. This was an interesting round because I first thought of coming up with dynamic programming solution, but I ended up using graph traversal algorithm, which turned out to be an optimal solution.

Result: I got an offer on July 14th, 2020.

How I prepared for interview:
a) Solved Easy 77, Medium 188, Hard 21 LC questions. Solved 3~5 questions a day
b) I went through MIT online lectures 6.006 Introduction to Algorithm and COS 423 Theory of Algorithms from Princeton University to brush up on foundations of
algorithms and data structures. Especially the MIT online lectures were really good.
-https://www.youtube.com/playlist?list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb
-https://www.cs.princeton.edu/courses/archive/spring13/cos423/lectures.php
c) Cracking the Coding Interview. I only used this for practicing problems. They have a fair amount of good questions related to data structures and dynamic programming.
d) Leadership Principles: 2 weeks before the onsite virtual interview, I created a bunch of stories and mapped each one to LPs. Interviewgenie has some really good examples on how to answer behavioral questions: https://interviewgenie.com/blog-1/2019/4/9/how-to-answer-amazon-frugality-interview-questions

Comments (3)