今年更早的时候我走完了 GitLab DS 的 loop,面的是产品分析团队一个 mid-senior 的 DS 职位。外面几乎没什么具体信息,所以分享一下我的经历。
结构: recruiter screen(30 分钟) hiring manager(45 分钟,背景 + 你怎么思考问题) SQL + technical interview(60 分钟,live) 产品 case 面试(60 分钟) 统计/ML 概念面试(45 分钟) behavioral/values(45 分钟)
五轮硬核面真的很多。如果连着排,基本要预留一整天。
SQL 轮: 比平均难。不是那种“SELECT * FROM users WHERE date > X”的水平。我们做了:跨 user events、pipeline runs、project metadata 的多表 join,去回答一个关于 activation drop-off 的业务问题。然后追问我需要重写一条很慢的 query(里面藏着 N+1 模式)。再然后是一道 window function:'for each user, find the time between their first pipeline run and their first successful pipeline run.' 最后一题我差点翻车。
SQL 环境就是一个共享文档,没有 live query runner。所以你是写出来并解释思路,不是跑出来。
产品 case: prompt:'GitLab's free-to-paid conversion rate dropped 8% last quarter. walk me through how you'd diagnose it.' 完全开放题。他们想看漏斗思维、cohort 思维、以及假设生成能力。我讲了 25 分钟左右,然后他们开始问那种“如果我告诉你下滑只发生在 mobile 上呢?”的引导问题。很典型的 case 面试节奏。
stats/ML 面试: 不写代码,纯概念。问题包括:在 spam classifier 的语境下解释 precision vs recall。怎么判断一个 A/B test 有没有 novelty effect。'your model shows 92% accuracy, why might that number be misleading?'(显然是类别不平衡,但他们要你把逻辑推出来)。还有 bias-variance tradeoff,什么时候选简单模型而不是复杂模型。
整体难度:比我预期难,尤其是 SQL。准备的时候多练 window functions 和多表聚合。case 和 stats 轮的难度都在正常 DS 面试范围内。
comp:我的 offer 大概是 $165k base,mid-senior level,US remote,2026 年。另有 RSUs。不是 FAANG 的数字,但全远程,而且如果你在乎 devtools metrics,这份工作挺有意思。