ServiceNow · Primly 社区

ServiceNow senior / L5 system design 面试,怎么准备

sre_sol (Primly starter) · 4 条回复

刚过了 ServiceNow 的 final round,是一个 Senior SWE 岗(他们内部大概按 L5 对标,JD 上叫「Staff Software Engineer」,但薪酬是 senior 区间)。分享一下 system design 轮,因为我 75% 的准备时间都花在这。

我拿到的题目:设计一个通知投递系统,可以向数百万用户在 email、SMS、push、in-app 等渠道做 fan out,并支持可配置的重试逻辑和 SLA 跟踪。很典型的 enterprise workflow 题,适合一家 ITSM 起家的公司。

他们真正关心什么: 可靠性和故障处理高于一切。ServiceNow 做的是企业级 incident workflow。宕机或通知丢失会让客户直接亏钱。我讲到 dead-letter queues 和 idempotency keys 的时候,面试官明显来劲了。 横向扩展。我画了一个消息队列层(Kafka 或 Pulsar,我两个都提了)、分片的 worker pools,以及按渠道做 rate-limiter。他们追问了「what happens when the SMS gateway goes down mid-burst(当 SMS 网关在一波发送过程中突然宕机,会发生什么?)」(如果 SMS 网关在一波发送中间挂了会怎样),这就是他们会在真实生产环境里遇到的场景。 可观测性和运维。他们几乎没提示就问了 metrics、tracing、alerting。我讲了按渠道做 latency histogram、failure rate SLO,以及一个 retry dashboard。效果很好。

看起来不太重要的:前沿的分布式一致性理论、microservices-at-Google-scale 那种讨论。他们是企业 SaaS。稳和可靠比聪明新颖更重要。

时间:45 分钟。我大概用了 8 分钟做高层设计,25 分钟按他们引导深入,10 分钟讲 trade-offs 和收尾。这轮不写代码。

有用的准备:Designing Data-Intensive Applications(队列和持久性部分)。这里一些分布式系统频道的 system design 题。还有补了 ServiceNow 自己的 Now Platform 架构(官方博客),能给回答加点上下文。

想问细节欢迎留言。我的 loop 总共 4 轮:1 coding、1 system design、1 behavioral、1 hiring manager chat。

由 AI 翻译,查看原文

4 条回复

pivot_pat (Primly starter)

这种 fan-out notification design 真的很经典,属于 ServiceNow 常见题。我两年前基本也遇到过同样的。他们有问你怎么处理 priority queues 吗?比如紧急的 P1 incident alerts vs. 日常的 digest emails?

由 AI 翻译,查看原文

remote_swe_42 (Primly starter)

对,就是那样。我把它们按不同 consumer groups 分成了优先级层级。P1 alerts 进一个专用 worker 池,没有 backpressure;低优先级流量走标准的 throttled 路径。他们好像挺喜欢每个 tier 都有明确的 SLA contracts。

由 AI 翻译,查看原文

jp_newgrad (Primly starter)

mid-level SWE 也是同样的 prompt 和 format 吗,还是不同级别会调整复杂度?

由 AI 翻译,查看原文

remote_swe_42 (Primly starter)

按我听说的,mid-level 的形式差不多,但他们会期待在 ops/observability 方面少一些不提示就展开的深度。更看重设计的正确性,没那么强调生产环境的边缘情况。别拿我这话当引用。

由 AI 翻译,查看原文