上个月我在 Square 面了 senior frontend engineer 这个岗位。最后拿到 offer。写点笔记分享一下,因为偏前端的准备思路真的很难找。
流程 5 轮: Recruiter + hiring manager 通话(背靠背,同一天) 前端 coding 轮 System design(偏 UI) Behavioral 和 team lead 的一轮短 code quality + 架构聊天
前端 coding 那轮最有意思。不是 LC 数组题。他们给了一个小组件题:做一个 mini-table,支持列排序和基础筛选。框架不限制,我用 React 因为我熟。他们在看我怎么拆解问题、怎么处理 state、会不会在简单方案之前先上复杂方案。有个点被提到:无障碍。面到一半我需要加键盘导航,并解释我的思路。好在我对 aria-roles 还算熟。
UI system design 这轮很特别,很多人不准备。我的题是:给一个小商户设计支付确认流程,需要同时支持 web 和嵌入式 mobile webview。我们聊了:组件层级、规模化的 state 管理、网络失败处理、offline-first 的考量(Square 做 point-of-sale 确实要处理这些)。我花了大概 20 分钟只讲 loading state 模式和错误恢复,看起来很加分。
Behavioral 覆盖:我什么时候 push back 产品方向、跨团队协作、以及「讲讲你对前端性能的思路」。性能那题不算严格意义上的 behavioral,更像技术对话。
最后的 code quality chat 是和 tech lead,比较随意,更像聊一聊我认为什么是好的前端工程。我讲了组件 API 设计和测试策略。
如果从零开始准备:重点放在 UI system design(大多数人不做)、补无障碍基础,并准备一个你从零设计过复杂 UI 组件的具体故事。