Status: 2.5 YOE, MS CS
Position: SDE2 at Amazon
Location: Bay Area, CA
Date: 27th March 2020
Recruiter reached out to me on LinkedIn around mid-Feb. I had completed mostly 90-100 LC easy/medium problems before this. I wasn't 100% confident that I could crush the onsite but I decided to give it a shot anyway. He sent me an OA link that needed to be completed within a week. During this week I completed most of the questions mentioned in the Amazon Online Assessment post before giving the OA. Questions asked in OA were as follows:
A day after submitting the OA, I got an email from the recruiter for an onsite interview scheduled at around the last week of March (This was later converted to virtual interview). With around a month of preparation time, I planned on completing all Amazon Top 50 Questions. Two weeks before the interview I also started going through Grooking the System design & coming up with at least 2 stories for each of the 14 Leadership Principles. Before the final interview, I had completed 145 LC problems( 93 easy | 40 medium | 15 hard) but still felt a bit underprepared & nervous since it was my first onsite at FAANG.
Onsite: 4 rounds of 45 mins each
Round 1 - This round was with a Manager & Experienced Senior/Staff SDE. Started with initial introduction & then 2-3 LP questions around challenges/ technical difficulties faced in the work environment. With follow up questions like what did you learn from it? what was the outcome etc?
Multiple LP questions asked in this round sounded similar & even though I had stories prepared & practiced, I couldn't think of a correct story at that moment & ended up blabbering a different story probably due to nervousness. Since my stories did not fit the question asked, this lead to further follow up questions that I hesitantly managed to answer. Next, the technical question as below, I wasn't able to solve it in the interview using BFS but now I think it can be solved using greedy approach.
Technical Question: Given an Input with a unique number & list of elements corresponding to each number. Find & output groups of numbers such that each number in a given group has one element in common. - (Still haven't found this on LC)
Input: [ {n: 8, e:['z, 'x', 'y']}, {n: 5, e:['y', 'u']}, {n: 3, e:['m']}, {n: 6, e:['u', 'd']}, {n: 9, e:['m', 'n']}, {n: 7, e:['a']} ]
Output: [ [8, 5, 6], [3, 9], [7] ]
Round 2 - Started with initial introduction & then 15 mins of LP questions on work experience. Followed by System design question to create a music service, particularly focusing on a service that stores recently played songs. I started with requirements gathering, storage, system APIs, etc. I still did not have a clear picture of the service & ended up focusing on the wrong components of the system. Mid-way through the system design process the interviewer tried to give me hints & point in the right direction. It did not become clear to me until the last 5-10 mins of the interview. I tried to come up with a solution as the interviewer had expected, however, due to lack of time we weren't able to discuss it entirely.
Round 3 - Started with two interviewers, one of them was shadowing. Initial 15 mins of LPs on failures, ownership, learnings from failures, etc. The question was an easier variation of merge k sorted lists. I was much relaxed through this round (Probably because I knew it couldn't go any worse) & the interviewer was also providing good feedback to let me know I was on the right track. The interviewer was satisfied with the solution, I discussed the space/time complexity & had enough time remaining to ask questions to the interviewers.
Round 4 - Started with initial introduction & 20 mins LPs about conflicts, previous achievements, etc. Discussion around LPs was pretty fun/interesting & the interviewer also ended up sharing some of his experience. With almost the 25 mins left, the next technical question he asked me was Word Search II. I explained the solution first, & then started implementing it. I couldn't complete this in 25 mins.
Few key takeaways: