上个月走完了 Cloudflare 的 DS loop,岗位在他们 analytics team。放一些数据点。
流程概览: Recruiter screen(30 分钟) Technical phone screen(45 分钟,SQL + stats 问题) Onsite:两天共 4 轮(不是连续两天)
Technical phone screen: 两道 SQL。第一道是窗口函数,按 region 给 traffic volume 排名。第二道更复杂:多表 join,按时间窗口过滤,再按某个维度聚合。都在 CoderPad 里做。没有 trick 题,但第二题里有个关于怎么处理 null 的细微要求,我差点漏掉。
Onsite 轮次:
第 1 轮(SQL deep dive):难度和 phone screen 类似,但更复杂一点。他们在意 query 效率,不只是对不对。有一段还问到了索引策略。
第 2 轮(stats + probability):随机变量概念、A/B 测试设计、怎么处理某个 variant 方差明显更高的测试。他们还问我怎么在指标里识别 bot 流量,区分它和真实用户行为变化。这是个 CF-specific 的问题,打了我一个措手不及。进 loop 前建议想一想。
第 3 轮(case/product analytics):给一个场景:Cloudflare 的某个产品指标周环比掉了 15%,让你讲诊断流程。很标准,但他们想看你能想到网络相关的原因(BGP 更新、新 anycast 节点、攻击流量暴涨),不只是泛泛的“看看是不是 bug”。
第 4 轮(behavioral):和其他岗位一样,具体可参考这里另一个帖子。
Python 在需要写一点代码的环节完全够用。我这次 loop 没被问 ML 建模,但听说看团队不同,有些 loop 会加建模。
说句实话:这里的 SQL bar 比我面过的大多数 DS 都高。如果你在的公司是 analyst 写 SQL、你主要做 modeling,建议补一补 SQL。