刚面完 Weee! SWE ,出来第一反应是:这家和大多数互联网公司不一样。不是说题难,是每道题都能感觉出来它在考什么实际问题——购物车合并区间、高并发库存扣减、生鲜购买频率统计,这些在他们系统里都是真实的工程挑战。整场下来没有一道题是为了考而考,这种面试风格挺少见的。四轮按顺序写。

一面
题目是处理购物车商品的合并区间——类似 Merge Intervals,但加上了商品类别和有效期的条件。同一类别、有效期相邻或重叠的商品可以合并,过期或数量为 0 的直接丢弃。
我没有上来就写代码,先和面试官确认了几个问题:商品数量为 0 怎么处理、有效期已过的算不算、跨类别的商品可以合并吗。面试官说”大多数候选人上来就直接写,你这样更好”。
核心逻辑是按类别分组,再按有效期排序做标准 Merge Intervals。代码本身不复杂,但业务规则要先澄清清楚,不然方向就跑偏了。
VO Round 1:库存扣减系统
这轮要设计一个库存扣减系统,核心考点是两个:高并发下怎么防超卖,用户取消订单后库存怎么回滚。
我从最简单的版本开始说——单机用乐观锁(version 字段加 CAS 更新),冲突时重试;超卖防护用预扣库存(下单先扣,支付确认后落库,超时或取消后回滚)。面试官追问并发量很高时数据库锁竞争怎么优化,我提了 Redis 原子操作做库存预扣、数据库做最终一致,他满意了。
这轮如果能主动提到乐观锁 vs 悲观锁的取舍、消息队列做异步回滚,面试官反应会明显更好。提前了解一下电商基础架构很值。
VO Round 2:Coding
这轮两道题,一道滑动窗口一道树遍历,节奏挺快的。
第一道:时间窗口内购买最频繁的用户
Weee! 把它包成了生鲜购买的业务场景——给一份带时间戳的购买记录,找出某个时间窗口内购买特定生鲜最频繁的用户。核心是滑动窗口加哈希表,Amazon、Datadog 的面经里也有类似场景出现过。
双指针:右指针扩张把新记录加进窗口,左指针在时间跨度超出窗口长度时收缩,把移出的记录从哈希表里减掉(次数减到 0 就删掉这个 key)。全程维护最大频次和对应的用户。
写完之后面试官追了两个:同一用户同一秒内购买多次怎么算(按记录条数还是去重);如果要返回 Top K 用户而不是只返回第一名怎么改(最小堆维护 K 个最大值)。
这类题最容易漏的是:左指针收缩时哈希表要及时清零,以及窗口边界是严格大于还是大于等于,对着题面确认清楚。
第二道:分类目录树的层级展示
本质是 N-ary Tree 的层序遍历(LC 429),包了一层”电商分类目录树按层渲染”的业务皮。
BFS 标准写法,每次把当前层所有节点出队、记录值、子节点全部入队,循环到队列空:
from collections import deque
def level_order(root):
if not root:
return []
result, queue = [], deque([root])
while queue:
level = []
for _ in range(len(queue)):
node = queue.popleft()
level.append(node.val)
queue.extend(node.children)
result.append(level)
return result写完之后面试官说优化一下空间复杂度。我分析了:BFS 显式队列是 O(W)(最大宽度),DFS 递归省掉队列但递归栈深度是 O(H)(树高),两种最坏情况都是 O(n),没有更优的通用方案。
VO Round 3:HM 面
这轮问得很细,不是走过场。
Why Weee? 面试官真的在听,不是让你背稿。我说了对他们”把生鲜电商做到线上”这件事的认可,以及对供应链技术的兴趣,他追问了”你觉得生鲜电商最大的技术挑战是什么”——考你有没有真的思考过这个行业。
还有一道很有意思的排查题:如果你发现线上支付 API 突然报错,你会怎么排查?
我的思路是:先看错误日志和监控(是所有用户还是部分用户、哪个支付渠道)→ 确认第三方服务状态有没有 incident → 看最近有没有代码变更、回滚是否可行 → 临时降级策略(提示用户稍后重试或切换支付方式)→ 通知相关团队同步信息。面试官对这个排查链路比较认可。
Weee! SWE 相关FAQ
Q1:Weee! SWE 面试难吗?
整体 Coding 难度中等,更看重业务理解、边界条件和沟通。
Q2:Weee! 会考 System Design 吗?
会,重点准备库存、订单、支付等电商系统。
Q3:Weee! Coding 主要考什么?
常见方向包括 Merge Intervals、Sliding Window、BFS 和 Hash Table。
Q4:Weee! HM 面需要准备什么?
重点准备 Why Weee?、项目深挖和业务场景类 BQ。
相关面经文章
- [Shopify SDE NG 面经|Coding + System Design] — 电商技术岗面试可以重点参考,里面包含购物车、库存管理和订单处理系统等相关内容。Shopify SDE NG 面经
- [Uber SDE 面经|Coding + System Design 全流程] — 适合补充 Sliding Window、Merge Intervals 以及高并发系统设计思路。Uber SDE 面经
- [Meta NG 面经|Coding + BQ + System Design] — 如果重点准备 VO 和 BQ,可以参考这篇的追问方式和 System Design 准备思路。Meta NG 面经
- [Microsoft SDE 面经|Coding + 系统设计 + OOD] — 适合准备 Coding、OOD 和需求澄清类问题。Microsoft SDE 面经
出来的感受
Weee! 的面试官都挺 nice,是引导型而不是压力型,卡住了他们会给提示。但不要因此松懈——BQ 那轮追问很深,Why Weee? 随便说两句很容易被问穿。
最值得提前准备的是电商基础架构这块:库存扣减、订单状态机、支付回调幂等。进去之后能主动把技术方案和业务场景联系上,印象分会高很多。
有在准备 Weee! 或其他电商赛道公司的同学,可以来找我们聊聊。InterviewShow 做过这类电商技术岗的面试,库存系统 OOD、滑动窗口业务场景题、BQ 故事打磨都有覆盖,一对一跟着走。有需要的来聊。