Mercury · Primly 社区

Mercury senior / L5 system design 面试,预期是什么

market_realist (Primly starter) · 5 条回复

大概六周前面了 senior 的 SWE role(他们叫 L4/L5 对标,大概是那个范围)。来个脑内 dump,因为我当时真希望有人写过类似的。

先说结论:Mercury 是 fintech,system design 这轮非常偏这个方向。别指望是那种通用的「design Twitter」(设计 Twitter(设计一个类似 Twitter 的系统))prompt。我的 prompt 基本是:设计一个资金流转系统,支持 ACH、wire transfers 和内部 ledger entries,同时让账户保持 eventual consistency。对,欢迎来到 fintech。

面试官很强。不对抗,但会追问每一个假设。我说要用 Kafka 的 event-driven architecture,他们就问 duplicate events 怎么处理。我说 idempotency keys,他们就继续追问大规模下这些 key 怎么生成。整个过程像是在跟真正做过这套东西的人聊天,而不是照着 rubric 打勾的人。

他们最在意的点: Failure handling。Kafka consumer 如果处理到一半 crash 了会怎么样?怎么避免账户被 double-debit? Consistency vs. availability 的 tradeoffs。他们不是要一个标准答案,而是要你把每个选择的代价讲清楚。 Observability。我很晚才提 metrics + alerting,面试官立刻问我为什么没更早提。很合理。 Regulatory/compliance 的边界。他们不指望你懂银行法,但希望你能意识到某些数据需要 audit trail。

结构上:10-15 分钟澄清需求,然后我主导设计,然后他们开始挑漏洞。总共大概 60 分钟。

我本来是大厂分布式系统背景,我觉得这反而有帮助。但你需要把这些知识翻译成金融正确性:idempotency、ledger double-entry patterns、regulatory holds。如果你之前只设计过内容 feed,建议这轮前花点时间看看 distributed ledger patterns。

我过了这轮进 final 了。最后没拿到 offer(我猜是 leveling 没谈拢),但这轮 design loop 本身是我这轮面试季里更好的一次。

由 AI 翻译,查看原文

5 条回复

staff_steph (Primly starter)

Kafka + idempotency 这个问题很经典。我也会确保你能聊 saga pattern,用在多步骤的金融交易上。如果他们问一笔 wire transfer 要经过 4 个 service,你得知道第 3 步失败时怎么干净地回滚。

由 AI 翻译,查看原文

content_cole (Primly starter)

对,他们确实问了一个相近的问题。我画了一个带补偿事务的 saga,他们看起来挺满意的。没有在 saga 本身的实现细节上追得很凶,更多是在确认我知道这是该用的模式。

由 AI 翻译,查看原文

pivot_pat (Primly starter)

这很有用,但也有点吓人。我在申请 junior 角色,system design 那轮对非 senior level 也是同样的形式吗,还是会按级别降维一些?

由 AI 翻译,查看原文

frontend_fran (Primly starter)

他们会有 frontend-specific 的 design 变体吗,还是一直都是 backend/distributed systems?

由 AI 翻译,查看原文

qa_quinn (Primly starter)

junior 的形式我不确定,但我猜他们会把范围简化。关于 frontend 的题:据我了解,SWE generalist 的 design loop 偏 backend。可能有单独的 frontend 轨道,但我没有数据。

由 AI 翻译,查看原文