刚结束在 Wells Fargo 的一轮 data engineer loop。岗位在 enterprise data platform 团队,负责支撑监管报表的数据 pipelines。我有 7 年 data engineering 经验,所以目标是 senior 的 DE 岗。下面是拆解。
Pipeline / architecture 轮: 这轮就是 WF 和 fintech 或 startup 的 DE 面试不一样的地方。他们特别在意 data lineage、可审计性、以及失败恢复。问题是:设计一个 pipeline,从多个 core banking 系统 ingest 交易数据,做转换,然后输出到一个监管报表。约束:数据一旦 ingest 必须不可变(append-only),转换必须可审计(你能把报表上的一个数字追溯到产生它的原始交易),并且 pipeline 必须能检测 late-arriving data。
我画了 medallion architecture(bronze/silver/gold lake layers),用 Kafka 做 ingestion,Spark 做转换,Delta Lake 提供 ACID 和 time-travel。他们在 late-arriving data 上追得很狠。你的监管报表 SLA 是什么?如果某个源系统今天才补交昨天的交易,你怎么处理?
SQL 轮: 很重。window functions、recursive CTEs(是的,recursive),还有一个 query optimization 题:给我一个很慢的 query,让我找出慢的原因并修。这个 query 在 join key 上缺了 index,还在用 SELECT *。他们希望我先用语言说出 execution plan 的逻辑,再提出修复方案。
工具问题: 他们会具体问我 Informatica 和 Ab Initio 的经验,这些是 WF legacy 系统里用的。我没有很深的 Informatica 经验。我如实说了,然后把话题转到我会怎么快速上手。他们看起来能接受,但如果你有时间,最好补一下 ETL 工具相关概念。
Behavioral: 两道 behavioral,都是处理模糊性和跨团队协作。其中一道很具体:说说你有一次必须和一个 upstream 团队谈判 SLA、但对方一直达不到的经历。银行内部在数据归属上政治很多,这题在测你能不能外交式地推进合作,而不是动不动就 escalation。
我拿到的 offer: $161k base,10% bonus target,Charlotte 每周到岗 3 天。和我上一家公司差不多,但 benefits 更好。