Citadel interview questions | 2026 US 三輪技術面經(OA + Onsite)

1,562Views

Citadel 跟大廠區別很大。不問LeetCode原題,不考八股。全程場景驅動,圍繞交易系統聊。面試官是寫交易系統的工程師,追問很深,會一直問到你不會為止。我順利透過 OA 與三輪 Onsite,以下是詳盡面經,包含 Citadel interview questions 、我的解答思路、面試官反饋以及備戰建議。

Citadel interview questions | 2026 US 三輪技術面經(OA + Onsite)

第一輪:OA + Tech Screen

OA(90分鐘) 兩道演算法 + 一道系統設計,時間很緊。

演算法1:滑動視窗極值

實時價格流,固定視窗大小,每次滑動一格,要求 O(n) 返回視窗內 max 和 min。

解法:兩個單調佇列(雙端佇列)分別維護最大值和最小值候選。

  • 入隊時彈出不滿足單調性的元素;
  • 出隊時判斷隊首是否滑出視窗。 重點處理視窗初始化和佇列為空的邊界。 寫完程式碼後補充了時間/空間複雜度說明(為什麼是 O(n) 而非 O(nk)),面試官很關注程式碼風格和註釋習慣。

演算法2:併發安全的訂單簿

支援多執行緒插入/刪除訂單、價格查詢、撮合。讀寫比約 7:3,高吞吐下保證一致性。

方案

  • 按價格檔位分段加讀寫鎖(std::shared_mutex),降低鎖競爭;
  • 撮合跨價格層級時按固定順序加鎖防死鎖;
  • 用無鎖佇列做寫入緩衝,後臺執行緒批次消費平滑延遲。 解釋了不用全域性鎖(會成為瓶頸)和完全無鎖(複雜度高易出錯)的原因。用了原子操作 + memory order(release/acquire)。

系統設計:低延遲日誌系統

交易系統產生海量日誌,不能阻塞主路徑,還需支援時間範圍/關鍵詞快速查詢。

分層儲存方案

  • 熱資料:記憶體 Ring Buffer + 預分配記憶體池,寫入 O(1);
  • 溫資料:mmap 檔案,利用 OS 頁快取,非同步批次刷盤,零複製;
  • 冷資料:LSM-tree 壓縮儲存,適合查詢; 額外提到 sendfile 零複製。 說明不用傳統關係型資料庫的原因(B+樹隨機 IO 延遲高)。

Tech Screen(45分鐘)

自我介紹專案:學校做的分散式訊息佇列(Go)。 核心點:Topic 分片 + Raft 共識、sendfile 零複製、令牌桶背壓、WAL 持久化。

追問

  • 吞吐翻倍如何水平擴充套件?→ 一致性雜湊 + 動態再平衡,過渡期雙寫 + 冪等去重。
  • 節點宕機如何不丟不重?→ WAL 保證不丟,訊息唯一 ID + 布隆過濾器 + Redis 消費者去重,實現 Exactly-Once 效果。

特別環節:用非技術語言解釋分散式鎖。

比喻:就像機場共享充電寶櫃子,每人掃碼拿唯一櫃門號,防止衝突。面試官認可,認為和 Trader/Quant 溝通時這種表達很重要。

小機率題:策略勝率 55%,盈虧比 1:1,交易 100 次,至少盈利 60 次的機率? 用二項分佈 + 正態近似(μ=55,σ≈4.97),得出約 15%-18%。強調真實交易更看重風控和生存能力。

第二輪:Onsite(60分鐘)—— 全市場場景題

做市商場景 股票現價 100 美元,突然大額賣單砸盤,如何調整報價?

回答框架

  1. 正常報價:理論中間價掛單,動態 spread + 量,庫存中性化;
  2. 訂單流監控:買/賣單到達率失衡時拉寬 spread、減量;
  3. 極端應對:立即撤買單、觸發熔斷、限倉,波動率上升後進一步保守。

Fermi 估算:曼哈頓每天消耗多少杯咖啡? 假設白天總人口 300 萬,分人群(白領、服務業、遊客)估算日均消費,最終得出約 420 萬杯。強調假設透明和邏輯鏈條。

底層實現:低延遲訂單簿

  • 資料結構:std::map(紅黑樹)維護價格層級,每個價格對應 FIFO 訂單佇列;
  • 最佳化:無鎖跳錶、記憶體池、CPU 親和性、快取行對齊(alignas(64) 防偽共享)。

手撕:時間輪定時器(訂單超時撤單) 分層時間輪(毫秒→秒→分鐘),新增/刪除 O(1),槽位級自旋鎖 + 物件池。

第三輪:終面(60分鐘)—— Tech Lead

Tech Lead面,一半技術一半行為面。

Why Citadel

Citadel Securities工程團隊規模小但人均產出高,工程師程式碼直接影響當日盈虧。大廠寫的模組可能只是大系統一環,離最終結果遠。這裡離問題域近,做什麼為什麼做都清楚。

Behavioral

實習時做回測框架,量化研究員認為功能正確就行不用管效能。我跑profiling定位熱點函式,用資料溝通:最佳化後回測時間大幅縮短,策略迭代更快。對方同意後,用SIMD指令重寫核心計算模組,回測速度提升40%且數值結果一致。後續其他研究員也用了這套程式碼。講的時候結構:背景、衝突、行動、結果,突出資料驅動的溝通方式。

分散式交易系統設計

需求:全球跨時區交易,訂單從紐約、倫敦、東京接入,路由到對應交易所。延遲毫秒級,可用性99.999%。

架構:

  • 多活資料中心:紐約、倫敦、東京、新加坡各部署完整服務,就近接入
  • DNS智慧解析加Anycast路由,自動導向最近機房
  • 跨區域走專線或最優網路路徑,避免公網延遲
  • 每中心內部:接入層做前置風控,撮合引擎在記憶體完成,交易閘道器連交易所

一致性:

  • 賬戶餘額、持倉等全域性資料用多主複製
  • 跨區域衝突用版本向量解決,寫入帶版本號,衝突按規則合併
  • 大部分場景接受最終一致性,延遲低於閾值內允許短暫不一致
  • 交易執行路徑追求強一致性,用分散式事務或Saga模式

可用性:

  • 每層冗餘,單機故障自動切備機
  • 心跳檢測,秒級發現故障
  • 關鍵路徑無狀態或狀態可快速重建
  • 熔斷降級:某交易所連不上時快取訂單稍後重試,不影響其他交易所

追問跨區域延遲與一致性tradeoff:交易系統優先低延遲和可用性,一致性極端情況可短暫犧牲但最終收斂。同一使用者多訂單路由到不同區域,短期可能看到不一致,但執行結果以交易所確認為準,最終同步到全域性狀態。

反問環節

問應屆生成長建議。面試官說少花時間學框架,框架會過時。把作業系統、網路、編譯原理打紮實,理解計算機怎麼工作。交易系統核心能力是在不確定條件下快速決策和權衡風險,不是看書能學會的,在真問題裡練出來的。

從方向模糊到拿下Citadel Offer

這次 Citadel 面試能順利透過,我最想說的是:一個人硬扛真的太難了。後來我找到了 Programhelp,他們的學長為我提供了全程 OA 實戰輔助和麵試深度輔導,包括真題預測、程式碼最佳化、系統設計推演和高強度模擬面試,讓我在真實面試中明顯更有底氣和條理。

如果你也在準備 Citadel、Jane Street、NVIDIA、Point72 等高強度面試,感覺一個人複習效率低,強烈建議瞭解一下 Programhelp。他們專注提供 OA 實戰輔助和麵試指導,學長會直接跟你溝通,根據你的情況制定針對性方案。

有需要的同學可以直接聯絡 Programhelp 詳談。

author avatar
Jory Wang Amazon資深軟體開發工程師
Amazon 資深工程師,專注 基礎設施核心系統研發,在系統可擴充套件性、可靠性及成本最佳化方面具備豐富實戰經驗。 目前聚焦 FAANG SDE 面試輔導,一年內助力 30+ 位候選人成功斬獲 L5 / L6 Offer。
END
 0