Amazon NG OA 是出名的「寬鬆」——通過率 25-35%,一畝三分地的回饋普遍是「兩道 Coding 全 AC + Work Style Survey 不踩雷」就能進。但 OA 通過後的 VO Loop 才是真正的淘汰主力:4 輪面試,Bar Raiser 一票否決,2026 cycle 整體錄取率約 20%。
本文聚焦 OA 通過後的 Onsite Loop,不再重複 OA 內容(OA 詳見我們的Amazon NG OA 2026 攻略),重點拆 Coding 1+2 + System/LLD + Bar Raiser BQ 四輪的真題、評分、與 16 LP 的對應。
Amazon NG VO Loop 總覽
| 輪次 | 時長 | 內容 | 評分官 |
|---|---|---|---|
| 1. Coding Round 1 | 60 min | 1 道 LC Medium + 2-3 個 LP 問題 | Senior SDE I |
| 2. Coding Round 2 | 60 min | 1 道 LC Medium-Hard + 2-3 個 LP | Senior SDE II |
| 3. System / LLD Round | 60 min | OOD 設計題(NG 多為 LLD)+ 2 個 LP | Tech Lead / Senior |
| 4. Bar Raiser | 60 min | 0-1 道輕 coding + 5-6 個深度 LP | Bar Raiser(不與 hiring team 利益相關) |
關鍵變化(2026 cycle):
- Bar Raiser 從原來的「40 min 行為 + 20 min coding」→ 2026 起改為 50 min 行為 + 10 min 輕 coding——更看 LP fit
- System Design 對 NG 轉為 LLD(low-level design)——OOD 類似 Parking Lot / Library System,不是分散式系統
- 每輪獨立打分,但 Bar Raiser 擁有「事實否決權」——hiring team 即使 4 個 strong hire,Bar Raiser no hire 通常不發 offer
Coding Round 1 + 2:典型真題
真題 1:Server Cluster Health Monitor(Coding 1,2026 春最高頻)
題面:給 n 台 server 的 heartbeat 時間序列,每 server 每秒發一次心跳。要求:
register(server_id, ts):記錄 server 在 ts 發了心跳failed_servers(now, k_seconds):回傳 [now - k_seconds, now] 內沒有任何心跳的 server 列表(按 server_id 升序)
坑:n 可能 1e6,naive 掃描會 TLE。
from collections import defaultdict
from sortedcontainers import SortedList
class HealthMonitor:
def __init__(self):
self.last_seen = {} # server_id -> latest ts
self.by_ts = SortedList() # (last_ts, server_id) for fast filtering
def register(self, sid, ts):
if sid in self.last_seen:
self.by_ts.remove((self.last_seen[sid], sid))
self.last_seen[sid] = ts
self.by_ts.add((ts, sid))
def failed_servers(self, now, k):
threshold = now - k
failed = [sid for sid, ts in self.last_seen.items() if ts < threshold]
return sorted(failed)
面試官追問:
- 「如果 server 數量到 1e7 怎麼擴展?」→ 推 partition by server_id mod N,平行掃描
- 「如果 register 呼叫頻率非常高,by_ts 的 SortedList 會不會成為瓶頸?」→ 改 lazy delete + 定期 rebalance
真題 2:Order Batching with Constraints(Coding 2,難度更高)
題面:n 個訂單,每個有 (deadline, weight)。一個 batch 最多 W 重量,且 batch 內所有訂單的 deadline 必須 ≥ batch 完成時間(每 batch 處理時間固定 t)。求最少 batch 數。
思路:貪心 + 優先佇列——按 deadline 升序處理,能塞就塞,塞不下開新 batch。
def min_batches(orders, W, t):
orders.sort(key=lambda x: x[0]) # by deadline
count = 0
current_time = 0
cur_weight = 0
for d, w in orders:
if cur_weight + w > W or d < current_time + t:
if cur_weight > 0:
count += 1
current_time += t
cur_weight = w
else:
cur_weight += w
if cur_weight > 0:
count += 1
return count
LP 聯動:Coding Round 結束前 5-10 分鐘會問 1-2 個 LP 故事(最常問 Customer Obsession 與 Deliver Results),所以別把 50 分鐘全用在 coding 上——必須留 10 分鐘給 LP。
System / LLD Round:典型 OOD 題
高頻真題:設計一個簡化的 Amazon Parcel Locker System
要求支援:
assign_locker(parcel_id, dimensions):根據 parcel 尺寸找最小可用的 lockerpick_up(parcel_id, code):用戶取件,code 驗證track_metrics():回傳今日總投放數、平均存放時長、利用率
評分維度
| 維度 | 減分回答 | 加分回答 |
|---|---|---|
| 類設計 | 把所有邏輯塞 LockerSystem 一個類 | 拆成 Parcel / Locker / LockerBank / LockerService |
| 資料結構 | List 線性掃 | 按尺寸用 size-class buckets(Small/Medium/Large/XLarge),每 bucket 一個 free queue |
| 並行 | 不提 | assign_locker 與 pick_up 用 fine-grained lock per LockerBank |
| 失敗處理 | 不提 | code 三次錯誤 → notify support; locker 滿 → 推送替代取件點 |
| 擴展性 | 「我會用資料庫」 | 提具體 schema:locker、parcel、event_log 三張表,event_log 是事實表 |
推薦回答時間分配(60 分鐘)
0-5 min 理解需求 + clarifying questions
5-15 min 核心資料模型(class diagram + DB schema)
15-30 min API 設計 + 關鍵演算法(assign / pickup / metrics)
30-45 min 並行 / 擴展 / 失敗處理
45-50 min 監控 / 測試策略
50-60 min 2 個 LP 問題(必有)
Bar Raiser BQ:16 LP 完整對應表
Amazon 2024 把 LP 從 14 條擴到 16 條(新增 Strive to be Earth's Best Employer 和 Success and Scale Bring Broad Responsibility)。Bar Raiser 通常會從中挑 5-6 條深挖。
16 條 LP × 推薦故事類型
| LP | 推薦故事方向 | 高頻開場問題 |
|---|---|---|
| Customer Obsession | 客戶痛點驅動的專案改造 | "Tell me a time you used customer feedback to improve a product." |
| Ownership | 接手爛攤子專案並完成 | "Describe a time you took on something that wasn't your job." |
| Invent and Simplify | 用新方法解決老問題 | "Walk me through a time you proposed a simpler solution." |
| Are Right, A Lot | 和團隊 disagree 但你對 | "Tell me about a decision others disagreed with." |
| Learn and Be Curious | 學一個全新技術棧 | "How do you keep learning?" |
| Hire and Develop the Best | mentor 學弟學妹 | "How have you helped others grow?" |
| Insist on Highest Standards | push 團隊提升品質 | "Tell me about a time you raised the bar." |
| Think Big | 把專案從 small scope 擴大 | "When did you advocate for something ambitious?" |
| Bias for Action | 缺資訊但快速決策 | "Tell me about a time you took action with incomplete data." |
| Frugality | 用更少資源做更多事 | "How have you done more with less?" |
| Earn Trust | 修復破裂的 trust | "Tell me about regaining someone's trust." |
| Dive Deep | 深挖 root cause | "Tell me about a complex problem you investigated." |
| Have Backbone; Disagree and Commit | 反對但執行 | "Describe a time you disagreed with your manager." |
| Deliver Results | 在壓力下交付 | "Tell me about a high-pressure deadline." |
| Strive to be Earth's Best Employer ⭐NEW | 改善團隊體驗 / DEI | "How have you helped foster team well-being?" |
| Success and Scale Bring Broad Responsibility ⭐NEW | scope 擴大後承擔更多責任 | "How do you think about your work's broader impact?" |
Bar Raiser 評分公式(一畝三分地反推)
最終分數 ≈
0.35 × LP fit (是否有 8+ 條 LP 可對應的故事)
+ 0.25 × Story specificity (具體到 metric / decision tree)
+ 0.20 × STAR 完整度 (Situation, Task, Action, Result)
+ 0.10 × 反向問題品質
+ 0.10 × 溝通風格 (節奏、自信、不傲慢)
強烈建議:在 onsite 前寫 12-16 個 STAR 故事,每個故事對應至少 2 條 LP,做到任意一條 LP 都有 1-2 個故事可講。
薪資 Range(2026 NG L4 SDE)
| 城市 | Base | RSU (4yr 5/15/40/40) | Sign-on Y1 | Sign-on Y2 | Y1 Total |
|---|---|---|---|---|---|
| Seattle / Bellevue | $170-180K | $130-160K | $30-50K | $25-40K | ~$210-250K |
| NYC / Bay Area | $180-195K | $140-170K | $35-55K | $30-45K | ~$225-265K |
| Austin / DC | $160-175K | $120-150K | $25-45K | $20-35K | ~$195-235K |
關鍵點:
- RSU vesting 5/15/40/40:第一年只 vest 5%,但前兩年的 sign-on 彌補,所以 Y1 + Y2 比 Google / Meta 4-year flat 反而更高
- Y3-Y4 stock cliff drop——大量 NG 在 Y2 末跳槽(典型 Amazon "Y2 跳板")
- Bar Raiser strong hire 可以談到 base + RSU 多 10-15%
時間線(OA 通過到 Offer)
Week 0 OA 通過 email
Week 1-2 Recruiter Call + 安排 onsite 時間
Week 3-4 Onsite Loop(一天連跑 4 輪,全 Zoom)
Week 5-6 Hiring Manager 內部 calibration + 寫 hiring document
Week 7-8 Offer Letter 發出 / 協商
Week 9 接 offer (deadline 通常 7-14 天)
重要 timing:Amazon 標準 offer deadline 是 7-14 天,比 Google / Meta(21+ 天)短。如果你在 Amazon 之外還在面,進 onsite 前主動把 Amazon 時間線往後推 2 週。
FAQ
Q1:Amazon NG VO 通過率到底多少?
OA 通過後 VO 通過率約 20-25%——比 Google / Meta NG(10-15%)友好。但Bar Raiser 一票否決,4 輪全過但 Bar Raiser no hire 仍然會 reject。最關鍵變數是 Bar Raiser 評分,它的權重佔整個 loop 的 35-40%。
Q2:Amazon NG VO 一定要準備 16 條 LP 嗎?
至少準備 12 條。Bar Raiser 通常深挖 5-6 條,hiring team 4 個面試官每人挑 2-3 條,總會觸達 12+ 條。不必每條 LP 寫專門故事——同一個故事映射 2-3 條 LP 是常見做法(例如「重寫舊程式碼」可同時講 Ownership + Insist on Highest Standards + Dive Deep)。
Q3:Amazon NG VO 用什麼語言寫程式碼?
Python / Java / C++ 三選一最穩,Python 是 NG 主流。JavaScript / Go 慎用——並非不允許,但 Amazon 內部程式碼主要 Java,面試官追問時容易露怯。用你最熟的,不要為 culture fit 切換。
Q4:Amazon Bar Raiser 是怎麼打分的?
Bar Raiser 是與 hiring team 沒有利益衝突的 senior engineer——他們不屬於這個 team,沒動力「收人湊數」。打分嚴格按 16 條 LP,只 hire 能"raise the team's bar"的 candidate。被 Bar Raiser 評 "no hire" 大機率不發 offer,即使 hiring manager 想要你。
Q5:Amazon NG VO 失敗後多久能再投?
6 個月 cooldown——比 Google / Meta(12 個月)短。但 Amazon 內部記錄會保留,第二次面試時 Bar Raiser 會刻意更嚴。強烈建議第二次投遞前寫一封「reflection letter」主動復盤上次失敗點(recruiter 會附在 packet 裡)。
Q6:Amazon NG L4 vs L5 怎麼判定?
NG 預設 L4(SDE I)。升 L5(SDE II)需要 candidate 在 onsite loop 表現出「L5 行為」:在系統設計 / Bar Raiser 中展示出獨立 ownership、多團隊協作經歷、scope > 一個 feature。多數 NG 不會直接給 L5,但 Bar Raiser 強 hire 偶爾會觸發「upgrade conversation」。
聯絡方式
如果你正在準備 Amazon NG / SDE II Loop,Coding 已不是關鍵變數——Bar Raiser BQ 才是 70% 候選人的失利點。我們整理了 Amazon 2025-2026 cycle Bar Raiser 高頻 60 題 + 16 LP × 故事映射模板 + STAR 寫作工坊,歡迎聯絡交流。
立即加入微信 Coding0201,獲取 Amazon Loop 真題與 Bar Raiser mock。
- Email:[email protected]
- Telegram:@OAVOProxy