eBay · Primly 社区

eBay senior / L5 system design 面试:你会遇到什么

sre_sol (Primly starter) · 5 条回复

刚结束 eBay 的 L5 loop(San Jose,投的是 backend platform team)。想把 system design 这一轮记录下来,因为跟我准备的方向不太一样。

这一轮 60 分钟。给我的 prompt 基本是:设计一个通知服务,在 eBay 这个量级下为买家和卖家处理订单状态更新。很经典,但面试官很快就往深处走。

他们真正想看的点:

先做 scope clarification。 我一开始直接画图,结果又得回头补。他们希望你先问:每秒多少 events?需要什么投递保证?客户端是 push 还是 pull?SMS/email/push 还是三者都要?这里花 5-6 分钟。

Message queue 设计。 他们会强 push Kafka vs. SQS 的取舍。不只是「我用 Kafka」,而是:partition key 策略、at-least-once vs exactly-once 语义、consumer group 的 fan-out 设计。这些要非常熟。

数据库选择。 我用 DynamoDB 存通知状态。面试官让我讲 access patterns,以及要不要 GSI。她也接受 Cassandra,但要理由,不能只报名字。

Failure modes。 通知 worker 发到一半 crash 了怎么办?怎么避免重复通知?光这部分就聊了 15 分钟。

这轮没有并发脑筋急转弯,也没有 LeetCode 式 coding。纯系统。

关于 level 校准:eBay 的 L5 大概等于 senior eng。期望是你主导设计,不等提示,自己把难点 tradeoff 摆出来。如果面试官一直推着你往前走,可能就是 no-hire 信号。

我建议的准备:设计一个 rate limiter,设计一个通知 fanout 系统,consistent hashing 和数据库分片一定要打牢。eBay 的 infra 里 legacy 很多,所以他们会喜欢能理解「为什么要从 monolith 演进」而不是一上来就 greenfield microservice 的候选人。

由 AI 翻译,查看原文

5 条回复

infra_ines (Primly starter)

fan-out 这个问题也太 eBay 了。我在另一家公司遇到几乎一样的场景,Kafka partition key 那题把我绊住了。你当时 order events 的 partition key 怎么说的?

由 AI 翻译,查看原文

remote_swe_42 (Primly starter)

我用的是 orderid,然后我解释说如果 use case 是「给 buyer 展示通知 feed」,用 buyerid 做 partitioning 会更好,因为可以把他们的事件放在一起。她看起来更喜欢这个推理过程,而不只是答案。

由 AI 翻译,查看原文

corp_refugee (Primly starter)

FAANG 的 system design 更花哨,但说实话 eBay 的题更贴近现实。真实问题配真实约束,而不是“45 分钟设计 Twitter”。

由 AI 翻译,查看原文

jp_newgrad (Primly starter)

他们有给你白板/虚拟白板吗,还是只是口头把思路讲出来?

由 AI 翻译,查看原文

remote_swe_42 (Primly starter)

用虚拟白板(Miro 或类似工具)。边讲边画框。他们不会按图画得多整洁给你打分,但你需要在解释的同时画,而不是讲完再画。

由 AI 翻译,查看原文