参加了 Shopify 的 DS 面试 loop,岗位是 mid-senior data scientist,方向是 merchant analytics。下面按轮拆解。
SQL 轮(60 分钟,live coding): 三道 SQL。第一道比较直接:GROUP BY 聚合 + 窗口函数。第二道更复杂:一个商家 cohort 的月度留存(month-over-month retention)。第三道是开放题:给你面试时提供的 schema,写一个 query 找出可能有流失风险的商家。第三道没有唯一正确答案,他们想看你如何基于现有数据定义风险信号。
他们不是在考语法,而是在考你能不能把业务问题翻译成 query,以及你能不能边做边把推理讲清楚。
Case / product sense 轮(60 分钟): 给一个场景:Shopify 某个 segment 的 merchant GMV 环比下降 8% QoQ。讲讲你怎么诊断。这是标准 DS case,但因为是 Shopify 语境,你要考虑 merchant-level、transaction-level、platform-level 的原因。我用结构化方式拆:先看是不是单一 segment、单一地区、单一商家规模层级的问题,还是平台整体;再提出假设;再说我要拉哪些数据。
他们会追问:“如果你来不及拿到那些数据,你的 fallback 是什么?”这个追问很能说明他们在意务实落地。
Stats / experimentation 轮(45 分钟): 概念题,不是 coding。问了 A/B test 设计、样本量计算、怎么处理 novelty effects,还有一个专门关于 switchback experiments 的问题(相关,因为他们有些实验不能在用户层随机)。如果你没看过 switchback 或 cluster-level 实验设计,建议补一下。
总体:比我做过的大多数 DS loop 都难,主要是因为 SQL 是 live 的,而且 case 需要你对商家领域有真实直觉。stats 轮高于平均,但也不是博士级。对同时在投其他 commerce 或 marketplace 公司的同学来说,这种准备很通用。