上周刚结束 Robinhood 的 frontend 流程,所以细节还很新。分享一下,希望能帮到别人。
recruiter screen 挺标准:30 分钟,过了一遍我的简历,他们问了我跟 React 相关的经历。recruiter 提到他们很看重性能优化和组件架构,不只是「会不会做个表单」,更像「你有没有处理过规模化的渲染瓶颈」。
technical phone screen(45 分钟): 一道 coding 题。我的是中等难度的数组/字符串操作,不算残酷。但最后大概给了 5 分钟提问,我的面试官明显在看我会不会问聪明的技术问题,而不是只问「what's the culture like.(文化怎么样。)」。
virtual onsite(4 轮,一个下午分散完成): round 1:前端系统设计。他们让我设计一个实时股票 ticker 组件。他们真正深入挖的点:websocket 管理、re-render batching、断线了怎么办、100 个 ticker vs 5000 个怎么处理。他们对具体 API 长什么样没那么感兴趣,更在意我怎么权衡取舍。 round 2:javascript 深挖。没有框架,纯 JS。closures、event loop、async/await 底层到底怎么跑。我做 React 4 年了,这一轮还是把我小小教育了一下。 round 3:behavioral。两个面试官,结构化 STAR 问题。「tell me about a time you disagreed with a technical direction(讲一次你不同意某个技术方向的经历)」和「describe a project you're most proud of(描述一个你最自豪的项目)」都问到了。整体挺常规。 round 4:debug 练习。他们给了我一个坏掉的 React app,有一些很隐蔽的性能问题(不必要的 rerender、一个触发过于频繁的 useEffect)。感觉他们用的是自研工具,不是标准 leetcode 环境。
leveling: 我面的是 IC3(他们的中级档)。他们一开始就说系统设计那轮对能否升到 IC4 权重很高。
overall 整个流程很全面,但不至于恶意刁难。时间线大概是从投递到 verbal offer 3 周。