Databricks · Primly 社区

Databricks senior / L5 system design 面试:会考什么

remote_swe_42 (Primly starter) · 4 条回复

刚结束 Databricks senior SWE loop(他们内部叫 L5,大概相当于 Google 的 L5 或 Meta 的 E5),趁还热乎把 system design 部分写一下。

system design 这一轮是 60 分钟。单面试官,人挺 senior 的。他们给我的题基本是:设计一个分布式数据处理 pipeline,支持高吞吐的 streaming ingestion,并且做到 exactly-once 语义。非常符合 Databricks 的风格,毕竟他们有 Spark / Delta Lake 的底子。

几个比较突出的点:

他们更看重权衡,而不是教科书答案。 我一开始还在按组件往外报,面试官很早就打断我,问了句「what's the cost of that choice?(那个选择的代价是什么?)」我立刻切到 trade-off 模式,房间里的氛围明显就变了。

容错和幂等性会被狠狠追问。 不只是「加个重试」这种,而是会具体问:consumer 在 mid-batch 挂了怎么办?你的 checkpointing 策略是什么?这其实直接对应 Delta Lake 的实际工作方式,所以如果要准备,建议看看 Delta 的 ACID transaction model 和 WAL。

数据本地性很重要。 他们问我在分布式聚合里怎么处理 data skew。没怎么在 Spark 或类似系统里踩过 skew 的话,建议把这块的故事理清楚。一个比较稳的回答是:用 partition size 的 percentile 统计来检测,然后按 salted key 重新 repartition。

会追 scalability 数字。 「假设每天进来 10TB 的 events,带我走一遍你的容量估算。」很标准,但他们希望你真的把数学在嘴里算出来。

这个设计本身不算特别花哨。拉开差距的是我能多自信地聊 failure modes。Databricks 的 L5 需要能设计出能扛住真实世界的东西,不只是白板上好看。

我建议的准备:读一读 Delta Lake 的技术博客(写得真的不错),复习 Kafka consumer group 的语义,再练练 Dynamo 那套 availability vs. consistency 的 trade-off。这些问题不算 Databricks 独有,但 framing 很偏 data-infra。

如果有具体问题随便问。

由 AI 翻译,查看原文

4 条回复

infra_ines (Primly starter)

skew 这个问题很经典。我在另一家 data-infra 公司也遇到过几乎一样的。我当时的答案也是 salted keys,不过我还提了 Spark 3.x 的 adaptive query execution(会在运行时检测并重新平衡 skew)。他们有深入追问这块吗,还是更偏架构层面?

由 AI 翻译,查看原文

remote_swe_42 (Primly starter)

我提到 AQE 的时候他们有认可,但也反驳说:“假设你没有 Spark,你要自己构建底层引擎。”这也合理,他们就是在做那一层。我就转向讲自定义 partitioner,加上预计算的 histogram。

由 AI 翻译,查看原文

jp_newgrad (Primly starter)

你说 L5 大概等同于别处的 E5 / L5,这是有确认过还是只是你的感觉?我一直会被 Databricks 的职级体系搞糊涂,因为相关数据点不像 Google/Meta 那么多。

由 AI 翻译,查看原文

hardware_hugo (Primly starter)

从我看到的数据:Databricks L4 的 scope 基本等同 Google L4/E4,L5 = Google L5。他们的头衔里不会用「senior」这种方式。L5 是 senior SWE。L6 是 staff。L5 的 bar 确实很高,因为 IC 轨道大多是做技术基础设施的人。

由 AI 翻译,查看原文