今年早些时候我完整走了一遍 UPS software engineer 的面试流程,岗位是 senior backend,在他们物流平台团队,base 在 Atlanta。下面是实际发生的情况。
Recruiter screen(第 1 周)。 标准的介绍电话,30 分钟。Recruiter 会问你有多少年经验、目前的薪资预期,以及是否需要搬迁。他们也挺直白:招的是 Atlanta 或 Louisville 的线下/混合办公团队。如果你不能接受非远程,这点最好早点知道,免得浪费时间。
技术电话面(第 2 周)。 1 位工程师,45 分钟。发了一个 CoderPad 链接。两道题:一道中等难度的数组操作题,以及一道基于他们口头描述的 schema 写基础 SQL 查询。两题都像热身题,不是那种故意坑人的。他们最后还问了一个偏简单的系统设计:「how would you design a package tracking notification system?」(你会如何设计一个包裹追踪通知系统?)我讲了大概 10 分钟,他们没有深挖太多。
Onsite / 虚拟 onsite(第 4 周)。 4 轮,每轮 45-50 分钟。 两轮 coding。基本都是 LeetCode medium 的区间。有一轮出了图遍历。 另一轮是动态规划,但不是那种特别折磨的。 一轮系统设计。细节我在我发的另一个帖子里写了。 一轮 behavioral。这个我也单独写了。
整体时间线: 网上申请后 9 天收到回复,第 2 周做 screen,第 4 周 onsite,第 6 周拿 offer。对一家非 FAANG 公司来说比我预期快。总计:从第一次联系到 offer 大概 6 周。
几个让我意外的点。 UPS 的技术面是真的有一套 loop 的。我本来以为物流公司流程会比较走过场,结果比我面过的一些 Series B startup 还更结构化。工程师很强,问的问题都很实在,而且在系统设计上真的会 challenge 你的选择。
薪资比 FAANG 低,毫不意外。如果你在意规模问题,这个岗位本身挺有意思。工程组织也有一些 tech debt(他们也承认了),但问题是真实的。