DoorDash 数据科学家面试实录 2026:Coding、SQL 与 A/B 测试复盘
DoorDash面试数据科学家面试VO面试真实面经算法题SystemDesign

DoorDash 数据科学家面试实录 2026:Coding、SQL 与 A/B 测试复盘

DoorDash 数据科学家面试真实复盘:Coding、SQL、A/B 测试与系统设计轮次拆解,还原高频题目与解题思路,附 2026 备战建议。

Sam · · 15 分钟阅读

公司: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_iduser_id 为复合主键,小时级/天级写入分布式 KV。
    • 高频实时特征(如当前配送员运力负载、区域雨雪天气系数):采用 Kafka + Flink 流式写入内存缓存。
  • 模型版本迭代与 A/B 差异化特征拉取: 当线上进行 V1.1 与 V2.0 模型实验时,Feature Store 通过 动态特征配置文件(Feature Config Map),根据请求携带的 Experiment Treatment ID 动态组装不同的特征向量输入,无需修改底层取数代码。
  • 实时特征 vs 离线特征 Trade-off: 在追求实时特征的高增益时,必须权衡低延迟要求下的降级策略——当实时特征链路出现网络超时或特征缺失时,使用预先计算的全局均值(Global Mean)或离线最新快照平滑填充,避免模型评分归零。

面试总结

成功经验

  1. 充分准备高频题:DoorDash 的面试题目集中在经典算法和数据结构上,提前准备 LeetCode 高频题非常有必要。
  2. Behavioral 故事要准备充分:使用 STAR 框架准备 5-8 个核心故事,覆盖 Leadership、Conflict、Innovation 等场景。
  3. 沟通表达要清晰:解题过程中要主动与面试官沟通思路,不要闷头写代码。
  4. 边界条件要主动讨论:面试官很看重候选人对 edge cases 的考虑。

面试注意事项

时间管理:每轮 45-60 分钟,需要合理分配时间给题目、讨论和 follow-up 问题。

技术深度:DoorDash 的面试官对技术细节要求很高,边界条件、性能优化、系统设计能力都是考察重点。


推荐阅读


💡 需要面试辅导?

如果你对准备技术面试感到迷茫,或者想要个性化的面试指导和简历优化,欢迎联系 Interview Coach Pro 获取一对一辅导服务。

S

关于作者

Sam 是 Interview Coach Pro 的技术面试教练,长期辅导在美国求职的中文候选人准备 SDE、System Design、Behavioral、Data Engineer 和 ML Engineer 面试。

本文基于匿名面试复盘、公开岗位要求和一对一辅导中的高频问题整理,发布前会检查内容结构、术语准确性和可操作性。你也可以查看我们的 辅导团队辅导方法

相关面试辅导

如果你正在准备类似面试,可以直接从下面的专项辅导开始。

准备好拿下下一次面试了吗?

获取针对你的目标岗位和公司的个性化辅导方案。

联系我们