DoorDash 数据科学家面试实录 2026:Coding、SQL 与 A/B 测试复盘
DoorDash 数据科学家面试真实复盘:Coding、SQL、A/B 测试与系统设计轮次拆解,还原高频题目与解题思路,附 2026 备战建议。
公司:DoorDash 岗位:数据科学家 (Data Scientist) 面试形式:Virtual Onsite 结果:Pass → Offer
CodeCraft:不是算法,是工程实现能力
CodeCraft 可以理解为 DoorDash 特有的一类 coding round,更像是快速实现一个业务模块,而不是传统算法题。高频题包括 Dasher payment、Aggregated Bootstrapper API 等。比如 dasher pay,本质是根据规则计算配送员收入,但难点在于规则多、数据复杂,而且 follow-up 非常多,比如 peak hour 处理、异常数据处理等。
这一轮的关键不是算法难度,而是你能否快速把需求转成清晰的逻辑,并且写出结构合理的代码。很多人卡在时间不够,其实问题不在不会,而是在前期理解和设计花太久。一个很典型的坑是用 TDD 的方式慢慢写,这在时间充足的情况下是好习惯,但在这个场景下反而会拖慢节奏。更好的策略是先把主逻辑写出来,确保可以跑通,再补边界和测试。
Debugging
Debugging 轮也是 DoorDash 的特色之一,而且非常工程化。常见题包括 Round Robin、Dasher map、pick dasher 等。这一轮不会让你写很多代码,而是给你一段有 bug 的系统,让你快速定位问题并修复。典型 bug 包括 hashmap 初始化错误、null pointer、key 使用错误等。
但这一轮不只是找 bug。很多情况下,修完 bug 之后还会有 follow-up,比如让你写 test case,或者讨论如果是 production code 应该怎么改。有些题还会延伸到系统设计,比如让你用 TreeMap 手写 consistent hashing。这一部分代码量不小,如果时间不够,可以主动和面试官沟通先写一个简化版本。这一轮其实在考察你真实的工程经验,包括你如何读代码、如何定位问题、以及你对系统稳定性的理解。
ML System Design 核心真题:DoorDash 首页店铺推荐系统
在 DoorDash 的 Machine Learning / Data Science 架构轮次中,首页店铺推荐与特征平台(Feature Store)设计是最高频的考核场景:
graph TD
A[User App Home / Location Request] --> B[API Gateway / Orchestrator]
B -->|GeoHash 召回 < 15ms| C[Retrieval Layer]
C -->|DynamoDB Grid Cache| C1[网格营业店铺热榜]
C -->|Vector Search| C2[个性化偏好召回]
B -->|并发提取特征| D[Feature Store]
D -->|在线 Low-latency| D1[实时特征: 近30m点击/天气/运力]
D -->|离线 KV 表| D2[历史特征: 7d客单价/用户画像]
C & D --> E[Ranking Model]
E --> F[A/B Experiment Dispatcher (CUPED)]
F --> G[Ranked Stores Output]
1. 强约束与多路召回(Retrieval Layer)
- 硬性业务约束:推荐店铺必须在当前定位配送范围内(Delivery Radius)且处于营业状态。
- 地理位置网格缓存(GeoHash Grid Caching): 将地理坐标划分为 GeoHash 7 级网格(约 150m 精度),离线预计算每个网格的热门与高评分店铺,存入 DynamoDB / Redis,查询时以 GeoHash 为 Key 瞬时返回,避免实时空间计算。
- 15ms 严苛超时并发拉取:多路召回(规则召回、协同过滤、向量检索)采用异步并行
CompletableFuture/asyncio,配置 15ms 熔断超时(Strict Timeout Threshold),超时自动降级使用网格兜底榜单。
2. 特征平台(Feature Store)与 A/B 实验基建
- 存储与读取分层拆分:
- 静态/离线特征(如店铺历史评分、用户近 30 天消费画像):以
store_id和user_id为复合主键,小时级/天级写入分布式 KV。 - 高频实时特征(如当前配送员运力负载、区域雨雪天气系数):采用 Kafka + Flink 流式写入内存缓存。
- 静态/离线特征(如店铺历史评分、用户近 30 天消费画像):以
- 模型版本迭代与 A/B 差异化特征拉取:
当线上进行 V1.1 与 V2.0 模型实验时,Feature Store 通过 动态特征配置文件(Feature Config Map),根据请求携带的
Experiment Treatment ID动态组装不同的特征向量输入,无需修改底层取数代码。 - 实时特征 vs 离线特征 Trade-off: 在追求实时特征的高增益时,必须权衡低延迟要求下的降级策略——当实时特征链路出现网络超时或特征缺失时,使用预先计算的全局均值(Global Mean)或离线最新快照平滑填充,避免模型评分归零。
面试总结
成功经验
- 充分准备高频题:DoorDash 的面试题目集中在经典算法和数据结构上,提前准备 LeetCode 高频题非常有必要。
- Behavioral 故事要准备充分:使用 STAR 框架准备 5-8 个核心故事,覆盖 Leadership、Conflict、Innovation 等场景。
- 沟通表达要清晰:解题过程中要主动与面试官沟通思路,不要闷头写代码。
- 边界条件要主动讨论:面试官很看重候选人对 edge cases 的考虑。
面试注意事项
时间管理:每轮 45-60 分钟,需要合理分配时间给题目、讨论和 follow-up 问题。
技术深度:DoorDash 的面试官对技术细节要求很高,边界条件、性能优化、系统设计能力都是考察重点。
推荐阅读
- DoorDash 面试全流程指南 — DoorDash 面试流程、高频题目与准备策略
- System Design 面试完全攻略 — 分布式系统设计的核心原则与高频题目
- 行为面试 STAR 故事模板 — Leadership、决策、冲突解决等高频行为问题的回答框架
- Data Scientist 面试题 2026:25 道 SQL、统计、A/B Test 与 ML 高频题 — 面试前过一遍高频题清单,覆盖 SQL、实验设计和 ML 三大模块
💡 需要面试辅导?
如果你对准备技术面试感到迷茫,或者想要个性化的面试指导和简历优化,欢迎联系 Interview Coach Pro 获取一对一辅导服务。
相关面试辅导
如果你正在准备类似面试,可以直接从下面的专项辅导开始。