刚结束我在 Loom 的 loop(senior SWE,约等于 L5)。因为之前几乎找不到具体信息,所以发帖记录一下。
System design 是 60 分钟,两位工程师。他们给我的题目本质上是:design a video recording and sharing platform。对,他们内部会把它当一个参考,但不会直接告诉你「"design Loom.(设计 Loom。)"」。他们的 framing 更抽象,类似于:设计一个能在大规模下采集、存储并分发短视频片段的系统。
他们在意的点: 在 storage layer 上追问很狠。CDN 选择、分片上传、处理大文件。他们想听你怎么权衡 blob storage vs. 托管式视频服务。 很快就会问 latency。怎么让播放感觉是秒开?自适应码率、预加载分片、用户网速很慢时怎么处理。 也会问到通知和链接分享那部分。怎么生成可分享链接、怎么统计浏览、怎么做访问控制。这点让我有点意外,我以为会更久停留在 infra。 有一位面试官会专门问:录制端在上传中途断网怎么办。错误恢复、部分上传、断点续传。这会聊得比较深。
面试官是真的在跟你一起思考,不是坐等你说出「正确答案」。他们更会 push 你讲 tradeoff,而不是钓一个固定解。
时间会很紧。60 分钟要覆盖上传 pipeline、存储、CDN、访问控制和各种 edge case,很快就过去了。我建议练一下把第一版架构控制在 15 到 20 分钟,后面才有空间深入。
没有特别强调某个云厂商。我答案里提到了 AWS/GCP,都没人介意。
整体来说这轮 system design 很扎实。不是陷阱题,但也不轻松。视频这个 domain 会带来一些有趣的细节,不是泛泛刷「design Twitter(设计 Twitter)」就能完全覆盖的。