上个月做完了 Unilever senior software engineer 的 final loop。system design 这轮是我最没把握的,因为网上几乎找不到他们在 senior level 的技术面试到底长什么样。
下面是我这次 system design 面试的经历。
题目: 设计一个电商平台的商品推荐引擎。范围刻意很模糊,我觉得这就是考点。他们想看我会不会在上来就开做之前先问澄清问题。
澄清阶段: 大概花了 8 分钟问规模(DAU、商品库大小、延迟预期)、个性化需求 vs. 规则推荐,以及我们是从零搭还是接入现有的数据仓库。面试官在这部分很投入。他明显更看重提问质量,比很多面试官都更在意。
设计阶段: 我们过了一遍大致架构:API gateway、recommendation service、离线模型训练 pipeline、feature store、缓存层。我没用白板(Zoom 面),所以一边描述一边在共享的 Google doc 里画草图,效果还不错。
深挖点: 他们主要追问了两个点:怎么处理新用户的冷启动,以及如果 ML 模型 serving 挂了怎么保证系统能优雅降级(回退到基于热度的推荐)。冷启动那题会比较深入到 collaborative filtering vs. content-based 的取舍。
behavioral 的交叉: 最后他们问了一个问题:如果要对非技术的产品 stakeholder 沟通一个重大的架构变更,我会怎么做。这就有点模糊到 behavioral 了,这在 senior level 也挺常见。
总时长:大概 55 分钟。面试官是 principal engineer。不是那种很放松的闲聊,但也没到 FAANG 那种残酷程度。我会说是扎实的 mid-market 难度。如果你能做出一个还不错的 feed system 或 search ranking system 的设计,基本就在正确区间。
补充背景:岗位在伦敦,Senior Software Engineer,在他们 data and digital platforms 组织里,2026 入职。