刚走完 Nike.com 的 frontend engineer 面试,是一个 mid-level 岗位(大概 3-6 YOE)。这个是 Digital Products 组织,支持 Nike.com,不是 apps 那边。下面是我的观察。
流程是:OA、technical phone screen,然后 virtual onsite 三轮。从第一次联系到结束总共大概四周。
Online Assessment。 偏 JavaScript。两道题:一道是 DOM manipulation(从零做一个小交互组件,不用框架),另一道是算法题,本质是数组操作,但包装成一个 UI 相关场景。难度中等。DOM 那题更关键,他们明确在测你需要时能不能写 vanilla JS。
Technical phone screen。 跟一个 senior frontend engineer 聊一小时。先深挖我最近的项目,然后给我一道 live coding:做一个带 debouncing 的 search autocomplete 组件。我需要处理 async fetching、展示 loading state、优雅处理错误、输入为空时清空结果。很贴近真实前端问题。他们更看我怎么把思路讲出来,而不是做得多完美。
Onsite round 1:React + state management。 给一个 spec,做一个小的 multi-step form。我用了 hooks,本地管理 state,并解释为什么这个规模不需要 Redux。他们问了 controlled vs uncontrolled components、我为什么做这些 hook 选择,以及如果上生产我会测什么。需要懂 React 18,如果你没看过 concurrent features 和 Suspense,至少快速扫一遍。
Onsite round 2:Web performance。 这轮让我和我聊过的其他候选人都挺意外。他们给了个假设:Nike.com 的产品列表页,LCP 是 4.2s,你会怎么做。我讲了图片优化(他们很多大 hero 图和产品摄影)、lazy loading、critical CSS、bundle 分析、CDN edge caching、以及组件级 code splitting。他们对每个点都会 push back,这挺好,感觉像真实的技术讨论,不像答题。
Onsite round 3:Behavioral。 三个 STAR 问题。一个团队冲突,一个高压下交付,一个是你如何为一个技术决策发声但 stakeholders 反对。
Beaverton 的 mid-level comp 大概 145-155k base。听说 Beaverton 的生活成本调整是真的,但从湾区过来还是会有点刺痛。
如果从零准备:扎实的 React hooks、vanilla JS DOM、一场认真学 web performance(Core Web Vitals、LCP/CLS/FID),再加 behavioral 故事。别忽视 performance 那轮,这才是区分点。