几个月前我在 WBD(Max 流媒体后端)面了一个 senior / L5 对标的 platform engineering 岗。system design 这一轮是整个流程里最有意思的部分,所以我专门写一下。
他们给我的题大概是:设计一个视频内容 metadata 服务,支持全球规模的搜索和推荐。不是逐字,但差不多。经典媒体公司问题:你要为数百万的片库、多区域分发、实时个性化信号、以及编辑人工 override 能力(非常 WBD 在意)做设计。
他们实际在评估什么:
我后来问了面试官,他确认评分标准大概是: 你能不能主导讨论,一开始就问对澄清问题? 你是否理解在规模下,一致性、可用性、延迟之间的取舍? 你能不能合理谈缓存层(CDN、内存缓存、read-through),又不会过度设计? 你是否知道什么时候用 SQL、什么时候用 NoSQL,并且能解释为什么针对「这个问题」要这么选,而不是抽象地背结论?
我用 Cassandra 做 metadata store,Elasticsearch 做搜索索引,Redis 做热路径缓存。他们对我选 Elasticsearch 有 pushback,问我新内容摄取进来后怎么处理索引延迟。那是关键时刻。他们想看我怎么应对质疑,以及能不能实时把取舍想清楚。
senior vs. staff 的信号: 我后来听说,在 WBD 里区分强 senior 和 staff 的点,是你会不会主动提运维层面的关注点:延迟 SLO、runbook 缺口、可观测性。我提了加 structured tracing 和 degraded-mode fallback,面试官肉眼可见地兴奋了。
形式:60 分钟。前 5 分钟做设定和澄清,约 40 分钟设计和画图(他们用一个类似 miro 的共享工具),最后 15 分钟他们提问和深挖。
如果你在准备:专门做一次媒体领域的题。视频 metadata、内容推荐、搜索索引。这和你常见的支付或打车题不一样,WBD 的面试官显然很在意你对他们领域有一点理解。