← 返回部落格列表 Zoox VO 2026 面試流程深度複盤|Robotaxi 全棧面試 5 大環節 + 真題分析
Zoox

Zoox VO 2026 面試流程深度複盤|Robotaxi 全棧面試 5 大環節 + 真題分析

2026-05-15

Zoox 是亞馬遜旗下的 Robotaxi 公司,2026 Q1 起在 Foster City 與 Las Vegas 已開放第一批 paid rides。這家公司在自動駕駛賽道有個非常特別的屬性:自研整車 + 自研全棧軟體——所以它的面試範圍比 Waymo / Cruise 更廣,C++ 嵌入式、ML perception、ROS-style 通訊框架都可能被問。

本文基於 2026 年三位候選人的 onsite 複盤(Perception SDE / Planning SDE / Embedded Systems),系統拆解 Zoox 的 5 個面試環節,並給出 2 道高頻 coding 真題的完整解法。

Zoox 面試流程總覽

階段 時長 內容
1. Recruiter Phone Screen 30 min 履歷、為什麼 Zoox、職缺匹配
2. Hiring Manager Chat 45 min 專案深挖 + 跨團隊協作經歷
3. Technical Phone Screen 60 min 1 道 C++/Python coding(CoderPad)
4. Onsite Loop 5 × 60 min Coding × 2、系統/Robotics 設計、ML 專項、BQ
5. Team Match 1-2 週 不重新面,只是匹配團隊

Zoox 與 Waymo 最大差異:Coding 題偏向系統工程而非純演算法——例如「實作一個容忍 200ms 的感測器流時間對齊」,而不是 LeetCode 風格的「兩數之和」。

Coding 真題 1:感測器時間同步(LiDAR + Camera)

題目描述

兩路時間戳資料流:

對每一個 LiDAR 包,找到時間戳最接近的 Camera 幀,要求時間差 ≤ 50 ms,否則跳過該 LiDAR 包。最終回傳所有匹配對。

資料可能亂序到達,需要線上(streaming)處理。

解題思路

這是一道典型 Zoox 風格題——表面像 LC Two Pointer,但加了 streaming、reorder、tolerance 三個真實工程約束。

  1. 用 deque 維護 camera buffer:丟棄比目前 lidar 早 50 ms 的幀
  2. 對每個 lidar 包,等到出現一個比它的 camera 幀才決定
  3. 用 heap 處理亂序:緩衝 200ms 視窗後才 pop

Python 解法

from collections import deque
import heapq

class SensorSync:
    def __init__(self, tolerance_ms=50, reorder_window_ms=200):
        self.tol = tolerance_ms
        self.window = reorder_window_ms
        self.cam_buf = deque()
        self.lidar_q = []
        self.matched = []

    def push_camera(self, ts, frame):
        self.cam_buf.append((ts, frame))
        self._gc(ts)

    def push_lidar(self, ts, packet):
        heapq.heappush(self.lidar_q, (ts, packet))
        self._gc(ts)

    def _gc(self, now_ts):
        while self.cam_buf and now_ts - self.cam_buf[0][0] > self.window:
            self.cam_buf.popleft()
        while self.lidar_q and now_ts - self.lidar_q[0][0] > self.window:
            ts_l, packet = heapq.heappop(self.lidar_q)
            self._match_one(ts_l, packet)

    def _match_one(self, ts_l, packet):
        best = None
        best_diff = self.tol + 1
        for ts_c, frame in self.cam_buf:
            diff = abs(ts_c - ts_l)
            if diff <= self.tol and diff < best_diff:
                best, best_diff = (ts_c, frame), diff
        if best is not None:
            self.matched.append((ts_l, packet, best[0], best[1]))

    def flush(self, max_ts):
        self._gc(max_ts + self.window + 1)
        return self.matched

時間複雜度:每事件 O(W) 追問:怎麼把 _match_one 降到 O(log W)?答:用 SortedListts_c 索引,做 lower/upper bound 二分。

Coding 真題 2:路徑點平滑(Trajectory Smoothing)

題目描述

給定 Planner 輸出 waypoints [(x, y, t)],因離散決策抖動,相鄰點速度可能突變。要求滑動視窗加權平滑:

只能線上維護,每來一個 waypoint 輸出一個平滑點。

解題思路

經典加權平均,加上 Zoox 實務需求:

  1. 線上 → deque 維護最近 k 點
  2. 權重歸一化,避免邊界除以 0
  3. 平滑必須保持單調時間戳,否則下游 controller 會震盪

Python 解法

from collections import deque

class TrajectorySmoother:
    def __init__(self, window=5):
        assert window % 2 == 1
        self.k = window
        self.half = window // 2
        self.buf = deque()
        self.weights = [self.half + 1 - abs(i - self.half) for i in range(window)]

    def push(self, x, y, t):
        self.buf.append((x, y, t))
        if len(self.buf) > self.k:
            self.buf.popleft()
        return self._smooth()

    def _smooth(self):
        pts = list(self.buf)
        if len(pts) < self.k:
            pad = self.k - len(pts)
            left = pad // 2
            right = pad - left
            pts = [pts[0]] * left + pts + [pts[-1]] * right
        wsum = sum(self.weights)
        sx = sum(p[0] * w for p, w in zip(pts, self.weights)) / wsum
        sy = sum(p[1] * w for p, w in zip(pts, self.weights)) / wsum
        return (sx, sy, pts[self.half][2])

時間複雜度:每 waypoint O(k) Zoox 加分項:主動提到 B-spline、Savitzky-Golay 作為後續優化,會讓 Planner 團隊面試官眼前一亮。

Robotics 系統設計高頻題

題目 考察點
設計 Robotaxi E-Stop(緊急停止)鏈路 安全冗餘、雙通道仲裁
多 sensor 資料如何在 ROS-style topic 分發 Pub/Sub、QoS、Back-pressure
1TB/小時 log 回放系統 分片儲存、時間索引、降採樣
HD Map fleet 內增量分發 Delta 同步、簽章驗證

白板上畫「actor + topic」——Zoox 內部就是 actor-based 框架(LCM/ROS2 風格)。

ML / Perception 專項

Perception 候選人會有一輪純 ML 理論 + 工程:

問最細的是 evaluation metrics——mAP vs NDS(nuScenes),以及「為什麼 NDS 加權 5 個子指標」。

Behavioral / 價值觀

Zoox 文化關鍵字:

  1. Customer Obsession(亞馬遜 DNA)
  2. Earn Trust — 跨團隊衝突如何解決
  3. Are Right, A Lot — 哪個決策被證明錯誤、如何修正
  4. Frugality — 怎麼用最小代價驗證 risky idea

每個 BQ STAR 結構 + 3 分鐘內,留時間給面試官追問「如果換另一種方案」。


FAQ

Q1:Zoox 與 Waymo / Cruise 面試難度對比?

演算法純度:Waymo > Cruise > Zoox 工程實務:Zoox > Waymo > Cruise Zoox 的題更接近「明天上車的程式碼」。純 ML 研究背景的候選人,可能在第 4 輪工程化問題卡住。

Q2:Zoox 2026 還在 hiring freeze 後嗎?

2026 Q1 完成 Foster City 商業化首發,目前 Perception / Planning / Vehicle Software 三個團隊仍積極招人,但 Mapping 和 Cloud 名額收緊。申請前建議查 LinkedIn。

Q3:onsite 全部 Zoom 還是現場?

混合:Tech screen 全線上,onsite 預設現場(Foster City),公司報銷機票飯店。偏遠地區候選人可協商改 Zoom,但接受率約 60%。

Q4:用什麼語言寫 coding?

Robotics / Perception / Planning 強烈推薦 C++。 Cloud / Infra / Simulation 可用 Python。 ML Research 用 PyTorch + Python 即可。

Q5:如何準備 ROS / 自動駕駛基礎?

從零開始:

  1. 讀 ROS2「Concepts」章節(2 小時)
  2. 跑通 Autoware.Auto demo(半天)
  3. 讀 Apollo Planning 開源(1 週)
  4. 看 nuScenes / KITTI README(半小時)

之後就能聊 publisher/subscriber、TF tree、launch file,足以通過 Zoox 基本盤。

Q6:Zoox 招 new grad / intern 嗎?

招。整車工程 + Robotics 背景的 PhD 優先級最高,純 SWE new grad 主要進 Cloud / Tools / Simulation。Intern 每年約 30 人,2025 conversion rate 約 50%。


正在準備 Zoox / Waymo / Cruise 自動駕駛面試?

自動駕駛面試同時考演算法深度 + 系統工程感,純刷題已遠遠不夠。我們整理了五家公司 2026 真題題庫,與 Perception / Planning / Embedded 三大方向的備考路徑,歡迎聯繫。

加微信 Coding0201取得 Robotaxi 面試真題包

聯絡方式

Email: [email protected] Telegram: @OAVOProxy