我在 2026 年 3 月走完了 Perplexity 的 senior SWE 面试 loop。拿到了 offer,最后因为另一个机会拒了,但面试流程本身确实挺专业的。想专门写下 system design 部分,因为网上基本没有相关信息。
system design 那轮是 60 分钟,一个 engineer 面。没有什么寒暄,上来几乎就直接问:“Design a web search result ranking system.(设计一个 Web 搜索结果排序系统。)” 这个问题……考虑到他们做的东西,确实合理。但这不是考你他们真实架构的坑题,他们想看你从零开始怎么推理。
关键点: 一开始先问清楚需求。我问了 freshness 要求、规模(QPS 估算)、个性化 vs 全局排序。他们似乎很在意我有问这些。 他们会猛追 data pipeline。新内容怎么被索引?怎么处理 real-time vs batch?我提到 Kafka 之后,他们让我更深入讲 consumer lag 和 backpressure 怎么处理。 强烈偏好分布式系统的深度。不只是“多加几个副本”。他们想听你对一致性取舍的理解。 我主动提到 LLM re-ranking 后,话题自然就出来了。他们明显更兴奋了一点,然后深挖 latency 约束(你不可能每个 query 都多加 800ms)。
system design 里没有让我写代码。纯白板(共享虚拟白板)。追问很具体、很快,感觉是在跟真正做过这些的人聊,不像照着 rubric 念。
准备方面:我主要复习了分布式系统基础(Designing Data-Intensive Applications 是标配),但更重要的是我专门想了 AI 相关基础设施的问题:retrieval pipeline 端到端怎么走;结构化和非结构化结果怎么 merge。这个 framing 对我帮助很大。
难度大概 7/10。不是算法刁钻,但他们要的深度是真的。欢迎提问。