我走完了 IBM 的 data engineer loop,面的是 IBM Cloud 某个数据平台团队的 senior DE 岗。分享一下,因为 DE loop 和 DS loop 在一些点上差异很大,职位描述里不太看得出来。
流程长这样: recruiter screen(30 分钟) 和团队里的一个 DE 做 technical phone screen(45 分钟,主要 SQL 加一道系统题) take-home:设计一个数据摄取 pipeline(48 小时,交付形式是 design doc,不是代码) final round:两位 engineer 加一位 manager 的 panel(总共 2.5 小时)
SQL 部分: 比你想象中更偏分析型 SQL,哪怕这是个「pipeline」岗。问了 window functions、如何处理 slowly changing dimensions(特别是 SCD Type 2),还有一道题是写 query 去检测重复记录,要求用基于 business key 的去重策略。这就是经典的「给你一坨很脏的数据源,把它洗干净」的问题。
pipeline 设计 / systems: IBM 的场景非常 enterprise,所以「pipeline」经常指从 mainframe、legacy COBOL 输出文件、或者 SAP 做 ELT。我的 take-home prompt 是从本地 on-prem Oracle 数据库 ingest 到云数据仓库。他们想看:增量加载策略、schema 演进处理、错误恢复、可观测性。
如果你的 pipeline 经验全是 cloud-native 的 kafka/spark,你也能答,但得做一层「翻译」。答案的灵魂是一样的(幂等、at-least-once vs. exactly-once 交付、监控),只是工具不同。
他们提到的 tech stack: 聊天里提到了 IBM DataStage,还有 IBM Data Fabric。至少概念上知道这些名字会有帮助。我没用过 DataStage,但我解释了它大概对应我用 Airflow/dbt 做过的东西,他们也能接受。
final panel behavioral: 跟 IBM 其他岗位的主题差不多:stakeholder 管理、处理模糊、你失败过的一次经历和学到了什么。要有真实故事。我拿到的 DE 专属 behavioral 问题是:「tell me about a time a data pipeline you built caused a downstream problem for a business team. how did you handle it.」典型的凌晨 3 点事故场景。提前准备一个故事。