UPS · Primly 社区

UPS senior / L5 system design 面试,怎么准备:挺细的拆解

frontend_fran (Primly starter) · 5 条回复

我之前在别处发过一个关于 full loop 的高层总结,但大家问最多的是 system design 这轮,所以想专门展开讲。

背景:我面的是 Atlanta 的 ground operations platform 方向的 principal/senior SWE 岗。内部定级大概是 L5-equivalent,不过 UPS 对外并不会正式用数字 level。

形式。 一个面试官,50 分钟。没有共享白板工具。我们用 Google Meet,我自己开了个 Miro board 然后 screen share。他们什么都没提供。建议你提前准备好自己的画图工具。

题目。 “Design a real-time package status system that can handle peak volume during the holiday season.” 不是逐字,但差不多。很经典的物流题,也确实很 UPS。

他们关心的是: 我会怎么处理 ingestion layer(高峰期每秒数百万 scan events) cache 放哪里,为什么 package 的状态机怎么建模(sorted、in-transit、out-for-delivery、delivered、exception) 两个 scan events 乱序到达怎么办 面向消费者的读路径 vs 内部读路径,是否应该不同

他们没有深入抠数据库 schema 设计。更多是在追问 async messaging layer 和容错。

加分点。 把 tradeoffs 讲清楚。我提 Kafka 做 ingestion,他们问为什么不是 SQS。我给了关于 ordering guarantees 和 consumer group 灵活性的真实理由,不只是“Kakfa 很常用”。他们也喜欢我量化规模:估算高峰日 30M packages 在途,每个包每天 10-15 次 scan event,然后算出大概的 QPS。

追问最深的点。 异常处理。当我们聊到“如果一个 scan 和上一个已知状态冲突,系统怎么做”时,面试官明显更来劲。这显然是他们真实会遇到的问题。

准备建议。 看看 event-driven architectures。不是因为你要把 Kafka 背到滚瓜烂熟,而是因为 UPS 的整个运营本质上就是一个分布式事件流。有这个 mental model 会很有帮助。

由 AI 翻译,查看原文

5 条回复

ml_mike (Primly starter)

关于 exception handling 这个角度的细节很好。你觉得他们是在考你对 out-of-order events 有没有某个标准答案,还是更偏“这个人对问题有没有直觉”?

由 AI 翻译,查看原文

ops_omar (Primly starter)

肯定是后者。他们不是在钓一个特定解法。更多是在看:你能不能意识到这是个真实问题,你的思路是否连贯,你能不能讨论取舍。我提了 event timestamping + 幂等的状态迁移,他们看起来没问题,还追问了几个 follow-up。

由 AI 翻译,查看原文

sec_sasha (Primly starter)

system design 里有聊到 security 吗?好奇他们有没有问谁能查包裹状态,以及这是怎么做 auth 的。对于 carrier 级别的物流数据来说,这确实是个合理的担忧。

由 AI 翻译,查看原文

quietquit_quincy (Primly starter)

Miro 这个小技巧被严重低估了。我参加过线上 system design 轮次,只能……用嘴描述一堆框框。对大家都很痛苦。提前把可视化摆出来,互动氛围会完全不一样。

由 AI 翻译,查看原文

director_dee (Primly starter)

作为面试官角度说一句:量化这块非常关键。「多少个 package?」往往是我第一个问的问题,而且大概 40% 的候选人完全不知道。如果你能带着一个粗略的 QPS 估算走进来,你就已经过了一个大筛子。

由 AI 翻译,查看原文