上个月我刚面完 plaid 的 frontend engineer loop。l4 level,从一家中型 fintech 跳过去。分享下笔记,因为 frontend 那轮有一些我之前没看到有人提到的怪点。
loop 结构: recruiter screen technical phone screen(45 分钟,一道 coding) 4 轮 virtual onsite:frontend deep dive、frontend 的 system design、behavioral、还有一轮 coding
frontend deep dive(最重要的一轮):
这不是考框架八股。他们不在意你背了多少 react hook。他们给了我一个场景:做一个简化版的金融数据 widget,要处理 async 数据、error states、loading states 和 a11y,然后我们一起把我的设计思路过一遍。
他们问: 多个请求同时 in flight 时,你怎么处理 race conditions? 这里你会怎么做可访问性,尤其是 screen readers 读金融数据的场景? 如果这个 widget 需要在 iframe 环境下工作(像 plaid link 那样),你会改哪些东西?
最后一个问题很 domain-specific。plaid link 跑在 partner app 内嵌的 iframe 里,所以理解跨域通信、postMessage、sandboxing,以及如何跨边界处理 auth flows,确实和工作相关。我在两轮里都被问到了。
coding 轮:
他们用的是 javascript,不是随便什么语言。我用 js 做算法题没问题,但要熟 js 的坑(closures、event loop、promise chaining)。其中一题本质是实现 debounce/throttle,然后逐步扩展成更复杂的东西。
frontend 的 system design:
given:设计一个 integration dashboard 的前端架构,用户是银行的开发者。我聊了 state management、组件库选择、客户端监控和 error tracking、大型数据表格的性能。他们会建设性 push back。
我会建议准备的人: 面试前真的用一下 plaid link 的 developer 体验 js 的 async 模式要非常熟 对 a11y 要有观点(screen readers、键盘导航、ARIA) iframe/跨域安全相关属于合理考点
整体:比我预期更难、更产品向、更不八股。感觉他们是真的想确认你能不能把东西做出来。