[USA] | Amazon SDE II Process | Rejected
Summary
I recently went through a rigorous SDE II interview process for Amazon's Special Projects organization in NYC, which involved several technical and behavioral rounds, ultimately resulting in a rejection.
Full Experience
I completed a process for an Amazon SDE II role in NYC within the Special Projects organization, which operates like an internal startup incubator for potential new Amazon products. Since I didn't know the exact project I was being recruited for, I focused on general questions during the interviews.
The Process
- No OA: I was happy to skip the Online Assessment, as a recruiter directly reached out to initiate human-facing interviews.
- Recruiter Phone Screen: This was primarily a 'vibe check'. It's crucial to study Amazon's Leadership Principles (LPs) thoroughly and prepare strong stories about projects I'm most proud of, focusing on 'I' statements rather than 'we' to highlight my individual contributions.
- Technical Phone Screen: This was a 60-minute coding problem (DSA) followed by 15 minutes of LP questions.
- Onsite: All interviewers were from the Special Projects org and consisted of:
- Two coding rounds.
- One problem-solving round.
- One system design round.
- One behavioral round with a Hiring Manager (not my direct potential manager, but within the same org).
Technical Phone Screen
I was asked a coding problem related to pathfinding with resources, followed by an LP question.
Reflection: The interviewer was fantastic, and we quickly built rapport over a shared interest. We collaboratively discussed the approach. I managed to get a working solution but struggled with a follow-up question about optimizing with binary search.
LPs: I was asked to describe a time I faced an unanticipated blocker in a project, how I handled it, and what I learned.
Breakdown of Onsite
Each coding round lasted 45 minutes for coding and 15 minutes for LPs. Preparing extensively on LPs is key.
Coding 1
This involved a graph problem related to maximum permissible truck weight. I was able to implement the BFS part, but I missed a detail about Dijkstra's algorithm regarding mapping locations to maximum weights, as it had been a while since I last reviewed it.
LPs: I was asked to discuss a technically complex project I worked on and what I learned from it.
Coding 2
This was a word decomposition problem, similar to Word Break II, requiring identification of all valid sub-part decompositions from a given word list. I struggled with the recursion part even after receiving a hint from the interviewer.
LPs: I had to describe a situation where I needed to deep dive to find the root cause of a problem.
Problem Solving
This round focused on designing a data structure or system to handle nested containers and items with specific filtering requirements (weight, category). The question itself wasn't too difficult, but it heavily relied on asking clarifying questions to understand all parameters.
LPs: I was asked about a time I had to unblock myself on a difficult problem, and another time I stepped out of my comfort zone.
System Design
I had about 20 minutes to describe a design for an inventory tracking system. I scribbled some messy diagrams and discussed my approach to handle real-time updates, accurate data for customer apps, 1M SKUs, and 100K updates/minute.
Hiring Manager Round
This round was almost entirely dedicated to grilling me on Leadership Principles. I was asked several predictable questions, along with one about a time I took on tasks outside my area of responsibility.
Overall Reflection
It was a grueling process with many rounds. I realized the importance of knowing LPs incredibly well and having compelling stories that can withstand follow-up questions. The coding questions were a mix of OOD-style problems and standard LeetCode challenges. While the team seemed cool, I mostly did the interview for fun to keep my skills sharp. I believe the best time to interview is when you're not actively looking for a job, as it reduces pressure.
Interview Questions (11)
You are given an integer array of heights representing the heights of buildings. You start your journey from index 0 and try to progress to the end of the array. You move from index i to index i + 1.
Here are the rules:
- If the current building's height >= next building's height, no ladders or bricks needed. You can "parkour" or "spiderman" your way across.
- If the current building's height < next building's height, you can use one ladder or
h[i+1] - h[i]bricks.
Find the furthest index you can get to if you use your bricks and ladders optimally.
Tell me about a time where you faced an unanticipated blocker in a project? How did you handle it? What did you learn from this experience?
Amazon delivers packages across the country. You have a road network data represented as [start, end, weight limit]. Roads go in both directions, so for example if you had [Seattle, Spokane, 50], you can freely travel between Seattle and Spokane. To traverse a road, the truck must be <= weight limit.
Given a list of roads, a start destination, and an end destination, identify the maximum permissible truck weight that would allow you to go from the start destination to the end destination.
Tell me about a technically complex project you worked on? What did you learn from the experience?
You are given a large list of words (10k+ words) in the language. Identify all the possible valid decompositions for each word in the list. By "all possible decompositions", you only care about words in the list where you can decompose the word into sub-parts where each sub-part is a valid word in the list. This is pretty much like all possible word breaks.
Situation that requires me to dig deep into the situation to find out the root cause of problem/ticket/bug
Amazon ships a lot of packages:
- A container can contain another container or item but not both.
- Items have category, weight, color.
You need to support these two requirements:
- Identify all items in a container that have weight > 50 kg.
- Identify all items in a container where item = category AND/OR weight > 50 kg.
Tell me about a time you had to unblock yourself on a difficult problem?
Tell me about a time you stepped out of your comfort zone
Design a system that tracks inventory levels across warehouses.
Requirements:
- Handle real-time updates
- Provide accurate inventory data for customer-facing app
- Support 1M SKUs
- Process 100K inventory updates/minute
Tell me about a time where I took up something that was out of my area of responsibility
Preparation Tips
My preparation involved studying Amazon's Leadership Principles very thoroughly and preparing specific stories that demonstrated these principles. I also specifically brushed up on Dijkstra's algorithm, although I missed a detail during the interview. Reviewing this article was also recommended for LPs.