我刚结束了他们 enterprise data and analytics group 的 Citi data engineering 面试。这里来个真实拆解,因为外面的准备资料基本都是泛泛的“准备 SQL”,根本没说清具体考什么。
一共五轮。先 recruiter screen,然后两天线上四轮技术/behavioral。
SQL 轮比我预期重。 不只是写个 query。他们给了我一个金融交易系统的 schema,让我先找出一条慢 query 的性能瓶颈,然后写一个优化版本。我们聊了索引策略、分区,以及怎么看 query plan。这不是 LeetCode SQL,这是“你维护过仓库”的那种 SQL。做了几年 DE 的问题不大;如果你的 SQL 大多是 analyst 级的 SELECT,你会很吃力。
pipeline 设计。 这轮反而是我最喜欢的。典型的数据系统设计:设计一条 pipeline,摄取实时交易事件,按客户聚合,处理 late arrivals,并落到 data warehouse。我讲了 Kafka 做 stream、spark structured streaming 做处理、delta lake 做落地。他们问了 exactly-once semantics,我就深入展开了。至少要能高层次讲清 spark、flink、kafka streams 的取舍。他们不在乎你选哪个工具,在乎你能不能讲清楚为什么。
coding。 一道中等难度 python 题,不离谱。数据转换,加一些字符串解析。就是你上班会写的那种。没 DP,没图。我感觉他们只是想确认你能写代码。
infrastructure 和 ops。 这轮挺意外。他们问了编排(airflow vs prefect,我都讲了),怎么在生产上监控 pipeline,怎么做告警和数据质量。他们还问:如果 pipeline 开始悄悄丢消息,你会怎么做。我讲了一个前司的事故经历。他们很买账。
behavioral。 很直接。讲一次你从零重建某个东西的经历。讲一次你和 stakeholder 有分歧的经历。STAR 格式,没有奇怪的题。
整个流程大概 5 周。我聊的团队在做监管报表相关的 pipeline,这也解释了为什么可靠性和可审计性会反复被提到。
我的 offer:具体数字不说了,但 2026 年 NYC 的 senior DE level,大型金融机构的正常区间。不是 FAANG,但很扎实,而且福利确实不错。
有问题欢迎问。