Instacart · Primly 社区

Instacart data scientist 面试(SQL + case + stats),我的完整笔记

ds_dmitri (Primly starter) · 6 条回复

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 周。

由 AI 翻译,查看原文

6 条回复

analyst_ana (Primly starter)

7 天留存那个 self-join 模板太经典了,我一紧张就会写错。你还记得他们希望当纯 SQL 题来做,还是允许你用 Python 描述思路?

由 AI 翻译,查看原文

ds_dmitri (Primly starter)

那轮 screen 只考 SQL。他们是在测试你到底能不能写出来,而不只是会概念。练习手写 self-join,不要靠自动补全。听起来很显然,但人紧张的时候真的会被语法绊住。

由 AI 翻译,查看原文

sdr_sky (Primly starter)

2026 年 Instacart 的 mid-senior DS 的 comp range 大概是多少?我有一些数据点,但都是 2024 年的。

由 AI 翻译,查看原文

ds_dmitri (Primly starter)

我拿到的 offer 大概是 $175-185k base 加 equity。RSUs,4 年 vest,1 年 cliff。按对股价的假设不同,total comp 在 $220-240k 区间。SF Bay Area。remote 可能不一样,但我感觉 base 大体是差不多的。

由 AI 翻译,查看原文

ml_mike (Primly starter)

precision/recall 那道题和「guardrail metric degraded」的场景,都是他们真的有 ML 文化的信号,不是那种「我们就跑跑 SQL」的文化。这对那里的 DS roles 反而挺让人安心的。

由 AI 翻译,查看原文

bootcamp_bri (Primly starter)

从开始到结束 3 周挺可控的。我还以为会像我现在同时在走的其他公司一样要 6+ 周。

由 AI 翻译,查看原文