Amazon | SDE1 | Seattle | Jan 2020 [Offer]
Anonymous User
2521

Status: BS Computer Science, 2 YOE
Position: SDE1 at Amazon
Location: Seattle, WA
Date: Mid January, 2020

What's up, folks. This was my first time at an onsite FAANG interview and after a ton of work leading up to it, I was able to get an offer.

Contacted a recruiter in mid-December that I had worked with previously. She sent me the OA which I completed a couple days after Christmas. The questions were:

I cleared all the test cases on one problem and only the given test cases on another. I didn't study very hard for this assessment.

My recruiter emailed me back about 30 minutes after I finished my assessment and invited me to the onsite. This is where I really kicked up practicing. I can't remember all the behavioural questions (the whole day is a blur tbh), but I will mention the ones I can. My onsite consisted of the four rounds below:

  • Round 1 (pretty sure this was the Bar Raiser)

    • Behavioral: Tell me about a long term project that you have maintained, another question relating to customer obsession
    • Coding: This question was straight out of CTCI. Luckily, I did this one in the airport the day prior. It goes something like this - Design a data structure for a high score tracker. Design and implement a method to store a score and a method to retrieve the rank of that score. The idea is to use a BST for O(log(n)) insertions and lookups. You have to also keep a variable attached to each node to keep track of how many nodes to the left of the current node there are and update that value as you insert new nodes. I got about 90% through the code before the interviewer stopped me and said it was good.
  • Round 2 (Hiring manager)

    • Object Oriented Design: Design a parking lot reservation system. I almost laughed when I got asked this question because I had watched this video a few days prior: Design a Parking Lot. I designed some class hierarchies, then talked about tradeoffs between SQL and NoSQL. We got into some more system level components for a few minutes near the end.
    • Behavioral: I can't remember any of these
  • Round 3 (Two people, one was observing)

    • Behavioral: Tell me about a weakness you have. Hardest bug you have encountered. One more question.
    • Coding: https://leetcode.com/problems/course-schedule-ii/ - Also had already seen this one. I knew the answer was to use topological sort and I discussed how to implement the visiting and visited concepts, but I really struggled here. I ended up solving the question given a valid input, but my algorithm would have failed on some edge cases.
  • Round 4

    • Behavioral: Tell me about a conflict with a teammate. Tell me about a time where you had to convince someone of something. One more question.
    • Coding: You are given a text file which represents a log. The lines start with a date then a space, then the log message. Design and implement a method where given a word, you return all line numbers which contain that word and a method where given a string, you return all lines which contain that word in chronological order. Yeahhhhhhh, I was braindead here. I wrote up a quick solution which mapped the whole log to memory, but the interviewer kept pushing me to reduce space complexity. We spent the rest of the interview discussing an implementation which did not use as much memory, I did not have to code it up though.

I definitely wasn't prepared for how ambiguous the coding questions were going to be. I asked about how the input was formed and what we should do on specific edge cases in several instances and got told to put what I thought was best. The interviewers also offered me a few minutes for a break between each session, I did not take them. I HIGHLY recommend you do. I was so worn out on the last interview, I have no idea how I got past that guy.

What I did to prepare:

  • Most Asked Amazon Questions in LeetCode Explore tab
  • Dan Croitor for Behavioral Questions
  • CTCI

I really started putting in the hours when I got invited to the onsite. I would say that I spent ~60 hours over 3 weeks preparing. I went from around 40 problems solved to my current 100. The best tip I found in this whole process was from Dan Croitor, "Practice what you suck at". For me, that was the technical portion. I have generally been pretty good at behavioral interviews, so I spent most of my time on LeetCode and ended up getting asked 3 questions I had seen in the past.

Cheers~

Comments (4)