這次分享一場北美 Optiver NG SDE 的完整面試流程。整體節奏可以用一個詞形容:快。OA 透過後第二天就收到 HR Call,幾乎不給你太多緩衝時間。整個流程非常偏工程底層能力,不走花哨路線,考察點也很貼合實盤交易系統的真實需求。
如果你之前準備的是偏產品型網際網路公司,這場面試的風格會明顯不一樣,更強調 latency、memory、network、底層控制能力。

OA 階段
OA 是常規 coding 形式,難度不算離譜,但非常看重實現質量和穩定性。邊界條件、複雜度控制必須乾淨。Optiver 整體風格偏務實,不會故意出特別繞的題,但你必須寫得足夠紮實。
透過後很快進入 HR Call。
HR Call
HR 這一輪極其精簡,只問兩個問題:
- tight deadline 的專案怎麼安排?
- why Optiver?
時間不長,但回答必須乾脆。尤其是 why Optiver,如果只說“想做交易”“高頻很酷”這種泛泛回答,會顯得準備不足。最好結合做市商背景、工程驅動文化來講。
第一輪技術面:基礎能力 + 簡單系統設計
第一輪偏基礎,但問題都很實在,不會給你太多思考鋪墊。
一開始是記憶體計算題。題目給出一個包含 1000 個節點的連結串列,每個節點包含一個 int 和一個指標,int 範圍是 0 到 16 million,問整個連結串列佔用多少空間。這裡考察的不只是 int 需要多少 bit,還包括指標大小、64 位機器環境、結構體對齊等問題。如果只算 4 位元組 int + 8 位元組指標,很可能會漏掉 alignment 細節。
接著是語言對比,重點圍繞 C++ 和 Java。核心在垃圾回收機制差異、記憶體管理方式、RAII、確定性析構等。需要解釋為什麼低延遲場景更偏向 C++,GC 帶來的 pause、不可控延遲都是關鍵點。
最後是一個基礎 System Design,類似設計 Ticketmaster 票務系統。主要討論高併發搶票、防止超賣、鎖機制以及資料一致性問題。這部分難度不算高,但面試官會看你是否能結構化地講清楚系統模組。
整體來說第一輪是在確認你的基礎是否紮實。
第二輪技術面:底層交易系統設計
這一輪是整場面試的核心,明顯貼近 Optiver 的業務場景。
題目是:假設你作為初創交易公司 CTO,在阿姆斯特丹交易法蘭克福交易所 BMW 股票,只實現 buy/sell 功能,設計完整交易系統。
討論從伺服器部署開始。是否 colocate 在交易所機房?網路距離對延遲的影響如何衡量?是否需要主備架構?這些問題都圍繞 latency 展開。
隨後進入網路設計。行情鏈路和下單鏈路是否分開?TCP 還是 UDP?一般行情用 UDP 追求低延遲,下單用 TCP 保證可靠性。是否需要自定義協議,如何處理丟包、重傳、順序問題,這些都會被追問。
然後是系統模組劃分。通常會拆成 Market Data Handler、Strategy Engine、Order Manager、Risk Control、Gateway 等模組。模組之間通訊如何實現,是用共享記憶體、訊息佇列,還是 lock-free queue?是否需要單執行緒 event loop?執行緒模型怎麼設計?
最後會問容錯和風控,比如斷線重連機制、訂單重發策略、Kill Switch 設計等。這一輪基本全程偏底層架構思考,如果沒有交易系統相關知識儲備,會比較吃力。
第三輪技術面:Coding + OOD
第三輪轉為 coding 加物件導向設計,場景是電商,但本質還是考系統抽象能力。
題目給定庫存流和訂單流兩個介面,實時傳輸資料,需要實現一個 leaderboard service。當出現有利可圖的新訂單時,透過 display 介面推送給交易員,並按利潤從大到小排序。
演算法難度不算特別高,但題目篇幅很長,細節很多。你需要考慮如何設計類結構,如何維護利潤排序結構,是否使用優先佇列或有序容器,如何避免重複計算,以及是否涉及多執行緒安全。
面試官更看重的是程式碼結構是否清晰、介面是否合理、資料更新是否高效,而不是讓你寫複雜演算法。
瞭解更多
我們長期跟進北美 NG / Intern / Experienced SDE 面試流程,對高頻題型、追問方向、工程細節深挖點都非常熟悉。無論是 OA 階段的節奏把控,還是 VO 中的高強度 coding + system 深挖,我們都有成熟的模擬體系和實戰 面試輔助 支援。