今年我面了一个 Apple frontend/web engineer 岗位,级别是 ICT4(相当于 senior)。分享一些细节,因为网上关于 frontend 的信息太少了。
先说:Apple 确实有 web/frontend 团队。很多人以为全是 Swift/Obj-C,但 App Store、Apple Music web、Apple TV+、developer.apple.com,以及一堆内部工具其实都是 web。我面的是 App Store web 团队。
技术电话面。 一小时,一个面试官。给了我一道 vanilla JS 的 DOM 操作题,不用框架。他们明确说会单独评估框架知识;电话面考的是基础。考点包括:event delegation、closure 行为、async/await vs callbacks、实现 debounce。经典 frontend 面试题,但强制 vanilla。不要只会 React。
Onsite(4 轮技术 + 1 轮行为)。 JS/基础轮:原型继承、event loop 怎么工作、一道小的面向对象题。 CSS/layout 轮:对,你没看错,专门一轮 CSS。他们给 layout spec,让我搭出来。Flexbox、grid、一些响应式行为。他们在意你理解「为什么」,而不是你会不会去 Google 语法。 React/组件设计轮:做一个小的交互组件(我拿到的是可折叠 tree),然后聊 state management、re-render 行为、性能。我提性能时讲了 memoization、useMemo、大列表 virtualization。他们会建设性地 push back,我觉得这是好信号。 System design(frontend):设计 App Store 首页的规模化方案。要考虑 CDN、lazy loading、ab testing 基础设施、i18n。这轮让我意外。是真正的 frontend system design,不是那种「画几个盒子」。 Behavioral:标准 Apple 主题。协作、对模糊需求提出异议、ownership。
我希望自己多准备一点的: web 性能指标(Core Web Vitals、LCP、CLS)。system design 轮有提到,我回答得比较表面。如果你要冲这个团队,建议更深入一些。
最终拿到 ICT4 的 offer,base 大概 $185k(按 SF 等效)。加上 RSUs 首年总包大概 $280k。我接了。