Uber 的工程师面试在北美大厂里自成一派:它不像谷歌那样以算法题的难度出名,也不像亚马逊那样把行为面试做成一套固定流程。它的特点可以概括成三句:第一,代码必须能跑起来,面试平台会真的执行你的代码,伪代码和口头思路过不了关;第二,系统设计紧贴自家业务,派单、定位、 surge 定价这些场景反复出现;第三,有一个叫 Bar Raiser 的跨团队面试官,专门负责守住标准,而且他的意见可能影响你的定级,而不只是通过还是不通过。这篇文章按分公司系列面经的体例,把 Uber 软件工程师的完整面试流程、高频题型、不同级别的区别、时间线、拒信处理和 H-1B 担保情况一次讲清楚。内容综合自公开面经平台和论坛上多位候选人的分享,不同团队和年份的流程会有出入,凡是不确定的地方都会注明。
先看全貌:从投简历到拿 offer 要几步
Uber 软件工程师的标准流程一般是五步:简历筛选、在线测评、电话面试、现场面试、团队匹配和发 offer。整个过程据多位候选人分享,通常需要四到六周,慢的时候可能拖到两个月。最花时间的地方往往不是面试本身,而是等面试名额:从电话面试通过到现场面试排期,经常要等两到五周,而现场面试之后出结果相对较快,有候选人两天就拿到口头 offer,也有人等了两周以上。
第一步是简历筛选。Uber 的招聘按业务线划分,出行、Uber Eats 外卖、杂货配送、货运等不同组织各自招人。内推仍然是最有效的投递方式,通过招聘官网直接投递也可以,但据候选人分享,官网投递的回复率明显低于内推。简历关的要点和别的大厂差不多:项目经历要能量化结果,技术栈要和岗位匹配,跳槽频繁或者经历断层需要有合理的解释。招聘人员会在这一阶段就初步判断把你放在哪个级别面试,这个决定非常重要,后面会详细说。
接下来是在线测评,也就是 OA。Uber 近年的主流平台是 CodeSignal,形式是 70 到 90 分钟内完成四道题,难度递进,由机器自动评分,对照隐藏测试用例,没有人工参与。需要注意的是,也有候选人报告用的是 HackerRank:有经验的候选人版本是 90 分钟两道题,需要开摄像头、全屏共享、单显示器检查;应届生版本则是 120 分钟三道题。两个平台的说法都存在,可能是不同团队、不同年份或者不同招聘渠道的区别,备考时要按 CodeSignal 的形式准备,同时留意邮件里写明的具体平台和规则。
OA 的题目以 LeetCode 中等难度为主,但据多位候选人分享,里面经常会混进一道难题。Uber 的 OA 有一个特点是它非常看重代码能不能真正运行。CodeSignal 的环境可以执行代码,所以只会讲思路、不写可运行代码的做法在这里行不通。平时练习的时候就要养成习惯:写完立刻自己构造测试用例跑一遍,边界条件、空输入、重复元素这些坑要自己先踩一遍,不要等面试官提醒。
电话面试:45 到 60 分钟的真人编程
通过 OA 之后是电话面试,一般是 45 到 60 分钟,和一位 Uber 工程师视频连线,在共享编辑器里现场写代码。通常是一到两道 LeetCode 风格的中等题,偶尔会有一道难题。题目的主题集中在图、动态规划、滑动窗口、双指针和二分查找这些高频类型上。有的候选人还会在这一轮遇到轻量级的系统设计小问题,比如设计一个短链接服务,但这不是主流,多数电话面试还是以算法为主。
数据科学岗位的电话面试不太一样,会混合 SQL 和 Python 编程,再加上统计和 AB 测试的问题。如果你面的是数据岗,不要只刷算法题,SQL 的窗口函数、连接和聚合,以及实验设计的基本概念都要准备。机器学习岗位同理,可能会在电话轮就涉及模型基础。
电话面试的通过标准比较实在:代码要能跑、复杂度要合理、沟通要清楚。面试官会看你怎么思考,而不是只看最后答案。遇到卡住的地方,大声说出你的思路比沉默更有利。写完代码后主动提几个测试用例,展示你对边界情况的考虑,这些细节往往是区分通过和优秀的关键。
现场面试:四到六轮,四个半小时的马拉松
现场面试现在基本都是线上的虚拟 onsite,一般是四到六轮背靠背进行,总时长大约四个半到五个半小时,每轮 45 到 75 分钟。轮次组合因级别和团队而异,但常见的搭配是:两轮算法编程、一轮系统设计、一轮行为面试,再加上一轮 hiring manager 的深度交流或者 Bar Raiser。有的团队还会单独安排一轮 SQL 和数据库。
算法轮是现场面试的骨架。一般是两轮,每轮一到两道题,难度以中等为主,偶尔有难题。题型上,图论、树、堆、动态规划出现频率最高。据候选人分享,现场常考的题目包括岛屿数量及其变体、会议室安排、 alien 字典、外星词典排序、LRU 缓存等经典题。另一类是面向对象设计题,比如设计停车场、设计固定房间的会议调度系统、设计定价引擎。这类题考的不是算法技巧,而是你怎么把需求拆成类和方法,怎么处理扩展性。准备时要两手抓,只刷算法不练面向对象设计,容易在这一轮吃亏。
系统设计轮是 Uber 面试里最有自家特色的一轮。题目几乎都来自真实业务:设计司机派单系统、设计外卖商家的排名服务、设计司机热力图、设计附近餐厅搜索、设计打车服务的整体架构。面试官关心的是地理空间索引、实时匹配、预估到达时间、需求高峰时的 surge 机制、服务之间的事件流动和负载分摊。回答的时候要先把需求和规模讲清楚,再画架构、再谈取舍,不要一上来就堆技术名词。高级候选人还可能遇到技术回顾:让你讲一个自己真正做过的系统,追问每一个架构决策背后的原因。
SQL 和数据库轮是很多候选人最容易轻视的一轮。部分团队会单独安排,内容包括手写查询、表结构设计、索引和查询优化。平时只刷算法的人到这里常常手生。建议准备时专门留出时间练 SQL:窗口函数、连接、分组聚合、索引选择的场景都要过一遍,至少做到看到需求能立刻写出可运行的查询。
行为面试通常用 STAR 结构,问题围绕 Uber 的文化展开。Uber 官方价值观里包括行动导向和做正确的事,面试官会通过你的经历来判断你是不是符合这些特质。准备五到六个自己的故事,覆盖冲突处理、失败复盘、跨团队合作、带新人、推动困难项目这几个主题,每个故事都要有具体的背景、行动和可量化的结果。背通用答案没有用,面试官追问两句就能分辨真假。
Bar Raiser:那个决定你级别的人
Bar Raiser 是 Uber 现场面试里最特殊的一轮。面试官来自招聘团队之外,是一位受过专门训练的高级工程师,他的职责是守住招聘标准。这一轮的形式在不同候选人的分享里差别很大,有的是一次深度的项目复盘,有的更像一次反向系统设计:拿你做过的一个系统,从头问到尾,为什么这样设计、放弃了什么备选方案、如果规模扩大十倍会怎么改。
Bar Raiser 的权重比很多人想象的大。据多位候选人分享,他的意见不仅影响通过与否,还可能影响定级:表现不够强的时候,结果不一定是拒绝,而可能是降级录取。也就是说,你以为自己面的是高级工程师,最后拿到的可能是中级工程师的 offer。这种降级在 Uber 并不少见,有候选人分享,七年经验的工程师去面中级岗位、十年以上经验的高级工程师只能面 L5a 的情况都真实存在。
应对 Bar Raiser 的办法只有一个:把自己的项目真正吃透。挑一个你最熟悉、参与最深的项目,准备好讲清楚背景、约束、架构、取舍和结果。带上架构图或者提前准备几页 slides 的候选人也不少,hiring manager 轮里也有类似的深度交流。数字要具体:系统支撑了多少请求、延迟从多少降到多少、成本省了多少,这些数字比形容词有说服力得多。
级别怎么定:面试前就要问清楚
Uber 的工程师级别从 L3 到 L8,往上还有 Fellow。常见的对应关系是:L3 是初级工程师,一般零到两年经验;L4 是中级工程师,一般两年到五年;L5a 是高级工程师,一般六年以上;L5b 是 Staff 工程师,一般九年以上;L6 是 Senior Staff,一般十年以上。需要提醒的是,Uber 官方并不公开级别和头衔的对照表,这些对应关系是 levels.fyi 等平台根据员工自报数据归纳出来的,只能作为参考。
级别差异直接决定面试内容。据多位候选人分享,L5a 及以上会考系统设计,L4 及以下则没有系统设计轮,决定因素是编程轮和数据库轮。也有一些面经平台的说法是 L4 就有系统设计轮,两种说法并存,可能是不同团队的做法不同,或者不同年份的政策有变化。稳妥的做法是:不管面哪个级别,都至少准备一套基础的系统设计框架,但把主要精力放在与自己级别对应的轮次上。
更关键的是,级别是在面试开始之前就由招聘人员定下来的。也就是说,招聘人员在简历阶段就决定了你按 L4 还是 L5a 来面,现场面试是按这个级别的标准来打分的,面完之后一般不能再往上调。很多候选人直到现场面试结束才知道自己被放在了低一级的级别上。所以一定要在电话面试之前就主动问招聘人员:我这次是按哪个级别面试的?这个级别的面试轮次是怎样的?如果级别和你的预期不符,尽早沟通比面完再争取有效得多。
级别还和薪资直接挂钩。L3 和 L5a 的总薪酬差距可以达到两倍左右,具体数字请参考本站分公司系列的 Uber 薪水包文章。面试策略上有一个现实的考虑:如果你的目标是 L5a,但招聘人员把你放在 L4,接受降级面试虽然更容易通过,但拿到手的薪酬和职级都会低一个档次,之后再升上去需要时间和业绩。是否接受,要结合自己的市场行情和时间成本来判断。
应届生和社招:同一家公司,两套打法
应届生和社招的面试流程差别不小。应届生一般面的是 L3,流程更精简:在线测评之后直接进入现场面试,系统设计轮通常会被换成额外的编程轮或者低级别的面向对象设计题。应届生的 OA 题目数量和时间也有所不同,有候选人分享是 120 分钟三道题。对应届生来说,算法基本功和实习项目是重点,面试官对系统经验的要求相对宽松。
社招候选人的流程更完整,也更看重实际经验。除了算法和系统设计,hiring manager 轮里的项目深挖和 Bar Raiser 的架构追问,占了很大的权重。社招候选人常犯的错误是只刷题不准备项目故事,结果算法轮过了,深度交流轮却答得很空。正确的做法是:算法每天练,但每周至少留出专门的时间打磨项目故事,把架构图画出来,把数字算清楚。
还有一个社招特有的坑是降级录取。Uber 内部对级别卡得比较严,候选人常常发现自己的级别被定得比现任职级低一级。有的候选人选择接受,先进来再说;也有人选择拒绝,继续面别的公司。这个决定没有标准答案,但有一点是确定的:不要在面试过程中才发现级别问题,越早问越主动。
时间线、拒信与申诉:被拒之后怎么办
从时间线来看,一个比较典型的顺利流程是这样的:投递后一到两周收到 OA 邀请,OA 通过后一周内安排电话面试,电话面试通过后两到五周排期现场面试,现场面试后两天到一周出结果。最快的候选人分享,从第一次和招聘人员通话到拿到 offer 不到三周,中间只隔了一个周末。慢的情况也很多,主要卡在排期和团队匹配环节。
团队匹配是现场面试通过之后的最后一步。Uber 会把通过的候选人和有空缺的团队对接,候选人可以和 hiring manager 再聊一次,确认团队方向和工作内容。这个环节也有可能失败:如果没有合适的团队接收,offer 可能会被搁置。所以即使现场面试通过了,也不要立刻停掉其他公司的流程,等到书面 offer 到手才算尘埃落定。
如果收到拒信,先看拒信里有没有写明原因。Uber 的拒信通常比较模板化,不会告诉你具体哪一轮没过。但你可以礼貌地回复招聘人员,询问反馈和再次申请的冷却期。据多位候选人分享,Uber 的再次申请一般要等六个月到一年,具体时间以招聘人员的回复为准。申诉成功的案例很少,正式的申诉渠道基本不存在,更现实的做法是总结教训、补齐短板,到期后再投。
有一种情况值得单独说:如果你的现场面试整体表现不错,只是某一轮失手,招聘人员有时会建议你降级录取或者换一个团队再面一轮。这种机会不是每个人都有,取决于面试官的反馈和招聘人员的判断。收到这类建议时要认真考虑,它往往意味着你离通过只差一点点。
H-1B 担保:Uber 是大户,但名额不等于保证
对需要身份支持的候选人来说,Uber 的 H-1B 担保记录是一个重要的参考。根据美国劳工部公开的劳工条件申请数据,从 2024 年 10 月到 2026 年 6 月,Uber 获得认证的劳工条件申请有 1559 份。另一家统计平台的数据显示,2025 财年 Uber 提交了 868 份 H-1B 劳工条件申请和 823 份 H-1B 申请,其中 817 份获批、6 份被拒。Uber 在全美 H-1B 担保雇主里排名第 41 位,是实打实的担保大户。
但有几个概念要分清楚。劳工条件申请只是 H-1B 流程的第一步,不等于签证获批,一份申请也可能覆盖多个岗位。劳工条件申请上的薪资中位数大约是 19.36 万美元,软件工程师这个最常见头衔的中位数大约是 18.3 万美元,这些数字是劳工部备案的薪资,不是实际到手的总薪酬,不能直接和 levels.fyi 上的总薪酬对比。
对留学生来说,Uber 也提供绿卡支持,2025 财年提交了 548 份绿卡劳工认证。不过绿卡流程的启动时间、排期和具体政策因人而异,面试阶段可以问招聘人员公司一般的绿卡启动时间,但不要把口头说法当作承诺。身份问题最好在拿到 offer 之后、签署之前,和公司的移民律师确认清楚。需要提醒的是,本文提供的是公开数据整理的一般信息,不构成法律意见,涉及个人身份规划请咨询持牌移民律师。
备考计划:八周怎么分配
如果你有八周的准备时间,可以参考这样的分配:前四周主攻算法,每天刷题,覆盖图、动态规划、滑动窗口、树和堆,目标是把 LeetCode 中等题做到能在 25 到 30 分钟内写出可运行的代码。第五到第六周加入系统设计,每周练两套,重点是派单、定位、附近搜索、外卖排名这些 Uber 业务场景,同时开始准备 SQL。第七周打磨行为面试和项目故事,写好五个 STAR 故事,反复讲给朋友听。最后一周做模拟面试,完整走一遍四到六轮的流程,练体力和时间管理。
准备材料上,算法用 NeetCode 150 这类精选题单就够了,贪多不如做透。系统设计可以参考公开的系统设计课程,但一定要结合 Uber 的业务场景自己画架构图,照搬通用模板在面试里很容易被看出来。模拟面试是最容易被忽视的一环:Uber 的现场面试是连续四个半小时的马拉松,没有练过体力分配的人到最后一轮很容易大脑空白,至少要完整模拟一次全流程。
最后提醒三件容易踩坑的事。第一,OA 平台可能是 CodeSignal 也可能是 HackerRank,以邮件通知为准,两个平台的界面和规则都要提前熟悉。第二,级别问题一定要在面试前问清楚,不要等到最后才发现自己被降级面试。第三,代码一定要能跑,平时练习就要在能执行的编辑器里写,不要只在纸上或者脑子里过一遍。Uber 的面试不考最难的题,考的是在真实约束下把事情做对的能力,这一点从 OA 到 onsite 始终如一。
本文内容综合自 InterviewCrunch、AceOffer、SupaCV、Gotham Loop 等公开面经平台 2025 年 10 月至 2026 年 10 月的候选人分享,以及美国劳工部公开的 H-1B 数据。不同团队、年份和招聘渠道的流程存在差异,OA 平台、系统设计轮的级别门槛等细节在不同来源中有出入,文中已注明。请以招聘人员提供的最新流程为准。










暂无评论内容