上个月刚结束 Apple data engineer 面试 loop,目标是 E4 level,AppleID / IAM data platform 团队。写下来是因为我准备时网上几乎没有有用的信息。
一共 5 轮:1 个 recruiter screen,1 个 technical phone screen,然后 3 个 onsite(2026 年都是线上,但他们还是叫 onsite)。
Technical phone screen。 一小时,面试官是 staff DE。一半 SQL,一半 system design lite。SQL 是多步骤题:找过去 7 天里每个国家活跃 session 数最高的 top 3 设备,还带一些去重细节。window functions、CTE。不是简单题,但也不是故意绕你。另一半是聊我做过的一个 pipeline,我怎么处理 late-arriving data,我们的 SLA 是什么。
Onsite 轮。 第 1 轮是纯 SQL 和数据建模。给一个 schema(events 表、user 表、device 表),让我回答 4 个逐步加难的问题。最后一个要算 rolling retention 指标。window functions 要烂熟。 第 2 轮是 pipeline 架构。"Design a real-time anomaly detection pipeline for App Store purchase events at Apple's scale. (为 Apple 这个规模的 App Store 购买事件,设计一个实时异常检测 pipeline。)"(为 Apple 这个规模的 App Store 购买事件,设计一个实时异常检测 pipeline。)他们很在意 exactly-once semantics、Kafka consumer 批处理中途挂了会怎样、你怎么处理 schema evolution。我讲了 Flink/Spark Structured Streaming;他们觉得用哪个都行。 第 3 轮是 behavioral。常规问题,但带 Apple 风格:他们会猛追「owning the outcome」和跨团队协作。想想你什么时候 push back 过 product,或者说服过怀疑的 stakeholder。他们很爱挖你是否能自主推进。
我没想到的点。 几乎没有 Spark 细节背诵题。比起纯吞吐,更强调数据质量和 pipeline 可观测性。他们会问你怎么监控一个 pipeline,以及要对哪些指标报警。
从 recruiter 第一次联系到拿 offer 总共大概 7 周。debrief 花了快两周,真的很煎熬。
如果你在面那边的 DE 岗,欢迎来问更具体的。