面经 | Prime Video Ads / 后端 | 🔥🔥 | Amazon
2026(9月底–10月中) Software Development Engineer II, Prime Video Ads Channels @ Amazon | Seattle, WA · Virtual · 3 轮 | 😐 Neutral | Medium
电面一轮,VO 两轮。
Round 1 — Phone Screen
自我介绍完直接 coding。
coding 是 Locker & Package,OOD,匹配规则要自己先问清楚。
clarify 了几个:柜子和包裹都分 S/M/L,小包裹能不能放大柜子。面试官说能,但同尺寸优先。写了 Locker、Package、LockerSystem,每种尺寸一个空柜子队列,assign 先找同尺寸,没有就往大一号找,取件按 code 找回柜子再放回队列。
followup 改了个场景:包裹 3 天没取要退回,柜子空出来。说了加过期时间,取件时顺手检查,再加个后台定时扫。又聊了站点很多、柜子很多怎么办,只说了按站点拆开,没往下聊。
Round 2 — VO Coding
coding 是 playlist shuffle 变种,歌换成广告:一串要播的广告,每条带 advertiser,重排成同一个 advertiser 不能连着出现,排不出来返回空。
max heap 按剩余条数,每次弹最多的那个,跟上一个相同就先压着,弹第二多的,放完再把压着的放回去。没先判「最多的那个超过 (n+1)/2 肯定排不出」,跑到最后剩两条同一家才发现,补了。
followup 问不只是相邻,同一个 advertiser 之间至少隔 k 条咋办。说了加一个等待队列,刚用过的进去冷却,够 k 步再回 heap。写了一半,队列出队那里 k 的边界差一,没调完到点了。
Round 3 — VO SD
SD:调下游 ad decision 服务,做限流 + 熔断,下游慢了不能把播放拖住。
先画的是每台机器一个 token bucket,按 partner 分。被追问机器多了总量怎么控,说了 Redis 计数。又问每个请求多一跳 Redis,延迟受不了咋办,改成本地 bucket + 定期去中心领配额,配额怎么分没细说。
熔断按超时比例,过阈值就打开,打开期间这个 break 直接不插广告,内容照常播。half-open 放多少请求去试、成功几次才关,没讲清楚。最后几分钟反问。