刚在 Atlassian 做完一轮 senior SWE(P4 对应,大概相当于其他公司的 L5)system design,所以趁热写一下。
这轮 60 分钟,一个面试官,题目足够宽,你得自己 scope。我的大概是:设计一个跨 Jira、Confluence、Trello 的实时通知系统。他们明显会从自家产品域里出题,这也合理。
他们在意什么: 你在画框图前怎么把需求澄清清楚。我花了大概 8 分钟问 clarifying questions,他们看起来挺满意。 scalability 的推理。不只是「用 kafka」,而是为什么,以及跟更简单的 pub/sub 比有什么取舍。 跨服务 fan-out。因为产品彼此独立,这点自然会出现。想想怎么在消费者侧做 dedup。 你对大规模下 eventual consistency vs strong consistency 的权衡是否熟悉。
我完全没遇到 Leetcode 式的小技巧题。这就是一路纯分布式系统设计。最后也没有什么「陷阱题」。
时间分配大概: 需求:8-10 分钟 高层架构:15 分钟 深挖一个组件(我选 fan-out 层):20 分钟 10 倍负载下会坏什么:10 分钟 提问:5 分钟
level 备注:他们一开始就跟我说,Atlassian 的 P4 一般是 5-8 YOE,能在不太需要 hand-holding 的情况下,从模糊走到设计。如果你需要面试官提示下一步,那可能就是 P3 的信号。
我是后端工程师,9 YOE,大多做分布式系统,所以这轮对我比较友好。如果你更偏 frontend,我会建议你问 recruiter:design 轮是更偏 infra,还是更偏产品架构。他们会调整。