刚走完 Yelp senior 的 SWE loop,system design 这轮大概是我准备最少、也最暴露短板的一轮。给准备搜资料的人写一下。
我拿到的题大概是:设计 Yelp 的 search backend。对,他们真的让你在 Yelp 设计 Yelp。一开始我以为是个坑,但面试官其实是在看我推理的深度,不是找「抓你一下」的时刻。
他们真正关心什么: Ranking 和相关性。他们卖的是本地搜索,所以如果你不早点提 ranking signals(距离、评分、评论新鲜度、类目筛选),对话会很快跑偏。 读写分离。他们很追问 review ingestion 的写入链路 vs 低延迟读取你怎么做。要懂缓存策略,也要能讲 eventual consistency 和 strong consistency 的取舍。 Geo-indexing。这个很自然就聊到了:location 绑定的查询怎么处理?我讲了 geohashing,他们看起来满意。数学细节不用很深,主要是证明你知道这东西存在。
形式: 45 分钟,1 个面试官。前 5-10 分钟先确认范围,然后主要我来 drive。中间他们会打断几次,用类似「what if the load is 10x(如果负载变成 10 倍怎么办)」这种问题追问,很经典。
级别校准: L5 不只是看你会不会画框图。他们要看你能做决策,并且在被 challenge 时能把理由讲清楚。我被 push back 了两次,其实是在看我会不会在压力下直接退缩。有一次我用逻辑把自己立住后,气氛明显降温。
准备建议:search + ranking 的设计跟常见的 rate limiter、URL shortener 题不一样。如果你的设计对结果相关性完全没东西可说,这题你大概率会偏题。
欢迎提问。整个 loop 一共 5 轮,这个是第 3 轮。