3 月走完了 Lyft 的 L5 loop。system design 是其中一轮,45 分钟,比 Google 或 Meta 看到的更收敛。他们不会让你设计 YouTube。会更贴近他们真实业务:派单匹配、定价系统、位置追踪、大规模通知、在延迟约束下做司机-乘客配对。
我那轮题目:设计一个实时动态加价(surge pricing)系统。不是玩具题。他们关心:你怎么拆 write path vs. read path,你的数据模型怎么落在司机供给层面,以及当某个地区的位置服务挂了时,你怎么处理 partition tolerance。
他们真正关心的: 你能不能自己把问题 scope 清楚(他们不会替你做) 你是把取舍讲出来,还是只报你偏好的结论 你知不知道基于队列的 fanout 和 pull model 的区别,以及各自适用场景 故障模式:先坏什么,你怎么发现
我在 event pipeline 上讲了不少 Kafka,他们会反问:高峰期 consumer group lag 突然飙升会怎样。这个问题很好,我有点被打到。要准备优雅降级的答案。
他们也比大多数公司更爱问可观测性:你会监控哪些指标,怎么在客户投诉前发现系统在劣化。值得准备一段关于 SLO 和关键路径埋点的短答案。
级别上:L5 他们期待你主导这场对话,而不是等着对方一步步提问。如果你一直坐等下一个问题,会显得偏 junior。带着他们走你的思路,在你准备往某个点深入前先 checkpoint 一下,并且明确问对方要不要继续。
总共 5 轮:1 轮 system design,2 轮 coding,1 轮 behavioral,1 轮 leadership/cross-functional。system design 是大家最焦虑的一轮,但说实话如果你日常真做系统,这反而是最直接的一轮。