两个月前在 UHG 面了 senior 的 SWE system design 轮。分享细节,因为我当时几乎找不到具体信息。
the prompt was:「design a real-time claims adjudication system that can handle 50,000 claims per second at peak, with audit logging and HIPAA-compliant storage.(设计一个实时理赔 adjudication 系统,峰值可处理每秒 50,000 个 claims,并带审计日志和符合 HIPAA 的存储。)」
一些他们在意的点:
先看吞吐。 他们想知道我怎么扛住 50k/sec。最后聊到了用 Kafka 做 ingestion、worker pool 处理、异步写回到关系型存储。面试官特别追问 backpressure 怎么处理。
合规是硬要求,不是事后补丁。 我一开始就提 audit logging,这点加分。他们追问谁有权限读 audit tables、日志怎么 rotate、以及下游系统在 claim 处理中途失败怎么办。如果你把 HIPAA 当 checkbox,会被狠狠追问。
数据驻留。 他们问我会不会用托管云 DB,用哪一种。我说 RDS 之后,他们就问我怎么保证数据必须留在指定 region。multi-region failover 和 data residency 之间确实有矛盾,他们是真的在做这个取舍。
他们不想看「花活」。 这不是推新架构的地方。他们想要可维护、可观测、可审计的方案。我前面做了一个「有意思」的选择,面试官基本把我往朴素但正确的方向带回去了。
面试官是 senior,问题问得很好,也会给有效信号。难度大概相当于我理解的 FAANG L5,某些角色可能接近 L6。他们用自己的定级体系,所以最好一开始就问清楚。
有个小建议:远程面试的话带个白板或平板。他们用自家的视频平台(某种 Microsoft Teams 变体),内置白板完全没法用。我当时 screen share 了一个 Google Doc 画方框,没问题。