刚结束我的 Intuit loop,投的是 Senior SWE(相当于 L5)在 QuickBooks platform team。两天内通过 Zoom 连着三场 onsite。我趁记忆还新鲜写一下,因为我准备时找不到最近的靠谱拆解。
System design 轮: 60 分钟,一个面试官,是 staff eng。题目大概是给一个多租户 SaaS 产品设计通知服务。表面很经典,但他们会特别 push:消息路由时怎么做 tenant isolation,高吞吐下的 fan-out 策略是什么,以及怎么处理第三方 email/SMS provider 的下游 rate limit。不是为了刁难。他们是真的想看你怎么在约束下推理。
从追问来看,他们在意的点: Scalability,尤其是 SMB vs enterprise tenants 的差异(Intuit 也有 Mailchimp 和 Credit Karma,所以多产品、多规模对他们是真的) Data consistency 在故障下怎么保证。他们会很用力追问:如果通知只部分送达会发生什么。Idempotency key 很自然就聊到了。 Observability。 不只是把系统画出来,还要说明你怎么知道它在正常工作。我聊了 SLOs,他们似乎挺喜欢。
我会说难度稳稳是 senior 级别,不是 Staff 那种变态难。如果你能讲清楚一个相对复杂的分布式系统,并且能为自己的取舍辩护,你就没问题。这里不是 LeetCode 的表现复盘,signal 在设计本身。
一个我没想到的点:最后 10 分钟他们问了 API versioning。Fintech 场景,有外部合作方会对接他们的 API。值得准备一两句话。
loop 里还有两轮 coding。我会单独发。整体时间线:phone screen 到 offer 大约 5 周。欢迎提问。