Amazon | SDE2 | North America | Reject

amazon logo
amazon
SDE IINorth America3 yearsRejected
February 23, 20212 reads

Summary

I recently interviewed for an SDE2 position at Amazon in North America and ultimately received a rejection. The process included an online assessment, followed by a challenging onsite round with system design, data structures & algorithms, and numerous leadership principle questions.

Full Experience

Background

I have roughly 3 years of experience, holding degrees in math and computer engineering from Canada. I wasn't actively looking for a new job, but Amazon recruiters frequently reached out, so I decided to use the opportunity for interview practice.

Process

After speaking with a recruiter, I scheduled an Online Assessment (OA). The OA felt relatively straightforward, involving problems like "find duplicates in these logs" and "rotting oranges," which I didn't struggle with. Two days later, I heard back from the recruiter to schedule an onsite interview. Since I hadn't been actively studying, I managed to schedule the onsite interview about 30 days out.

Onsite Interviews

My onsite experience consisted of four rounds:

Round 1: Object-Oriented Design
The first question was to Design an Amazon Locker System and implement two methods: getPackage and putPackage. This felt like a pretty standard OOP question. The interviewer was very helpful, guiding me in the right direction, and I generally felt this round went well. The interview ran slightly late, leaving no time for me to ask questions. I was also asked two Leadership Principle (LP) questions.

Round 2: System Design
This round focused on System Design, specifically asking me to design a Recommendation Service for Amazon. The interviewer was pleasant, and I was able to outline a solid, scalable system. We spent the remainder of the time discussing minor improvements. I was asked about 2-3 LPs in this round.

Round 3: Bar Raiser (Data Structures & Algorithms + LPs)
After a lunch break, I proceeded to what I believe was the bar raiser round. Unfortunately, this was a difficult experience. The interviewer had a broken microphone and poor English, making it incredibly hard to understand them. They asked me three LPs, and for one, they dug exceptionally deep, to the point where the questions stopped making sense. It felt like they were trying to find reasons to be cynical. With about 25 minutes left, they presented a coding problem: "Longest Decreasing Path in a Matrix," which was a variation of LeetCode's "Longest Increasing Path in a Matrix." I initially confused myself by attempting a BFS approach before realizing DFS was appropriate. I pivoted halfway through and managed to get a solution down, but it was slightly buggy and not very clean code. This interview also ran over time.

Round 4: Data Structures & Algorithms + LPs
The final interviewer was nice, and they asked me three LPs. However, by this point, my head was physically hurting after five hours, and the previous interviewer had really rattled me. The coding question was from a third-party site: a "Ratio Finder" problem (linked at alexgolec.dev/ratio-finder/). It sounded deceptively easy, but I struggled to produce any good code. In the last three minutes, I wrote some pseudo-code for a DFS approach, but it was awful. At the end, I think the interviewer sensed my struggle and asked if I had any good projects I hadn't mentioned to other interviewers.

Results & Learnings

I received a rejection email two weeks later, apparently due to my recruiter being Out-Of-Office. I wasn't too upset, as I knew I hadn't prepared thoroughly enough to deserve a pass, but I was definitely disappointed with the experience in the third round. I've seen easier questions in other experience posts, so it felt like bad luck on question difficulty. My biggest takeaway is to not let rude or weird interviewers derail you; try to make the best of the situation regardless. I also realized that you probably don't need to do 200-300 LeetCode questions; a solid 80-100 should give you the gist, but don't half-ass it like I did with 60 questions. Luckily, I've lined up four more interviews and plan to continue practicing and will report back on those results. Thanks to the community for this platform and good luck!

Interview Questions (5)

Q1
Rotting Oranges
Data Structures & AlgorithmsMedium

Given a grid where each cell can have one of three values: 0 representing an empty cell, 1 representing a fresh orange, or 2 representing a rotten orange. Every minute, any fresh orange that is 4-directionally adjacent to a rotten orange becomes rotten. Determine the minimum time until no fresh oranges remain. If it is impossible, return -1.

Q2
Design Amazon Locker System
System Design

Design an Amazon Locker System and implement two core methods: getPackage(packageId) and putPackage(packageId, lockerId). This was described as a regular Object-Oriented Programming (OOP) question where the interviewer provided guidance.

Q3
Design Recommendation Service
System DesignHard

Design a recommendation service for Amazon. I focused on architectural components that would ensure a solid and scalable system, discussing various aspects and making minor improvements with the interviewer.

Q4
Longest Decreasing Path in a Matrix
Data Structures & AlgorithmsHard

Find the longest decreasing path in a given matrix. This problem is a variation of the LeetCode problem "Longest Increasing Path in a Matrix", requiring the path elements to strictly decrease. I initially struggled, attempting BFS before realizing DFS was the correct approach, and while I got a solution, it was slightly buggy and not optimized.

Q5
Ratio Finder
Data Structures & Algorithms

Given a target ratio and an array of numbers, determine if any sub-array has the given ratio (e.g., sum of elements in sub-array A / sum of elements in sub-array B = target ratio). The problem sounded deceptively easy, but I struggled to produce good code. I managed to write some pseudo-code for a DFS approach in the last few minutes, but it was quite poor.

Preparation Tips

For roughly three weeks, I committed to doing around 60 LeetCode questions and watched numerous system design videos on YouTube. Luckily, I have friends working at Amazon, so I also participated in about three mock interviews, generally finding myself capable of answering their questions. Honestly, studying for Amazon's Leadership Principles (LPs) was probably the hardest part; I made sure to cover literally every possible behavioral question.

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!