刚面完上周的 Zoom DE interview loop,对应的是 senior data engineer 角色。这个方向有点小众,所以我就记录一下,因为网上基本找不到他们 DE 流程长什么样。
流程概览: recruiter screen、HM screen,然后 4 轮 virtual onsite。我的全程远程(我不在 Bay Area)。
round 1: SQL。 45 分钟。表结构是 Zoom 的 meetings、users,以及 meeting events 日志(join、leave、audio mute 等)。题目: 找出参与人数 >5 的会议里,按 host department 分组的平均会议时长 找出至少有一个参与者迟到超过 10 分钟加入的会议(需要做时间差计算) 最难的一题:从原始 event logs 构建一个「user activity funnel」。数据很脏,事件乱序,还有 null 需要处理。
这些我都能做,但 funnel 那题基本把我做到时间线附近。这个级别的 SQL 其实很吃你对可读性的把控,比如什么时候用 CTE、什么时候用 subquery。
round 2: pipeline design。 system design 的 DE 版本。他们给了一个场景:Zoom 想把所有客户端(desktop、mobile、web)的 clickstream 数据近实时 ingest 进来,用于实验和分析。设计端到端 pipeline。
我讲了用 Kafka 做 event streaming,Spark Structured Streaming 做处理,落到 data lakehouse(Delta Lake / Iceberg)。他们很在意 schema evolution、late-arriving data,以及 exactly-once semantics。deduplification strategy 是一个很大的子话题。
round 3: coding。 更像 Python 的数据转换 coding 题。操作一个 nested JSON event log,计算派生指标。不偏算法,更偏实用。
round 4: behavioral。 常规题:你做过的一个 pipeline 在生产环境里挂了,后来怎么修的。准备一个靠谱的 war story。
整体感受: 流程很顺,面试官也很懂。没有阴招题。他们想要的是能做可靠、可扩展的数据基础设施的人,而不只是会写花活 SQL。