我今年早些时候走完了 Box senior 的 SWE 面试流程,L5。想写一下 system design 这一轮,因为我进去之前看到的大多数帖子信息都很少。
Design 这一轮 60 分钟,两位面试官。一位主导提问,另一位主要记笔记,最后会插入一些 follow-up。题目开放到他们更想看你怎么做 scope,而不只是会不会画框图。
具体主题在内容/文件分享方向(不透露精确题目,但和 Box 做的东西很契合)。这不是巧合。他们希望你设计的系统跟真实产品面有关:storage、sharing、permissions、real-time collaboration、enterprise controls。如果你的准备一直都是「design Twitter(设计 Twitter)」但没想过 access-control model 或者大规模 object storage,面试前最好花一两个小时补一下。
他们会追问的点: 并发编辑的一致性保证。他们不会让你从零实现 OT 或 CRDTs,但你要知道这些是什么,以及什么时候会用。 权限传播。如果一个文件夹下面有 1 万个嵌套文件,你改了权限,怎么做到快?他们一直在追这个。 Blob storage 和 metadata DB 的拆分。很常规,但他们要的是 tradeoff 讨论,不是「blobs 用 S3」一句带过。 大文件上传的延迟。Multipart、resumable、chunking strategy。
Leveling 观察:在 L5,他们希望你主动 drive。不要等他们问 trade-offs,你自己要抛出来。面试官对那种只回答被问到的点的候选人,兴趣明显会下降。
整个 loop 是 phone screen + coding + system design + 两轮 behavioral。System design 在 onsite 的第 2 天。
评论里如果有人问具体细节我也愿意答。