Amazon's interview loop is the most operationalized in tech. Five rounds, a fixed format, Leadership Principles integrated everywhere, and a Bar Raiser with veto power. The coding problems themselves are usually approachable - the friction comes from the fact that every coding round also costs you 15 minutes on behavioral questions, and the Bar Raiser is scoring your stories as carefully as your code.
This guide covers the six problem types Amazon asks most often (across SDE-I, II, and III loops since 2024), the object-oriented design round that catches candidates off guard, and the small judgment calls that separate a hire-strong from a no-hire when the algorithm itself is correct.
How Amazon's coding rounds differ from other FAANG
Three structural differences worth knowing before you sit down:
1. The 50/50 split. Every coding round at Amazon is half technical and half behavioral. The interviewer opens with one or two Leadership Principle questions, then transitions to the coding problem. The split is rarely formalized as "fifteen minutes of LP then forty-five of code" - it's interleaved. If you blow through the LP segment in two minutes with weak stories, you've already lost score in that round even if your code is perfect.
2. The Bar Raiser is a real veto. Other FAANGs have hiring committees that weigh interviewer feedback. Amazon's Bar Raiser is one specific senior engineer from a different organization who has trained 50+ candidates and has the authority to overrule the team. Their job is to ensure you would raise the bar - meaning be better than the average current SDE on the target team, not just meet the bar. A "lean hire" without Bar Raiser endorsement becomes a no-hire.
3. The OOD round is its own thing. Distinct from the system design round that L5+ candidates get. The OOD round asks you to design class structures and method signatures for a concrete real-world object (parking lot, elevator, deck of cards, vending machine). Algorithm complexity matters less; SOLID principles and clean interfaces matter more.
The full interview process by level
| Level | Loop format | Rounds |
|---|---|---|
| SDE-I (L4 / new grad) | Online assessment + 1-2 phone screens + 4-round onsite | 2 coding + 1 OOD + 1 hiring manager (LP-heavy) |
| SDE-II (L5) | 1-2 phone screens + 5-round onsite | 2 coding + 1 OOD + 1 system design + 1 Bar Raiser |
| SDE-III (L6) | 2 phone screens + 5-6 round onsite | 1 coding + 2 system design + 1 OOD + 1 Bar Raiser + 1 hiring manager |
| Principal SDE (L7) | Full onsite | 1 coding + 2 system design + 1 deep-dive on prior project + Bar Raiser + hiring manager |
The phone screen is conducted on Amazon Chime, not Zoom. The onsite is conducted on Chime as well (Amazon stopped flying candidates onsite during 2022 and never restored in-person at scale).
Problem 1: Number of islands
Question: Given an m x n 2D grid of '1' (land) and '0' (water), count the number of islands. An island is surrounded by water and formed by connecting adjacent lands horizontally or vertically.
This is the most-reported single question across Amazon SDE-I and SDE-II loops since 2023.
def numIslands(grid):
if not grid or not grid[0]:
return 0
rows, cols = len(grid), len(grid[0])
count = 0
def dfs(r, c):
if r < 0 or r >= rows or c < 0 or c >= cols or grid[r][c] != '1':
return
grid[r][c] = '0' # mark visited
dfs(r + 1, c); dfs(r - 1, c); dfs(r, c + 1); dfs(r, c - 1)
for r in range(rows):
for c in range(cols):
if grid[r][c] == '1':
count += 1
dfs(r, c)
return count
The follow-up that filters strong from average: "What if the grid is too large to fit in memory?" The expected pivot is to union-find with disk-backed storage, or to process the grid in row-strips with a boundary-merge step. You don't have to implement it - but if you can't name the approach, the Bar Raiser flags it.
Problem 2: LRU cache
Almost as common as number of islands. Same problem as in our Netflix coding interview guide; same hash-map-plus-doubly-linked-list solution. What Amazon does differently is the framing: they describe a concrete use case (product page cache, session cache, configuration cache) and ask you to design the API first, then implement.
Spend the first three minutes on API design before writing implementation. The interviewer is watching for "Customer Obsession" - did you ask who uses this and what they need? An LRU cache for read-heavy traffic looks different from one for write-heavy.
Problem 3: Merge intervals
Question: Given an array of intervals where each interval is [start, end], merge all overlapping intervals and return an array of non-overlapping intervals that cover all the input intervals.
def merge(intervals):
if not intervals:
return []
intervals.sort(key=lambda x: x[0])
result = [intervals[0]]
for start, end in intervals[1:]:
if start <= result[-1][1]:
result[-1][1] = max(result[-1][1], end)
else:
result.append([start, end])
return result
The edge cases Amazon will probe:
- Intervals that touch but don't overlap: is
[1,3]and[3,5]merged? Confirm with the interviewer; the answer varies by problem. - Negative numbers in intervals. The sort still works; some candidates assume otherwise.
- Empty input or single interval. Handle explicitly.
- What if intervals arrive as a stream rather than a fixed array? Now you need an interval tree (O(log n) insert with rebalance) rather than sort-then-merge.
Problem 4: Trapping rain water
Question: Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it can trap after raining.
The naive O(n) space solution uses two arrays for max-left and max-right. The optimal O(1) space solution uses two pointers walking inward.
def trap(height):
if not height:
return 0
left, right = 0, len(height) - 1
left_max = right_max = water = 0
while left < right:
if height[left] < height[right]:
if height[left] >= left_max:
left_max = height[left]
else:
water += left_max - height[left]
left += 1
else:
if height[right] >= right_max:
right_max = height[right]
else:
water += right_max - height[right]
right -= 1
return water
What Amazon grades: can you reason about why the two-pointer approach is correct? The invariant is "the side with the smaller height is bounded by the max we've seen on that side." Many candidates write the code from memory without being able to explain why it works. The Bar Raiser will ask.
Problem 5: Word ladder
Question: Given two words beginWord and endWord, and a dictionary, return the length of shortest transformation sequence from begin to end, changing one letter at a time. Each intermediate word must be in the dictionary.
This is a BFS problem. The trick is recognizing the graph: nodes are words, edges connect words that differ by exactly one letter. Building this graph naively is O(n^2 * w) where n is word count and w is word length. The Amazon-level optimization is to use a pattern-based adjacency: for each word, generate patterns like "h*t", "*ot", "ho*" and group words by pattern.
from collections import defaultdict, deque
def ladderLength(beginWord, endWord, wordList):
if endWord not in wordList:
return 0
word_set = set(wordList)
patterns = defaultdict(list)
L = len(beginWord)
for word in word_set:
for i in range(L):
patterns[word[:i] + '*' + word[i+1:]].append(word)
queue = deque([(beginWord, 1)])
visited = {beginWord}
while queue:
word, depth = queue.popleft()
for i in range(L):
pattern = word[:i] + '*' + word[i+1:]
for neighbor in patterns[pattern]:
if neighbor == endWord:
return depth + 1
if neighbor not in visited:
visited.add(neighbor)
queue.append((neighbor, depth + 1))
return 0
If you can implement the pattern-based optimization without prompting, you're signaling SDE-II readiness. If you start with the naive O(n^2) and the interviewer has to guide you, that's SDE-I.
Problem 6: OOD round - design a parking lot
Question: Design the classes for a parking lot. Multiple levels, multiple spot sizes (compact, regular, large, motorcycle), entry/exit gates, payment.
This is not a coding-from-scratch round. You're sketching classes on a virtual whiteboard. The interviewer wants to see:
- Identifying entities: ParkingLot, Level, ParkingSpot (with subtypes), Vehicle (with subtypes), Ticket, Payment, EntryGate, ExitGate.
- Class hierarchy: ParkingSpot as abstract base; CompactSpot, RegularSpot, LargeSpot as subclasses (or one class with size enum - discuss the trade-off).
- Composition over inheritance where appropriate: a ParkingLot HAS levels, not IS-A level.
- Interfaces / abstract methods:
canFit(Vehicle)on ParkingSpot,calculatePrice(Ticket)on a PricingStrategy. - Concurrency awareness: mention "this would need locking on assignSpot() if multiple cars enter simultaneously." Don't necessarily code it; just acknowledge.
Common OOD prompts beyond parking lot: design an elevator system, design a deck of cards plus a Blackjack game, design an in-memory file system, design Twitter, design a vending machine, design a chess board.
How Leadership Principles weave into every round
You will hear at least one Leadership Principle question in every technical round. The most-asked LPs in coding rounds are:
- Customer Obsession - "Tell me about a time you went above and beyond for a customer." Have one specific story.
- Ownership - "Tell me about something you owned end to end that wasn't your job description."
- Dive Deep - "Tell me about a problem where you went deeper than your peers." The Bar Raiser loves this one.
- Bias for Action - "Tell me about a time you made a decision with incomplete information."
- Are Right, A Lot - "Tell me about a decision you got wrong. What did you learn?"
The remaining LPs (Invent and Simplify, Frugality, Earn Trust, Insist on the Highest Standards, Think Big, Have Backbone, Hire and Develop the Best, Deliver Results, Learn and Be Curious, Strive to be Earth's Best Employer, Success and Scale Bring Broad Responsibility) appear in the dedicated behavioral round and the hiring manager round. Have one story for each. We cover the full prep in our Amazon behavioral interview guide.
Common pitfalls that get the no-hire
- Skipping clarifying questions. Amazon writes this into the rubric. Spending 2-3 minutes clarifying input format, edge cases, and constraints is expected, not optional.
- One-word answers on Leadership Principles. The STAR format is the minimum. Situation, Task, Action, Result, and crucially the Reflection / what you'd do differently. Bar Raisers ask "what would you change?" on every story.
- Solving aggressively when an O(n) brute force works. If the problem is small or the constraints allow, sometimes the right move is the simple solution. Optimization without invitation reads as showing off.
- Forgetting the OOD round. Candidates over-prep algorithms and arrive cold to OOD. Spend at least 2-3 hours on classic OOD problems before your loop.
- Not knowing Amazon. If you can't articulate why you want to work at Amazon specifically (not "FAANG comp"), the hiring manager round will sink you.
The bar by level
| Level | Coding bar | LP bar | System design |
|---|---|---|---|
| SDE-I (L4) | Solve LeetCode medium with light guidance | 2-3 strong STAR stories | Not assessed |
| SDE-II (L5) | Solve medium independently; handle one hard follow-up | One story per critical LP | Design something at the scale of a single service |
| SDE-III (L6) | Solve medium-hard; reason about distributed/scaled variants | Multiple stories per LP; show maturity in reflection | Design a multi-service system; discuss trade-offs |
| Principal (L7) | One coding round only; emphasis on architecture | Cross-organizational influence stories | Design at the scale of AWS / Prime Video |
30-day prep plan if you have an Amazon onsite scheduled
- Week 1: Drill all 15 patterns from our LeetCode patterns post. Solve 3 medium problems per pattern. That's 45 problems.
- Week 2: Pick the 8 problems Amazon asks most (number of islands, LRU cache, merge intervals, trapping rain water, word ladder, two sum, course schedule, reorder logs). Solve each three times, three days apart.
- Week 3: OOD warmup. Solve parking lot, elevator, deck of cards, in-memory file system, vending machine. Time yourself: 40 minutes each.
- Week 4: Write one STAR story per Leadership Principle. Memorize the 6-7 you'll lean on most. Run a solo mock interview with the timer.
Get structured coding answers and LP framing in your live Amazon loop
CoPilot Interview surfaces solutions and STAR-framed talking points during real Amazon Chime interviews. Free for Windows and macOS.
Download freeFAQ
What level of LeetCode questions does Amazon ask?
Roughly 70% medium, 20% easy with hard follow-ups, and 10% hard. For SDE-I (new grad / L4), expect more medium-easy and stronger weight on Leadership Principles. For SDE-II (L5), the median problem moves up the difficulty curve and a system design round is added. SDE-III adds a second design round.
What is the Amazon Bar Raiser and how does it work?
The Bar Raiser is a senior engineer from a different team trained to evaluate Leadership Principles and long-term hire signal. They sit in on at least one round and have veto power over hire decisions. Their goal is to ensure the candidate raises the bar of the team they join. In practice they ask deeper behavioral follow-ups and look for evidence that you would be a better-than-median engineer on the target team.
Does Amazon ask object-oriented design (OOD) questions?
Yes - this is the round many candidates forget about. Expect one round (sometimes labeled "design" but distinct from system design) where you design classes and interfaces for something like a parking lot, an elevator, a deck of cards, or an in-memory file system. The focus is class boundaries, inheritance vs composition, and SOLID principles, not algorithms.
How much do Leadership Principles matter in the coding rounds?
More than at any other FAANG. Every round at Amazon includes at least 10-15 minutes of Leadership Principle questions before or after the coding problem. The most-asked LPs in technical rounds are Customer Obsession, Ownership, Dive Deep, and Bias for Action. Have one specific story prepared for each of the 16 LPs - see our detailed Amazon behavioral guide.
What programming languages does Amazon allow?
Any major language: Java, Python, C++, JavaScript/TypeScript, Go, Rust, C#, Kotlin, Scala. The internal codebase is heavy Java, so picking Java signals familiarity, but interviewers explicitly do not penalize language choice. Use what you know best.