上个月刚走完 CrowdStrike frontend engineer 的完整 loop。发出来是因为大多数 CrowdStrike 面试内容都偏 backend/security,frontend 相关信息很少。这次是他们 platform UI 团队的 mid-level 职位(Falcon console,不是外部产品)。
整个 loop:5 轮。
先 OA。两道 coding 题,标准的 HackerRank 风格。不是 frontend 专项题,就是普通算法题。别指望 OA 会考 DOM 操作,它就是通用 coding。这点我心理上有点被绊到,因为我以为会是 React,结果是数组和树。
javascript 深挖。这是最有意思的一轮。他们更重语言本身,不重框架。closures、prototype chain、event loop、promises vs async/await 的底层机制。有一道我没答得特别完美的问题:解释一下当你 await 一个已经 resolved 的 promise 时会发生什么。我大体说对了,但 microtask queue 的解释有点打结。准备的话一定要把 event loop 复习透。另外还问了:浏览器怎么处理 reflow vs repaint,以及什么时候会影响性能。
frontend system design。设计一个实时 dashboard,展示上千个 endpoint 的安全告警数量,每隔几秒更新一次。我讲了 WebSocket vs polling、怎么在不重渲整棵组件树的情况下处理 state 更新、长列表 virtualization、debouncing/throttling。他们挺投入的。关键是把你的选择和真实用户体验绑在一起,而不是只追求技术优雅。
React/组件轮。在共享环境里 live coding:做一个可筛选的数据表格,带排序。他们给了一个 fake API。我用 hooks,没搞花活。他们看重代码组织,以及你是否处理 edge cases(loading state、empty state、error state)。开始写代码前,先花 10 秒把每个 state 说清楚。
behavioral。讲一次你提升 UI 性能的经历。讲一次你和 designer 有分歧的经历。比较标准。
让我意外的点:他们比起 React 细节,更在意浏览器基础。对一个复杂的安全产品来说很合理,你不是在随便写 CRUD 界面。性能相关的点在好几轮里都出现了。
offer 我拿到的是:base $145k,Austin。RSUs $140k/4yr。第一年大概 $180k TC。