顶级技术积累,独家面试资源,免费Mock直播展示
Senior @ Meta
UCSD博士毕业,前Pinterest senior MLE。在CVPR、ECCV等顶级学术会议上以第一作者身份发表过十余篇论文。研究方向集中在可解释的人工智能和鲁棒模型架构的研究。对MLE的面试技巧和得分点了如指掌,培训了团队内的数十名新同事。
Luke P
Senior @ 谷歌
前谷歌高级软件开发工程师,精通分布式系统、云计算和大规模数据处理。在顶级技术会议KubeCon和Google Cloud Next上发表多篇技术报告。专注于提升系统的可扩展性和可靠性。在Github上发布了System Design面试手册,收获上千 🌟
3-1 @ Tiktok
前TikTok工程老兵,擅长大规模互联网应用的开发与优化,专注于提升应用的性能、用户体验和平台安全性。在分布式系统、微服务架构和实时数据处理领域有深厚的技术积累。专做Amazon和Meta的SDE面试辅助,一年内曾拿下超过30个 L5 offer。
Uber面经|Uber一亩三分地|VO代面|VO辅助
想要和我们的技术团队进行一次免费的沟通?
我们会直击要点,回答你的所有疑问,并介绍我们的服务。
还有顾虑?
我们可以提供免费的vo mock直播展示,我们的团队到底有多少水平,你说了算。
Uber VO 面试的流程一共四轮,分别是两轮 coding(算法和数据结构)、一轮系统设计、一轮BQ。整体节奏紧凑,面试官都很专业,考察点覆盖得比较全面。
第一轮 coding 偏算法,题目是 在两个数组中找所有 anagram 对的索引。输入是两个 string 数组 A 和 B,返回所有 (i, j) 使得 A[i] 和 B[j] 是字母异位词。我的思路是:先把每个字符串排序后用一个 map 存每个词的 canonical form,接着分别在两个数组中建立映射,然后遍历所有可能的匹配组合生成索引对。面试官在代码写完之后重点问了时间复杂度,还问了如果两个数组非常大,有没有更省内存的方式(比如只用 char count 代替排序字符串)。
第二轮是经典的 数据结构设计题。题目是实现一个数据结构,支持以下操作:insert(val), remove(val), getRandom(),并且都要求 O(1) 时间复杂度。我用了一个 list 搭配一个哈希表来记录元素和其索引位置,插入和删除都可以通过 swap trick 来保持 list 连续性。getRandom 直接用 random.choice(list) 实现。面试官接着问我如果这个数据结构需要支持重复元素该怎么改,我讲了如何在哈希表中存 set 来记录所有索引的位置。
第三轮是系统设计,题目是设计一个类似 Uber 的 ETA预估系统。面试官限定了 scope,强调要 focus 在 “车辆位置汇报 + ETA 算法 + 查询服务” 上。我从整体 pipeline 出发,分为三部分:第一是 vehicle location service,每隔几秒上报车辆坐标;第二是 ETA estimator,会根据历史行驶速度、交通状态等因素做动态估算;第三是 client-facing 的 query API。我提到了可以用 Kafka 做实时数据流,用 Redis 做位置的缓存,ETA 模型可以离线训练但需要在线推理。面试官追问了如何处理大城市的车辆分布热点、如何扩展到支持不同城市的模型,以及如何 rollback 一个 buggy ETA 模型版本。
第四轮是 BQ,面试官是个 EM,语气轻松,但问得很深入。他让我举例:"Tell me about a time you had to disagree with a teammate." 我讲了一个我在项目中因为数据质量和数据团队有分歧的经历,强调了如何用事实说话、一步步推动对方接受我的观点。还有一个问题是 "Describe a technically challenging bug you debugged",我讲了一个在异步多线程环境下的内存泄露问题,怎么一步步缩小范围,最终通过修改线程池的行为解决。面试官很在意细节,尤其是你有没有理解当时发生了什么,怎么验证的,怎么确保同类问题不会复发。
整体来看,Uber 的 SDE 面试非常系统化,算法题虽然不是很 tricky,但会要求你做 clean implementation 和合理的复杂度分析;系统设计有一定深度,建议大家提前准备好高频场景如位置服务、实时数据流、rate limiter 等;BQ 部分不走过场,建议准备一些有冲突、有技术挑战、有 ownership 的故事。只要你能讲清楚 trade-off 和真实的经验,面试体验还是挺正面的。
求职辅助服务,是关于时间和品质的较量。咨询 Alpha 小助手,获取最专业的Tech求职辅助。
