刚做完 PayPal frontend engineer 的面试 loop,岗位是他们 checkout experience team 的 mid-senior SWE。发出来是因为大多数关于 PayPal 的帖子都偏后端,而前端有一些特定的坑。
整体拆分:一轮 recruiter screen,一轮 45 分钟技术电话初筛,然后 4 轮线上 onsite。
Phone screen:他们让我写一道纯 vanilla JavaScript。没有 React。让你从零实现 debounce,然后扩展支持 leading-edge 选项。我当时有点被打懵,因为我默认会用框架。JS 基础要扎实:closure、event loop、prototype chain。这些在你到框架题之前就是门槛。
Onsite round 1:coding。还是以 vanilla JS / DOM 操作为主。做一个不依赖框架的简单 autocomplete 组件。他们想看我如何手动组织 component state、处理 async(fetch + debounce)、以及做一些基础可访问性(下拉框的 ARIA attributes)。追问包括:你会怎么测试?如果有 1000 条结果,规模上哪里会出问题?
Onsite round 2:system design / architecture。设计一个支付流程的前端(不是 API,只是客户端架构)。他们想要:state management 方案、如何处理支付确认的 optimistic UI、错误状态、API 调用失败的重试逻辑。他们还特别问了我前端怎么处理 PCI compliance 的顾虑(script isolation、对卡号输入用 iframe)。这个 fintech 特有的点挺有意思。
Onsite round 3:performance。他们给我看了一个很慢的 checkout 页面 demo,让我 debug/优化。Core Web Vitals 也会提到:LCP、CLS、FID。要懂指标,也要会用 Chrome DevTools。
Onsite round 4:behavioral。标准 STAR。他们问了一次你上线的东西导致了用户可见 bug,你怎么处理。fintech 公司,他们很看重可靠性。
Offer 大概是 mid-senior level $175k TC,支持 remote。前端门槛确实高,尤其是 vanilla JS 的占比。如果你最近一直埋头写 React,很久没碰底层平台,投递前花一周补一下这个很值。