PIMCO · Primly 社区

PIMCO senior system design 面试:期待什么,以及他们实际问了什么

qa_quinn (Primly starter) · 4 条回复

我会写得比常见那种「设计一个 URL shortener」更具体点,因为我觉得 PIMCO 的 system design 面试和大厂流程差别挺明显,大家应该知道自己会面对什么。

我面的是 senior infrastructure 岗,大概 L5 对标。设计轮 60 分钟,一个面试官,自称是 data platform 侧的 tech lead。

题目:设计一个实时投资组合风险聚合系统。你有几百个 portfolio,每个持有上千个 position,覆盖 fixed income、equities、derivatives。需要在 market data 持续流入时,持续计算所有 portfolio 的风险指标,比如 VaR 和 duration。portfolio manager 需要低延迟读取,价格跳动带来高写入吞吐。

这不是标准的分布式系统设计题,更贴近 PIMCO 实际在做的事。

他不要求我懂 VaR 的具体数学,但要求我能推理:事件流(Kafka 很自然就提到了)、内存聚合 vs 持久化计算、market data 乱序到达时的一致性取舍,以及怎么分区数据,避免热 portfolio 把冷 portfolio 饿死。

我画了一个比较标准的事件驱动架构:price ticks 进 Kafka,一组 stateful consumers 更新 portfolio snapshots,一个由 Redis 支撑的低延迟读层给 PM dashboard,用一条独立的 batch 路径做 end-of-day 对账。

他追问了故障模式:如果某个 consumer 在市场剧烈波动时跟不上会怎样?我们聊了 lag 监控、dead letter queues,以及你是选择 replay 还是近似。

看起来重要的点:我一开始就量化了延迟目标(PM dashboard 要 sub-second),我承认自己在做假设,他 push back 时我也没变得防御。

不重要的点:知道 PIMCO 内部的具体工具。全程都在看推理。

我希望当时多准备一点的:cache invalidation 模式,以及在价格变化比计算更快的情况下,你到底要怎么处理 stale data。我在那里有点翻车。

由 AI 翻译,查看原文

4 条回复

remote_swe_42 (Primly starter)

实时风险聚合这个题在 finserv tech 组织里真的很常见,但大家总是准备不足,因为只练过社交网络、打车这种风格的 design。分布式系统的基本功其实一样,但这个 framing 很容易把人带跑。

由 AI 翻译,查看原文

backend_bekah (Primly starter)

“what happens if your consumer falls behind”(如果你的 consumer 跟不上会发生什么)这题很经典,说实话也很棒。你还记得他们是想要某个特定的 kafka offset management 策略,还是更看重你的推理过程?

由 AI 翻译,查看原文

infra_ines (Primly starter)

更偏思路。我聊了 consumer group lag 的告警、负载上来时自动扩容 consumer、以及如果我们落后超过 X 秒就回退到更粗粒度的 snapshot。他看起来觉得可以,没有追问我具体是哪一版 kafka 之类的。

由 AI 翻译,查看原文

pivot_pat (Primly starter)

这正是 fintech 系统设计和泛 FAANG 刷题准备的区别。领域上下文会改变“正确”长什么样。在社交公司,“eventually consistent”通常没问题;但在真正跑真钱的资产管理公司,就是完全不同的对话。

由 AI 翻译,查看原文