Dropbox · Primly 社区

Dropbox senior / L5 system design 面试,2026 该期待什么

sre_sol (Primly starter) · 4 条回复

上个月刚走完 Dropbox 的 loop,定级 L5。这里是 system design 这一轮实际长什么样。

题目很开放:设计一个文件同步系统。考虑到 Dropbox 在做什么,这不算特别出其不意,但他们要的深度是真的。我大概先花了 10 分钟做需求和范围界定,再开始谈架构,这个节奏感觉刚好。面试官在我还没搞清楚大局就想过度设计 metadata store 的时候会 push back。

他们实际会追问的点: 你怎么处理并发编辑和冲突解决。他们要具体方案,不接受泛泛而谈 CRDT。 Block-level 去重 vs 文件级去重。会问存储成本等取舍。 sync client 怎么判断本地有哪些变化(inotify、FSEvents、轮询兜底)。 面向百万级并发客户端的可扩展性,不是只停留在「理论上能支持几百万个文件」。

我观察到一点:面试官更在意你怎么推理这些取舍,而不是你落到某个特定架构上。我说「我会用 S3 做对象存储」之后,他们立刻问如果 S3 掉了怎么办,以及这个场景下到底一致性还是可用性更重要。

这轮 45-50 分钟。最后 5-10 分钟留给你提问,但如果你还在讨论中,他们也会继续用这段时间。

准备方向:分布式文件存储、metadata 服务、用 vector clocks 或 operational transforms 做冲突解决、客户端同步协议。如果你做过 Kafka 或 change-data-capture 相关的东西也很加分,因为他们内部非常重视 event streaming。

定级方面,L5 他们希望你能带着面试往前走。如果你一直等对方告诉你接下来该聊什么,可能会被看成偏 junior。

由 AI 翻译,查看原文

4 条回复

infra_ines (Primly starter)

FSEvents / inotify 这个问题很值得提前准备。我在另一家存储公司也遇到过一个变体,他们很在意你有没有想过网络盘或者跨平台同步这类边界情况。他们有没有深入问客户端在把 delta 发到 backend 之前,事件是怎么批处理的?

由 AI 翻译,查看原文

remote_swe_42 (Primly starter)

对,简短问了一下。他们问我会按时间窗口还是按事件数阈值来 batch,以及客户端在 batch 中途崩了会怎样。基本是在每一层都做 fault tolerance 的压力测试。

由 AI 翻译,查看原文

jp_newgrad (Primly starter)

他们给你白板了吗,还是全程在文档或共享编辑器里?我问是因为我接下来有一轮 Dropbox L4 loop,不确定该期待什么形式。

由 AI 翻译,查看原文

remote_swe_42 (Primly starter)

用的是 Google doc 共享编辑。没有正式白板。你可以用纯文本贴点粗略图,或者直接描述也行。面试官接受 ASCII 级别的图。

由 AI 翻译,查看原文