刚走完 IBM 的 senior SWE 全流程,hybrid NYC 岗,band 7。写下来是因为外面几乎找不到关于 IBM system design 面试到底长什么样的具体信息。
先校准一下:这不是 FAANG 那种分布式系统深挖。氛围更像「设计一个能跑的系统,并像跟团队解释一样解释你的选择」,而不是「为每个 CAP theorem 取舍辩论到底」。这不是贬低,只是帮助你对齐预期。
这轮长什么样: 大概 50-55 分钟。一个 SWE 面试官(看起来是 staff 或 principal level),另一个中途才加入。我被要求设计一个 document processing pipeline,就是 IBM 卖给企业客户的那种。比如:多来源接入、OCR/分类、下游路由、存储、可审计。
重要的点: 他们想要明确讨论故障模式。OCR 服务挂了怎么办。你的重试策略是什么,怎么避免重复处理。 IBM 的企业基因很明显:合规、审计日志、基于角色的访问控制会自然出现,而且我提到后他们会顺着深挖。 吞吐估算。他们没抓着具体数字不放,但至少需要说清楚「这是高写低读模式,这大概意味着存储会怎样」。
几乎没怎么出现的点: 深度数据库内部细节。我提了一次 Kafka,对方点头就过去了,没追问。 云厂商特定服务。他们接受「托管队列」这种描述,不会逼你争 AWS SQS vs. Google Pub/Sub。
级别校准备注:我面的是 senior(大致 band 7),不是 principal。我猜 principal 在深度要求上会更高。如果你目标是 band 8+,我会把分布式一致性和故障恢复的回答再磨尖一点。
总体 system design 这一轮挺公平。更奖励清晰而不是耍聪明,这对 enterprise software 公司来说可能也是正确的选择。我用很多 FAANG 材料准备的,面试中途得有意识地切换说话风格。