上个月刚结束 SpaceX frontend engineer 的完整面试 loop。这次挺出乎意料的,我本来以为会是那种很标准、React 比较重的前端流程,结果不太一样。
Recruiter screen: 很正常。过一遍你的背景、为什么 SpaceX、你做过哪些上线的东西。recruiter 很快也很直接,没有寒暄。
第一轮技术面: 更像是 JavaScript 基础轮,而不是 React。闭包、event loop、promises vs async/await,还有一道关于原型链的问题。我已经四年没在面试里被问过原型链了。不难,就是意外。建议补一下 JS 核心概念,不要只会用框架。
第二轮技术面: 更偏应用。他们给了一个跟数据可视化相关的小 coding 题,基本上是让你不用库从零写一个图表组件。不算特别难,但会考你能不能不靠 package 自己把布局、状态、用户交互这些想清楚。中间还简单提到了 Canvas API。
Onsite(线上): 三轮。其中一轮是 system design,重点是我会怎么做一个实时 telemetry dashboard。这是个正经的系统题,不是前端玩具题。他们想听 WebSocket vs polling 的取舍、数据进来比 UI 渲染更快时怎么处理 backpressure,以及你会怎么组织状态来承载上千个并发数据点。
第二轮是 behavioral,用 STAR 格式。第三轮是对过往项目的深挖:"walk us through something you built from scratch and made technical decisions on.(带我们过一遍你从零做过、并且你在里面做过技术决策的东西。)"
总体感受: 他们更看重纯工程深度,而不是 React/TS 的细节。如果你是那种只会用框架、但不知道底层发生了什么的「framework developer」,这套面试会很难受。telemetry dashboard 那道题非常 SpaceX-specific,也很有意思。进去之前值得想想实时 UI 的一些模式。