刚走完 senior Tech 在 Herzogenaurach 办公室的 senior SWE 面试循环。分享一下,因为我准备的时候几乎找不到有用的信息。
system design 这轮是 60 分钟,两位面试官,其中一位是我潜在的 team lead。没有 LeetCode 风格题。他们给的题目大致是:设计一个产品目录服务,能近实时把数据提供给电商网站和门店库存系统。
他们在意的点: 一致性模型选择。我一开始默认 eventual consistency,但没有充分解释,他们反驳得很狠。 规模推理。Adidas 会有全球级的大促爆发(类似 Yeezy 发售日)。他们明确问我设计怎么扛住突发 50 倍流量。 API contract 设计。他们想要服务之间清晰的接口,不只是画框和箭头。 取舍。每次我说「这里用 Kafka」,就会有人问「why not SQS, why not a database queue.(为什么不用 SQS,为什么不用数据库队列)」。你得有真实答案。
他们没让我实现完整代码,但让我用伪代码走了一遍一个 endpoint 的 API spec。这部分我有点没预料到。
我来自 FAANG,所以信号不太一样。他们不是在找「正确」的 Google 式答案,而是想看我能不能在不确定性下推理,并且能和非工程师沟通,因为团队是跨职能的(tech + product + brand)。
Level 背景: 这个岗位对外写的是 Senior Software Engineer,他们内部 banding 大概相当于 E5/L5(按 scope 来看)。scope 是端到端负责一个 domain,而不是单个 service。
准备建议: 一个可扩展、读多写少的服务(catalog、search、recommendations) 事件驱动架构基础(Kafka、event sourcing) 不同层级的缓存策略 你会怎么处理跨区域的数据一致性
还有一点我没看到有人提:他们会针对你选的 trade-off 继续追问设计细节,不只是 happy path。练习把你的决策大声讲清楚。
整个 loop 共 4 轮:phone screen、take-home、system design、以及同一天两轮 behavioral。第一次联系到 offer 大概 3.5 周。