刚面完一轮 JPMC frontend engineer,岗位在他们数字银行产品团队。写一下是因为银行的 frontend 面经相对 FAANG 那套基本不存在。
我的背景:4 年经验,主要 React,带一点 Vue,在现公司做过 design system 相关。投的是中级 / 按 JPMC 内部定级叫「associate」。
流程:online assessment,recruiter call,两轮 technical,一轮 behavioral。总共四轮,大概三周压缩完成,对大银行来说挺快。
Online assessment 是很基础的 JavaScript 题。不是 React,不是 TypeScript,就是 vanilla JS。我需要实现 event delegation,从零写 debounce 函数,还有一道 DOM 操作题。如果你这几年只写框架,最好回炉一下核心 JS,不然会被教育。
Technical round 1 是屏幕共享的 live coding。他们让我用 React 做一个简化版可排序表格。函数式组件、hooks、不能用外部库。他们明确说 sort 不能用库。比起我能不能写完,他们更看我怎么拆组件和管理 state。
Technical round 2 更偏架构:怎么组织大型 frontend 应用,复杂表单的 state 怎么处理,可访问性怎么做。可访问性问题不是阴招,他们是真的在意。金融应用有实际的可访问性要求(会提到 WCAG 2.1、Section 508 compliance),他们比我面过的大多数科技公司都更重视这一块。
Behavioral round 是 STAR。三道题:你 push back 一个设计决策的经历,你快速学习一件新东西的经历,你怎么改进接手的遗留代码库。
让我意外的是:他们问测试比我预期多。unit tests、integration tests、以及我对「测试组件行为 vs 测实现细节」的看法。我给了个真实的答案:更偏测试用户可见行为。这个反而聊得很顺。
offer 大概在 NYC associate level 的 $115-125k 区间。JPMC 的 work-life balance 口碑比较两极,但这个团队特别跟我说 frontend 岗没有 on-call 预期,这对我来说是个加分项。