Amazon | SDE2 | Seattle [Reject]

amazon logo
amazon
SDE IIseattleRejected
September 30, 202013 reads

Summary

I interviewed for an SDE2 position at Amazon in Seattle in August 2020. The process involved four intense rounds focusing on coding, system design, and Leadership Principles, ultimately resulting in a rejection.

Full Experience

My Amazon SDE2 interview process in August 2020 consisted of four 55-minute sessions. Each round was quite demanding, with a strong emphasis on Leadership Principles (LPs) alongside technical challenges.

First Session: Coding and LPs

This session started with a couple of LP questions. Following that, I was presented with a coding challenge:

Assume we have a dictionary of the user and a list of his friends. There is another dictionary present which has a mapping of a user and a list of movies he has watched sorted by timestamp with the most recent on the top of the list.

Given a user, make a recommendation of top K movies based on a list of movies his friends have watched or friend of a friend has watched. Assume the data needs to be collected only for up to the Nth degree of a friend.

Example:

Given user_follows = {'A': ['B', Z'], 'B': ['C'], 'C': ['D']},

movies = {'B': [mvi1, mvi2], 'C': [mvi3, mvi1, mvi2], 'D': ['mvi3']}, If k =2 and N=2, then the k recommended movies to user A are result = ['mvi1', 'mvi2']. Explanation: N =2 implies that the result is only interested in getting recommendations based on immediate friends and immediate friends of the user's immediate friends.

I managed to solve this problem and even provided an optimized solution. The interviewer seemed convinced and confirmed it was exactly what they were looking for.

Second Session: Background, LPs, and Coding

This round kicked off with discussions about my background and current projects, followed by the classic "Why Amazon?" question and two more LP questions. The coding challenge was:

Assumre you have a Telivision screen. This screen is grid of cells. There are few objects on the screen. When you click on the obejct, change the color of onyl that object. If user clicks outside the object, then only color outside should change keeping color inside all objects boundaries unchanged.

The requirements for this question were not initially clear, so I spent a good amount of time asking clarifying questions. Essentially, there were multiple objects on the screen, and the goal was to change the color of only the clicked object, or the background if outside any object boundaries. It was quite similar to a Flood Fill problem. I was able to solve this one too.

Third Session: LPs and System Design

This session was heavily weighted towards LPs, where we spent about 35 minutes on them. The interviewer was extremely detailed in their questioning, probing every statement I made. The main technical part was a system design question:

Design Music streaming system.

Due to the extensive LP discussion and detailed questioning, I felt like I messed up this round. I only managed to provide a high-level diagram in the last two minutes of the interview.

Fourth Session: LPs and Vague Coding

The final round also involved a lot of LP questions. The coding question was incredibly brief:

Implement Package Installer.

With only three words, I immediately started asking for examples and clarifications, but the interviewer insisted on me coming up with classes and interfaces without providing much context. I struggled to get clarity on what exactly was expected. This was another frustrating experience, as I felt the interviewer was looking for something very specific that wasn't clearly articulated.

Outcome

I didn't hear back from the recruiter for two days after the interviews. I followed up via email and received a rejection. I was quite disappointed, as I had expected at least a phone call, given the effort put in. Overall, I acknowledge that I might have messed up some parts of the interview, but I also wasn't entirely happy with the communication from the recruiter or the clarity provided by some of my interviewers.

Interview Questions (3)

Q1
Movie Recommendation System (Nth Degree Friends)
Data Structures & Algorithms

Assume we have a dictionary of the user and a list of his friends. There is another dictionary present which has a mapping of a user and a list of movies he has watched sorted by timestamp with the most recent on the top of the list.

Given a user, make a recommendation of top K movies based on a list of movies his friends have watched or friend of a friend has watched. Assume the data needs to be collected only for up to the Nth degree of a friend.

Example:

Given user_follows = {'A': ['B', Z'], 'B': ['C'], 'C': ['D']},

movies = {'B': [mvi1, mvi2], 'C': [mvi3, mvi1, mvi2], 'D': ['mvi3']}, If k =2 and N=2, then the k recommended movies to user A are result = ['mvi1', 'mvi2']. Explanation: N =2 implies that the result is only interested in getting recommendations based on immediate friends and immediate friends of the user's immediate friends.

Q2
Click-to-Color Object on Grid
Data Structures & Algorithms

Assumre you have a Telivision screen. This screen is grid of cells. There are few objects on the screen. When you click on the obejct, change the color of onyl that object. If user clicks outside the object, then only color outside should change keeping color inside all objects boundaries unchanged.

This problem is similar to a Flood Fill question.

Q3
Design Music Streaming System
System Design

Design a music streaming system. The interviewer was asking too many questions on every word I said, making the discussion very detailed and challenging. We spent almost 35 minutes on Leadership Principles before getting into the system design itself. I felt I struggled with this round.

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!