最近刚走完 senior 的 SWE 流程,做的是 Autopilot 软件方向。我直接把实际形式讲一下,因为网上几乎没什么准确的信息。
Online assessment(OA)阶段: 他们用 HackerRank。两道 coding 题,90 分钟。我那一批按 LC 难度是一道 medium 和一道 medium-hard。OA 里没有 system design。一题是图遍历(BFS/DFS,很标准),另一题是数组操作,但加了一个约束让暴力 O(n^2) 不行,需要 sliding window 或 heap 的思路。
就这些。OA 没有 behavioral 题。有些人说有第三题,但我没遇到。
Technical phone screen(如果有): 不是每个人都有这一步。我这步被跳过了,直接进 onsite。如果有,一般 45-60 分钟,一道 LeetCode 风格题,通常 medium。recruiter 安排时会告诉你形式。
Onsite coding 轮: 两轮 coding,每轮 60 分钟。两轮都用共享写代码环境(不是 HackerRank,可能是 Google Doc 或 CoderPad,看团队)。一轮是比较直观的 medium,主要考你能不能把 edge case 处理清楚。第二轮更难,接近 hard,但一开始给了 scaffold:他们给你骨架,让你用指定的算法思路补完。
一些备注: 他们确实在意代码整洁和命名清晰,不只是跑通。有个面试官明确说「pretend this is a code review.」。 打字前先把思路讲出来。你沉默太久他们会打断。 C++ 可以,Python 也可以。他们内部很多是 C++(Autopilot 很偏 C++),但除非 JD 写了,否则 SWE 面试不要求。
总体难度:对 senior 来说是 medium 偏重。不是那种「刷 300 道 leetcode hard」的难,更像「核心数据结构要扎实,并且知道什么时候该问澄清问题」。