今年投 DoorDash 实习真的能感受到“卷”从屏幕里溢出来。身边好几个同学都是十几个大厂一起投,最后能拿到 DoorDash 面试邀请的,基本都是算法 200+、系统设计入门、自我介绍还得能讲业务的那种强手。所以当我收到 interview 的那一刻,真的有点像抽到了隐藏关卡:兴奋,但知道难度不会低。下面讲讲我遇到的每一道题、面试官怎么追问、我怎么应对,也给正在准备 DoorDash 26NG 的同學一點提前踩點的機會。
Round 1:演算法面——面試官上來一句:
“If you were a dasher starting from this location… how fast can you find the closest restaurant?”
我一聽,哦豁,這八成是 BFS 了。但是面試官講得很生活化:
他拿出一個小 grid(脫敏後的):
- 0 是路
- X 是牆
- R 是餐廳
- S 是 dasher 起點
然後他說了一句很 DoorDash 的話:
“Imagine you’re hungry and you’re on a bike. Where’s the closest food?”
我當場笑出來,直接開幹 BFS。一邊寫程式碼一邊解釋我會用 queue 擴散、用 visited 防重複。
寫到一半他插一句:
“Why BFS instead of DFS?”
我就順勢說 BFS 是按層搜尋,第一次碰到餐廳就是最近距離。
面試官點點頭:“Good. That’s exactly what we do in routing.”
那一刻我才意識到:DoorDash 的演算法題不是為了折磨你,而是為了看你是不是 能把圖論往現實業務上套。
Round 2:演算法 + 匹配邏輯
面試官這輪更像把我丟進一個真實 dispatch center。
他給了兩個列表(已脫敏敘述):
- 一堆訂單:包含位置 & 準備時間
- 一堆 dasher:包含當前位置 & 空閒狀態
然後他問我:
“Suppose you’re running the dispatch system right now.
How do you assign dashers to minimize delivery time?”
我本來想講個最優匹配,但他說:
“We don’t need optimal. We need fast and scalable.”
DoorDash 那味兒來了:execution > 理論最優。
我就講三種:
- greedy(每個訂單找最近的空閒 dasher)
- weighted scoring function(距離 + prep time + dasher rating)
- 限制搜尋區域(分 zone,不做全域性匹配)
面試官立刻追問:
“Why zone-based?”
“What if a dasher is idle just across the border?”
我就講業務 tradeoff:全圖匹配太慢,zone 內最穩;跨區 idle 可以閾值觸發。
他聽完來了一句:
“This is close to how our dispatch system thinks.”
那一刻真的挺爽,感覺不是在做題,而是在討論一個真實的 product。
Round 3:系統設計——我第一次被要求“實時追蹤一個騎手”
這一輪是 DoorDash 的經典題,但面試官講的非常有畫面。
他直接讓我想象:
“You’re ordering bubble tea.
Your dasher is on a scooter updating GPS every 3 seconds.
Show me how you’d build the real-time tracking.”
我當場腦補出奶茶在路上的動畫,開始搭架子:
- WebSocket:實時 push 使用者端
- Redis:只存最新位置(不存歷史)
- Location Service:做 throttle + 去抖動
- Sharding:按 region scale
- Front-end:訂閱 order-specific channel
然後他問:
“What if a million users are watching riders at the same time?”
我就講 fan-out、pub/sub、按 order ID 做 channel。
面試官很滿意:
“Good. You’re thinking like a real-time system engineer.”
我第一次覺得,原來實習生也可以聊這種級別的系統。
Round 4:下單系統設計——最被追問的一題
這一題面試官的開場白特別像真實 incident:
“A user taps ‘Place Order’…
but the network glitches.
They tap again.
We get two payments.
What do we do?”
我滿腦子只剩一個詞:idempotency。
我講:
- 每次下單會生成一個 requestId
- server 檢查重複
- Order Service + Payment Service 要保證 atomic
- 支付不成功要 rollback 訂單
- 丟包場景要 retry-safe
面試官點點頭:
“Exactly. Most issues in order placement come from duplicated requests.”
聽完我徹底懂了:
DoorDash 的系統設計題從來不是抽象,而是直接來自實際線上事故。
Round 5:Behavioral——這裡比我想象的更重要
DD 的行為面問得非常有邏輯感,不走形式。
最關鍵的三題:
① Why DoorDash?
我講的是:
我喜歡 real-time,喜歡路線最佳化,喜歡跟真實世界連線的系統。
並且提了我做過地圖和路徑相關的小專案。
面試官秒懂我是真的對這個領域感興趣,而不是隨便投的。
② Collaboration 自己帶過坑嗎?
我講了一個故事:
之前做一個 side project,我和 teammate 在 API 介面結構上意見不合,我最後把兩種方案都寫成 prototype,用真實資料比效能和可維護性。
最終我們採納了更合適的那版。
面試官聽到 “用 prototype 做決策” 特別喜歡。
③ 如何面對 fast-paced environment?
我說我習慣用 checklist 和 writing 來減少 context switch。
他們很吃這套——DD 節奏真的很快。
最後總結:DoorDash 看的是 “你能不能馬上動起來”
面了一圈下來我最深體會就是:
DoorDash 不卷難題,也不卷 fancy 架構。
他們卷的是:
- 你能不能快速把問題拆乾淨
- 能不能站在業務角度做 tradeoff
- 遇到新東西時能不能迅速上手
- 有沒有真實在乎 real-time logistics 的感覺
我這次準備系統設計 & behavioral,是找 Programhelp 做的 VO 語音助攻。
面試時被追問:快速點醒關鍵點、提醒 tradeoff、幫我把故事講得更像 “現場做決策”。
是時候給你的面試加一道“終極保險”了
走到VO了?恭喜你離大包只有一步之遙! 但DD的System Design對NG真的不友好,Coding壓力也大。 不想在最後關頭掉鏈子? DoorDash VO全流程無痕助攻 瞭解一下。 資深導師實時線上,Coding + System Design全程保駕護航。 安全、隱蔽、高效,助你穩穩拿下Offer。 別猶豫,26NG的機會不等人。