两周前刚结束 mercury 的 frontend engineering loop。senior 级别,remote-first 岗。分享一下,因为大部分前端面试建议都太泛了。
recruiter 很坦白:mercury 是一个 fintech 产品,对 UI 质量和正确性要求很高。dashboard 上任何东西坏了,可能就会让真实客户看到错误的财务数据。这个 framing 我整个 loop 都一直记着。
technical screen(60 分钟):先来了一道原生 JS 题,不用框架。他们想看我怎么理解 DOM 和事件传播,而不是依赖 React 抽象。不是陷阱,但如果你在 React 世界待太久没碰基础,建议补一下。然后我们一起做了个小组件:一个带排序和分页的数据表格。更看沟通和设计取舍,不是拼手速。
onsite(线上,4 轮):
性能和架构轮。聊渲染策略,怎么在浏览器里处理大数据集又不把性能拖垮。virtualization、debouncing、memoization 的取舍。我感觉他们确实在做很多表格类 UI,因为产品本身是 dashboard。
状态管理深挖。他们不迷信 redux、zustand 或 context。他们想听我的心智模型:什么时候 local state 够用,什么时候要上提。我讲了一个以前工作里我们过早过度设计 state,后面付出代价的真实例子。
可访问性和可靠性轮。挺意外的。一整轮聊可访问性(aria 属性、键盘导航、screen reader 测试),也聊当 API 很慢或返回错误时,你怎么让 UI 优雅降级。fintech 的背景让这些比大多数产品公司更重要。
behavioral。标准但更具体。「tell me about a time you caught a frontend bug that had downstream financial impact(说说一次你发现了一个前端 bug,而且它对下游财务产生了影响)」是他们真的问过的问题。
我拿到的 offer:senior 级别,remote,TC 大概 210-230k。跟我看到的同阶段公司差不多。不是 FAANG,但也不差。
总体感觉 mercury 是个真的在意工艺的地方。不是 leet-code 折磨。