我在 2026 年 3 月走完了 Block(前身是 Square)senior 的 SWE 面试流程。拿到了 Square Seller org 的 L5 offer。想写一下 system design 这部分,因为它和我在其他 fintech 公司见过的有点不一样。
System design 这一轮 60 分钟,一个面试官。不是 panel。大概 5 分钟的时候给了我题目,然后让我主导。我的题目大概是:设计一个 payment retry system,能在大规模下处理 partial failures。考虑到 Block 实际做的东西,这题挺「对味」的。
我能感觉到他们最在意的点: Idempotency。 我一提到 retries 这个点就立刻被问到了。他们会追问你怎么处理重复的 payment attempts,比如 client 重试同一个请求。我答得还行(idempotency keys 存在分布式 KV store 里,加 TTL),面试官明显放松了。 Consistency vs. availability 的取舍。 典型 fintech 话题。他们想确认你理解为什么支付系统在 Brewer's theorem 下更偏 CP 而不是 AP。 Queue 设计。 我提了 SQS 和 dead-letter queues。他们问了 exactly-once delivery guarantees,以及怎么处理 poison pill messages。 数据库选择。 我在 ledger 这边用了 Postgres。他们觉得 OK,没有把我往任何 Block 自家技术栈上带。
面试官挺投入的,问的都是澄清型问题,不是那种挖坑。我的感觉是他们真的想知道你有没有做过真实的分布式系统,而不是只背了 Grokking the System Design Interview。
有个我没想到的点:他们让我先做 scope 再开始设计。比如会明确说:「before you start drawing boxes, tell me what constraints matter.」这个 framing 还挺有帮助。
从 recruiter reach-out 到 verbal offer 总共大概 5 周。System design 这一轮是我觉得和 FAANG 流程最不一样的部分,主要是题目更偏 payments domain。