我在 2026 年 2 月面了 Apple 的 iOS engineer 职位 onsite。虚拟 onsite,两天共五轮(第一天三轮,第二天两轮)。分享一下真实体验。
Day 1,Round 1:Hiring manager conversation。 45 分钟。一半时间他们介绍团队,另一半问我的背景和项目。完全不技术。这轮更像建立关系,而不是评估。我问了很多问题,他们看起来很喜欢。
Day 1,Round 2:Coding。 60 分钟。两题:第一题 array/hash-map(中等),第二题二分搜索的变体(也中等,可能中等偏难)。标准 CoderPad。我在敲代码前先讲思路,感觉是对的。
Day 1,Round 3:Behavioral。 60 分钟。问协作、应对模糊、ownership。很聊天式。面试官会记笔记,但也会很自由地追问。
Day 2,Round 4:第二轮 coding。 形式和 Round 2 类似。一题递归,一题设计小数据结构(实现 LRU cache)。LRU 很经典,但他们要一个带 TTL 过期的变体。经典题,非经典追问。
Day 2,Round 5:System design。 60 分钟。让我设计一个移动端 app 的离线可用同步系统。非常贴 Apple。设备端存储、冲突解决、用户同时在 iPhone 和 iPad 编辑怎么办。他们不需要我深挖基础设施,更在意客户端架构选择。
时间线:Day 2 后 6 个工作日拿到 verbal offer,再过 3 天拿到 written offer。从第一次 recruiter 联系到 verbal 一共 7 周。
对我来说最难的是 LRU + TTL 的追问。我做出来了但不够干净。他们没有因此把我刷掉,所以我觉得他们看的是整体表现,而不是一次失误。
5 条回复
frontend_fran (Primly starter)
据我所知,在 LRU 上加 TTL 扩展其实是一个很常见的 Apple 追问。他们更想看你怎么在已有方案上做扩展,而不只是把基础情况写对。知道他们不指望你把它做到完美也挺好。
由 AI 翻译,查看原文
newgrad_neil (Primly starter)
总共 7 周算挺正常的吗?我 recruiter screen 之后到第 4 周了,开始怀疑是不是出岔子了。
由 AI 翻译,查看原文
mobile_mara (Primly starter)
4 周一点都不奇怪。Apple 就是慢。只要你没收到拒信,而且 recruiter 还在回复,你就还在流程里。如果你已经 2 周没消息了,我会给 recruiter 发封礼貌的 follow-up 邮件。
由 AI 翻译,查看原文
infra_ines (Primly starter)
对 mobile 来说,问离线可用的 sync 很合理,毕竟 Apple 在这块投得挺多。如果你面的是任何会碰到 CoreData 或 CloudKit internals 的角色,花时间把整体 sync architecture 的大框架搞清楚很值。
由 AI 翻译,查看原文
Primly Team
在 Apple 风格的 onsite 里,很多人容易低估的一环是面试官之间最后形成的debrief 叙事。即使每一轮看起来是分开的(HM chat、两轮 coding、behavioral),最终的决定往往取决于:大家能不能讲出同一条关于你的故事:你在什么 level 上做事,你能端到端负责什么,你怎么处理模糊和不确定性。
一个很实用的做法是,提前把你的回答结构化,让面试官更容易在 debrief 里「带走」: 1–2 句交代背景(团队、约束、什么算「做得好」) 你具体做了什么以及取舍(你刻意没做什么,为什么) 信号(延迟/可靠性/质量指标、测试策略、回滚方案) 协作时刻(分歧、对齐、解卡)
一个常见翻车点是:要么影响讲得太空,要么代码细节讲得太碎,但没有把决策和产品或质量连起来。
做过 Apple onsite 的同学:你观察到面试官跨轮次最常记下或反复追问的是什么?
由 AI 翻译,查看原文