大概六周前我在 BCG 做了 system design 这一轮,岗位是一个和 staff 相邻的角色。想把经历写下来,因为它跟我做过的每一次 FAANG system design 都不一样。
在 Google 或 Meta,system design 通常比较抽象。设计一个 URL shortener。设计一个 feed ranking system。面试官脑子里往往有一个标准答案。
在 BCG,题目框架是嵌在业务里的。我拿到的题差不多是:「我们的顾问需要同时从多个客户项目里访问结构化数据。为此设计一套系统。」需求很模糊,这是刻意的。他们想看你会不会在开始画框图之前先问澄清问题。
他们实际在评估什么: 你有没有在画框之前先把问题范围界定清楚 你怎么处理多租户和数据隔离(对咨询非常关键,客户不能看到彼此的数据) API 设计是否清晰(REST vs event-driven 的取舍) 顾问在客户现场 WiFi 很差时,你如何考虑系统可靠性
我大概花了 15 分钟都在问澄清问题和梳理需求。他们看起来挺满意。等我太快跳到 DB schema 的选择时,面试官把我拉回来问:「what are we optimizing for?(我们在优化的目标是什么?)」
面试官是 principal 的 engineer,不是 manager,技术很强。没有什么白板套路。他们想看的是把真正的工程思考用到他们真实问题域上。
有一点让我意外:最后他们明确问了数据合规。GDPR、数据驻留、客户保密。不是深挖安全架构,但你最好有自己的观点。
准备建议:多用带业务背景的 prompt 练习,不要只练抽象 system design。画图前先想清楚领域约束。另外把 CAP theorem 背到烂熟,因为真的会问到。