上个月走完了 McKinsey data engineer 的面试流程,岗位在他们的 analytics delivery team。准备的时候几乎找不到什么信息,所以把细节分享出来。
一共四轮: Recruiter Screen(30 分钟,职业经历,基础流程安排) 和工程师的 technical screen(60 分钟) virtual onsite:两轮 technical + 一轮 PEI 和 hiring manager 的 team fit call
技术部分都考了什么
SQL 比我预期重。不是那种基础题。我遇到的有:多表 join 的聚合查询,一道关于查询优化的问题(索引,以及什么时候不该用索引),还有一道要你在别人的 SQL 里找一个很隐蔽 bug 的题。最好能在高层次上解释 query plan。
pipeline 架构题更偏设计而不是写代码。他们给了一个场景: “client 有 50 个数据源,batch 和 streaming 混合,schema 不一致,数据进到一个 warehouse,analysts 和 ML teams 都在用。” 他们想让我白板画架构:ingestion layer、transformation layer、storage、monitoring、schema evolution 策略。没有特别离谱的点,但你得真的知道为什么选 dbt 而不是别的、数据源发来 malformed data 怎么办、late-arriving records 怎么处理。
Python 只短暂出现过,问了一题我会怎么测试一个 transformation function。他们不是要你信奉完整的 TDD,只是想看你会考虑正确性。
我没想到的点
一半的对话都是 business context。他们会把每个技术问题都锚定在「一个 client 在做 X,analysts 需要 Y」。所以你得把技术选择和非技术人关心的结果连起来。这一点比我面过的任何纯 coding 公司都更 McKinsey。
另外,DE 岗的 PEI 跟 DS/PM 们描述的格式一样。早点把故事选好,数字要熟,做好被深挖的准备。
节奏 整体比纯 tech 公司慢。recruiter 很及时,但每轮之间会空一周。整体从开始到 offer 大概 6 周。