上个月走完了 mercury 的 data engineering 流程。分享笔记,因为我自己面之前也找不到任何有用的信息。
recruiter screen 挺标准的,30 分钟。她问了我 pipeline 背景、用过哪些工具(dbt、airflow、spark 等),以及做过什么规模。没有套路,就是纯好奇。
然后是 take-home。他们给了一个很乱的数据集,让我写 SQL 回答几道业务问题,然后解释如果要每天在大规模上跑,我会怎么做。我用了 window functions、CTEs、一两个 join。数据是刻意弄脏的,所以一部分考点是你能不能抓到 null 和重复行。不难,但我花了大概 2 小时。他们说 90 分钟。别太赶。
technical screen(视频,60 分钟)。先做 live SQL,跟 take-home 类似但题是新的。面试官是实际的 data engineer,不是照稿念的人。我们还讨论了一个 pipeline 设计题:给定来自多个来源、不同节奏的 event data,设计一个系统,让它在 15 分钟内可查询。我画了 kafka -> flink -> warehouse 的方案,聊了 late arrivals 和去重。他们会 push back 一点,看你会不会为自己的选择辩护,还是直接怂。要辩护。
final loop 是连着 4 轮:pipeline design(更深的版本)、data modeling(star schema vs wide tables,什么时候用哪个)、跨团队协作(问你怎么跟 analytics engineers 和产品合作),以及 values/culture fit。
看起来重要的点: 你得熟悉 dbt 和现代 warehouse 工具链(他们好像用 snowflake) 他们很看重数据质量:你怎么在上游发现问题,而不是只会在下游补救 culture 轮不是走过场。他们会具体问你什么时候 push back 过 stakeholder
整体流程设计得不错。面试官明显提前对过信息。offer 对一家 series C fintech 来说挺有竞争力,不过我最后去了别的。欢迎提问。