3 月走完了 brex 的 frontend 面试 loop,想写个详细拆解,因为我网上能找到的信息太少了。
招聘节奏很快。recruiter 周一联系我,周四 initial screen,两周后左右安排了完整 onsite。整个 loop 一共四轮。
round 1: technical screen (60 min) 基本就是在 coderpad 的 live coding。一道题从简单开始(flatten a nested array),然后扩展成更有意思的:从零写一个 debounce function,再在一个迷你 react component 里用它。interviewer 很投入,会问 edge cases。感觉很协作。
round 2: system design (frontend flavor) 这是 brex 跟一般 frontend loop 不一样的地方。他们让我设计一个实时 spend dashboard:组件怎么拆、state management 用什么思路、websocket vs polling 的取舍、怎么处理 stale data。不是纯 DSA 轮。他们更看重你是不是按产品在思考,而不是算法。
round 3: product + behavioral 问我之前项目里做过哪些 trade-offs,现在会怎么做不一样;当设计不可行时你怎么 push back。提前准备了清晰的 STAR-format 故事,发挥不错。大概 45 min。
round 4: bar raiser-style 一个跨职能的 senior engineer。问了无障碍、性能 profiling(core web vitals, layout shift),以及过去项目里我会怎么做得不同。更偏哲学一点。
整体 loop 跨两天总共大概 4.5 小时。
level 备注:我面的是 mid-level(他们叫 L3/L4 range)。门槛挺实在,不是那种“你会不会 react hooks”就完事。他们真的同时看产品 sense 和 frontend 手艺,这点我其实挺欣赏。
stack 背景:brex 用 react、typescript、graphql。熟悉 graphql fragments 在 system design 讨论时挺加分的。
总体是正向体验。感觉是在跟真的用 frontend 的人面试。