刚结束 Databricks 26NG VO 的全流程面试,整体体验非常好。Databricks 的面试官都特别友善,技术讨论的深度也很有意思。HR 的反馈速度在大厂里算顶级的,从初面到 onsite 安排基本是当天或隔天就出结果。
最深的印象是这家公司特别重视分布式系统和并发编程,这和很多互联网大厂侧重点不太一样。

Databricks 26NG 整体流程
技术电面 → HR 安排 → VO 四轮(2 Coding + 1 BQ + 1 System Programming)
整个周期从初面到最终反馈大概 3 周,速度在大厂里算快的。每一轮结束都会及时给反馈,这点体验确实好。
整体流程
技术电面 → HR 安排 → VO 四轮(2 Coding + 1 BQ + 1 System Programming)
从初面到最终反馈大概 3 周,在大厂里算快的。每轮结束都会及时给反馈。
技术电面
题目是 Find Optimal Path,在加权图里找最优路径,用 Dijkstra 加优先队列的标准做法就能写。
面试官追问:如果不限制交通方式,比如可以走路、坐公交、开车,成本和时间都不一样,怎么建模。我的思路是把边的权重改成多维(时间、成本等),再按多目标去优化,近似 Pareto 最优。对方认可了这个方向,没有继续深挖。
下午就通知电面过了,当天 HR 直接来聊 onsite 安排。
VO:一天四轮
约在两周后,一天四轮,每轮大约 45 分钟到 1 小时。用 CoderPad,可以跑代码。面试官大多是华人或亚裔,氛围比较轻松。
Coding 1:House Robber 环形变种
经典打家劫舍,但房子围成一圈,头尾不能同时抢。
思路是拆成两种线性情况:不抢第一间,或不抢最后一间,分别做标准 House Robber,再取较大值。空数组、只有一间房子的边界要单独处理。时间 O(n),空间可以压到 O(1)。
Follow-up 问如果房子之间有额外依赖关系怎么处理。本质还是 DP,只需调整状态定义,框架不用大改。
Coding 2:Delete Interval + 流式处理
前半部分是区间删除:给定一批区间和一个要删的区间,输出删除后的结果。需要分清完全不重叠、部分重叠、完全包含这几种情况,把剩下的片段拼回去。
后半部分升级成流式:删除请求不断到来,每来一个就要更新当前区间集合。可以用列表维护,删除是线性的;区间很多、更新很频繁时,可以考虑线段树把操作压到对数级。对 NG 岗位,把简单方案讲清楚通常就够。
这轮我先花几分钟把重叠方式、是否需要实时输出等细节和面试官对齐,对方对澄清问题反应不错。
Behavioral 轮
先双方简单介绍,再围绕简历项目深挖。技术选型、为什么这么做、核心挑战,都要能讲清楚。
冲突处理问了一次推荐系统里的意见分歧:一方想上更复杂的特征,一方担心维护成本。我提议先做小规模 A/B 验证收益是否值得代价,最后用数据推动了一个折中方案。面试官对「用数据做决策」这一点比较认可。
最自豪的项目被追问了大约半小时,包括为什么做、最大难点、怎么衡量结果,以及「如果重做会改什么」。我提到会更早加监控和告警,而不是等问题暴露再补,对方觉得这体现了工程成熟度。
System Programming 轮
这是 Databricks 比较有特色的一轮,更偏并发和底层实现,不是传统的高层次 System Design。
题目围绕一个 CacheFile:可以从远程按文件名和大小取文件;client 请求会带 offset 和 length,要求高效存取。
讨论重点大致是:
- 多个 client 同时请求同一文件的不同部分,怎么避免重复拉取
- 缓存有大小限制时,驱逐策略怎么定
- 网络慢的时候能不能预读,怎么控延迟
我的方向是:本地缓存 + 读写锁,同一文件只让一个线程去远程拉,其他人等结果;再用 LRU 做驱逐。后面聊到预读和优先级队列,时间有限,没有要求写完整实现,但思路对方表示认可。
FAQ
Q:Databricks 的四轮都很重要吗?
是的,每轮都独立打分。Coding 两轮是基础,通常不会卡人太狠,但要写出干净的代码。BQ 会深挖项目,没有充分准备的话容易显得浅尝辄止。System Programming 是最容易拉开差距的一轮,很多候选人在这里没反应过来题的方向。
Q:System Programming 轮主要考什么?
并发编程、多线程、线程安全的数据结构(LRU cache、hash map 等)、低层系统设计(文件系统、缓存策略、内存管理)。不是高层系统设计,而是实现细节和并发问题。如果你没接触过这个领域,建议提前看一些并发编程的资料。
Q:怎么准备 System Programming 轮?
查阅 Databricks 的开源项目(Spark、Delta Lake),了解他们怎么处理并发和资源管理。练习写线程安全的 LRU cache、无锁数据结构、缓存驱逐策略。模拟一下”多个线程同时请求某个资源”这类场景。
Q:BQ 轮需要特别准备什么?
准备 3-4 个有技术深度的项目故事,能讲出技术决策的原因和量化结果。Databricks 很看重”用数据推动决策”和”工程实践的成熟度”,不只是”我做了什么”,而是”为什么这么做”和”学到了什么”。
Q:Coding 题目难度大概什么水平?
Medium 为主,LeetCode 上都有。Databricks 不考 Hard 的奇怪题,但会在 Medium 题上加 follow-up。关键是代码要写得清晰,边界处理要完整,能讲清楚优化思路。
Q:电面技术过了是不是就稳了?
基本稳,通常电面过了就直接约 onsite,不会有额外筛选。Onsite 四轮全过的概率取决于每一轮的表现,不是”过了电面就 gg”这种二元的结果。
Q:Onsite 的 four rounds 是一天完成还是分多天?
一般是一天完成,从上午 9 点一直到下午 4-5 点。会有吃饭和休息的间隔,不会一轮接一轮。提前一天好好休息,面试当天保持清醒很重要。
Q:面试后多久出结果?
一般 3-5 天就有反馈。Databricks 的 HR 反馈速度在大厂里算快的,通常当周就能知道结果。
上岸经验分享
Databricks 的面试整体设计得很好,从电面的算法、onsite 的 coding 和系统设计、再到 BQ 的工程实践考察,全方位评估候选人。流程不长,但每一轮都比较实在。准备时建议把并发和缓存相关实现也纳入计划,别只盯着算法。 Interview Show 对北美技术岗 OA / VO 都有覆盖,最近在推进程的同学随时可以聊。