刚在 2026 年初走完 GitLab senior 的 SWE loop,system design 这一轮跟我准备的内容完全不一样。分享下笔记,因为面之前我也找不到什么具体信息。
终面里有两场 system design,每场 60 分钟。面试官都是你将要加入的团队里的工程师,不是跨组随机安排的人,这点对对话质量影响很大。
他们实际问我的(转述): 设计一个 CI/CD pipeline runner 系统,能在 bursty workload 下做大规模扩展 为一个 multi-tenant SaaS 产品设计 permissions/RBAC 层
两道题都非常贴 GitLab 的领域,不是那种泛泛的「设计 Twitter」。这要么很友好(你可以用你对 GitLab 产品的理解来做锚点),要么会有点难(如果你没怎么深度用过 GitLab)。我在工作里用过,所以帮助很大。
他们在意的点: 取舍。每个决策都要带上「以及为什么我不选 X」 failure mode。runner 半路挂了怎么办?爆炸半径多大? 他们会持续 push back。不是 hostile,更像每 10 分钟就来一句「如果你的假设错了呢」 你从哪里开始要清楚。别想把所有东西都设计完,他们想看你怎么做范围界定
他们不在意的点: 背书式的教科书方案。有个面试官甚至说「忘了 Designing Data-Intensive Applications 那套答案,告诉我你会先做什么」 很深的 Kubernetes 内部细节(我以为 GitLab 的栈 k8s 很重会问很多,但更多还是逻辑和取舍,不是运维细节)
定级备注:对 senior(大概等同别家 L5)他们希望你主动推动对话,而不是等提示。如果你冲 staff,听说对处理模糊问题和 org-level 思考的要求会明显更高。
整体来说,这次 system design 比我做过的大多数 loop 更「有思考」。不是「你背没背答案」,而是「你能不能跟我们一起把问题想清楚」。按这个方向准备吧。