I've interviewed for Amazon NG roles many times; the process is roughly similar each time, but the experience and emphasis keep evolving. This debrief is from a just-finished Amazon SDE NG loop—three rounds total: one pure coding, one pure behavioral, one mixed (coding + behavioral). Overall takeaway: the problems aren't especially hard, but the bar on communication, systematic thinking, and Leadership Principles internalization keeps getting more concrete.
1. Three Rounds at a Glance
| Round | Structure | Lead | Focus |
|---|---|---|---|
| 1 | Pure coding (2 problems, 45 min) | SDE | Valid Palindrome II + Insert Interval |
| 2 | Pure BQ (3 questions, 40 min) | EM | Disagree / Ownership / Failure |
| 3 | 2 BQ + 1 coding mixed | engineer | Earn Trust / Invent & Simplify + bracket expansion |
2. Round 1: Pure Coding (2 problems, 45 min)
Tight pace—straight into livecode, no chit-chat (very Amazon-style efficiency).
Problem 1: Valid Palindrome II (palindrome after deleting one char)
Decide whether a string can become a palindrome by deleting at most one character. Two pointers plus a helper for the skip logic.
def valid_palindrome(s: str) -> bool:
def is_pal(i, j):
while i < j:
if s[i] != s[j]:
return False
i += 1; j -= 1
return True
i, j = 0, len(s) - 1
while i < j:
if s[i] != s[j]:
# first mismatch: delete left or delete right
return is_pal(i + 1, j) or is_pal(i, j - 1)
i += 1; j -= 1
return True
Not hard, but the interviewer pushed two corner cases: empty string and single character. I had test cases ready that covered both.
Problem 2: Insert Interval (insert and merge)
Input is a set of non-overlapping, sorted intervals plus a new interval; insert it and merge into a new interval list. Linear pass: add all intervals before the new one, merge all overlapping ones, then append the rest.
def insert(intervals, new):
res, i, n = [], 0, len(intervals)
# 1) intervals entirely before new
while i < n and intervals[i][1] < new[0]:
res.append(intervals[i]); i += 1
# 2) all overlapping with new, merged into one
while i < n and intervals[i][0] <= new[1]:
new = [min(new[0], intervals[i][0]), max(new[1], intervals[i][1])]
i += 1
res.append(new)
# 3) intervals entirely after new
while i < n:
res.append(intervals[i]); i += 1
return res
No hiccups in coding; the follow-ups centered on time complexity (O(n)) and "why not binary search"—I explained it's usable in theory, but a linear scan is more intuitive and one pass is more robust.
3. Round 2: Behavioral (3 questions, 40 min)
A fully LP-driven BQ round led by an EM who dug deep into project experience and details.
- Disagree: "Tell me about a time you disagreed with a teammate or manager." I told the story of pushing to delay a launch window (delayed launch due to missing dependency), explaining how I backed my recommendation with data and, even after being overridden, how I committed to the decision. The interviewer especially cared whether I truly heard the other side and showed collaborative behavior.
- Ownership: a time I stepped up to solve something outside my scope. I described an incident: a pipeline broke and people were pointing fingers; I dug through logs, fixed the data, and added monitoring. He probed: "Did you ask for permission, or did you just take initiative?" I answered: "I communicated the issue clearly, then proceeded to take ownership once everyone was informed."
- Failure: a system crash from under-estimating load. This one comes up almost every loop, so I'd prepped the retrospective + action items and explained how I prevented recurrence. Never downplay it—Amazon cares how you face the problem, not whether you can dress it up as not-a-failure.
4. Round 3: Mixed (2 BQ + 1 Coding)
BQ first half, coding second. The interviewer was a young engineer—fast talker, crisp logic.
- Earn Trust: a time you had to win over someone who doubted your technical judgment (when your technical plan was challenged). I told the story of introducing a type system; initially dismissed as overengineering, later proven via maintainability and shipping speed. He asked "What would you do if they still disagreed?" I answered "I would ask what success looks like to them and try to align on the outcome instead of implementation."
- Invent and Simplify: a system/process you designed that boosted team efficiency. I described an automation tool linking API docs and code generation. He focused on "How did you measure the effectiveness?" I gave manual-process time vs. tool-saved-time comparison data.
Coding: bracket expansion a2(bc)3(d) → abcbcddd
Stack-based parsing: push context on (, pop and expand on ), watch for multi-digit numbers (e.g. 10(ab)) and empty-string edge cases.
def expand(s: str) -> str:
seg_stack, mul_stack = [], [] # segment stack + multiplier stack
cur, num = "", 0
for ch in s:
if ch.isdigit():
num = num * 10 + int(ch) # handle multi-digit
elif ch == '(':
seg_stack.append(cur); mul_stack.append(num)
cur, num = "", 0
elif ch == ')':
cur = seg_stack.pop() + cur * mul_stack.pop()
else:
cur += ch * num if num else ch # a2 means a repeated twice
num = 0
return cur
The interviewer liked that I proactively wrote test cases, and finished by asking about the time/space complexity trade-off.
5. Lessons Learned
Across many Amazon NG loops, the problem types change little, but the bar on detail-digging, completeness of reasoning, and LP internalization keeps rising. Many candidates think BQ is just storytelling; what Amazon really wants is whether you can use structured thinking (STAR + metric support) to explain your choices, behavior, and judgment—that matters more than how impressive the project is. Coding is fairly standardized, mostly from a high-frequency LeetCode list, but always walk through logic, improvements, complexity, and test cases after you finish—covering edge cases upfront is a plus.
FAQ
Q1: How many rounds is Amazon SDE NG?
This loop was three: pure coding (2 problems), pure BQ (3 questions), coding + BQ mixed. Combinations vary slightly, but the coding + BQ structure is very stable.
Q2: Is Amazon coding hard?
Not especially—mostly from high-frequency LeetCode (Valid Palindrome II, Insert Interval, bracket expansion, etc.). The difficulty isn't writing it but explaining complexity, edge cases, test cases, and improvements afterward.
Q3: How do I prep Amazon BQ?
Build structured stories around the 16 LPs using STAR + quantified metrics. Disagree / Ownership / Failure / Earn Trust / Invent and Simplify are frequent. Never downplay the Failure question—focus on the retrospective and action items.
Q4: How do I prep Amazon NG efficiently?
Practice high-frequency coding until you can narrate complexity while writing, and prepare 8-10 reusable LP stories. If you want timed practice on these exact problems, LP-story polishing, or live VO support / VO proxy coordination, send the JD so we can run question-type prediction first and build a plan.
Preparing for Amazon?
Amazon NG tests completeness of communication on high-frequency coding + structured LP internalization. oavoservice offers full-loop Amazon practice: timed mocks on Valid Palindrome II / Insert Interval / bracket expansion, 16-LP story polishing, and mixed-round pacing drills, with live VO support / VO proxy coordination too. Coaches include former Amazon senior engineers familiar with the "follow-up after coding + deep BQ probing" scoring style.
Add WeChat Coding0201 now to get Amazon questions and practice.
Contact
- WeChat: Coding0201
- Email: [email protected]
- Telegram: @OAVOProxy