2026 年 3 月走完了 Instacart 的 DS 面试 loop,面的是他们 growth 团队的 mid-senior DS。想写得具体点,因为大多数 DS 面经要么太泛,要么是 3 年前的。
Loop 结构: SQL/coding screen(45 分钟,async 或 live,我的是 live) Case study / 产品分析(60 分钟) Stats / probability(45 分钟) Behavioral(45 分钟)
SQL 轮: 三道题,给了一个很像真实电商的 schema(orders、order_items、users、shoppers)。难度:第一题是 join + aggregate,比如算最近 30 天按用户分群的平均客单价。第二题是窗口函数:在每个 market 内按履约率给 shoppers 排名。第三题更绕,做 self-join 找出 7 天内下了两单的用户(留存信号)。窗口函数和 self-join 一定要熟到不假思索。
Case study: 给了场景:东南地区 shopper 的 pickup time 增加了 12%。诊断并给出下一步建议。我是这么走的:先看是不是数据问题,是全品类还是某些品类,是新 shopper 还是老手,店内布局或合作伙伴关系有没有变化。然后建议做一个小实验:在一个 market 里对经验丰富的 shoppers A/B 一个引导拣货路线功能。他们会问指标、护栏指标,以及大概样本量。指标要多花时间。
Stats 轮: 不算特别理论,但也不简单。问题包括:解释 precision 和 recall 的区别,以及分别在什么情况下优化哪个。你跑了一个 A/B test,主指标提升了但一个 guardrail 指标变差了,你怎么办。解释你会怎么建 propensity model 来识别有流失风险的 shoppers。最后那题会深入到特征选择和校准。
总体:难但公平。从开始到结束大概 3 周。