上个月走了 Adobe frontend engineer 的面试流程,岗位在 Creative Cloud web team。下面是过程原样复盘。
Recruiter screen(30 分钟): 介绍、岗位概览、基本的「why Adobe(为什么选择 Adobe)」聊天。她提到团队主要用 React,也有一些 legacy Angular 正在慢慢迁移。这点挺有用。
Technical phone screen(60 分钟): 一道 coding 题,偏 JavaScript。他们让我从零实现一个 debounce function,然后让我加一个 leading edge 选项。我之前在 LeetCode 周边网站做过,但加功能的那一步还是让我有点措手不及。然后问了一个 CSS 题:解释 stacking context 是怎么工作的,以及 z-index 什么时候不会按你预期生效。我觉得这一题能拉开差距。
Onsite round 1:UI implementation(75 分钟): 做一个带分页的列表组件。不用框架,vanilla JS + HTML,在一个类似 CodeSandbox 的环境里。他们非常看重 accessibility:键盘导航、ARIA labels、focus 管理。这轮对我来说最难。如果你是 React dev,但很久没写 vanilla JS,建议补一下。
Onsite round 2:system design for frontend(60 分钟): 设计一个 drag-and-drop editor(很贴合 Adobe 的产品)。我们聊了 state management 的思路、undo/redo history stack、大画布下的性能,以及我会怎么在高层处理协作编辑。和他们实际做的东西高度相关。
Onsite round 3:behavioral(45 分钟): 标准 STAR 格式。跨团队协作、技术分歧、压力下做 tradeoff 的经历。
HM round(30 分钟): 更像聊天。她问我的职业目标,以及我想继续做 individual contributor 还是往 tech lead 走。
整体感受:他们很认真对待 frontend craft。这不是「后端跑起来就行」的那种前端。如果你喜欢 accessibility、性能和组件设计,氛围会很对。