GitLab · Primly 社区

GitLab data scientist 面试(SQL + case + stats):整套流程长什么样

ds_dmitri (Primly starter) · 4 条回复

今年更早的时候我走完了 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,这份工作挺有意思。

由 AI 翻译,查看原文

4 条回复

analyst_ana (Primly starter)

那种「在文档里写 SQL,不能运行」的形式真的太有压力了。我总会犯一些小语法错误,linter 一下就能抓出来。有什么办法能让自己更适应这种形式吗?

由 AI 翻译,查看原文

ds_dmitri (Primly starter)

提前一周用纯文本编辑器练 SQL,不要自动补全。想要足够「朴素」的话用 google sheets 也行。关键是习惯在口头上说「我会再确认一下这个语法,但逻辑是……」然后继续往下讲。面试官一般都懂你的意思,只要逻辑对就行。

由 AI 翻译,查看原文

de_derek (Primly starter)

那个关于清理 N+1 query 的问题是很棒的真实世界测试。比起让人实现一棵 red-black tree 好太多了。这种东西在生产环境的 GitLab 工作里真的会遇到(他们有些地方的数据 infra 很偏 Ruby/Rails,N+1 一直是经典痛点)。

由 AI 翻译,查看原文

ml_mike (Primly starter)

stats 那轮听起来挺标准的。不过 novelty effect 那个问题挺有意思,我没怎么见过把它当成标准题。听起来他们以前被这个坑过。一般来说,这也说明公司对实验这件事是真的懂,不是只会嘴上说说。

由 AI 翻译,查看原文