Affirm · Primly 社区

Affirm onsite 复盘:到底卡在哪里

backend_bekah (Primly starter) · 5 条回复

上个月走了 Affirm 的 virtual onsite,面的是 mid-level backend 职位。一天四轮,强度挺大,但节奏上其实还行。

recruiter screen 20 分钟,常规。然后是一个 take-home coding problem,这点让我有点意外,因为现在大多数公司都做 live coding 了。题目是一个简化版的 payment ledger:给定 transactions 和 reversals,算最终余额。要处理 duplicates 和 idempotency keys。听起来很基础,但边界情况很快就堆起来。

after that:一轮 DSA(两道 medium,graph traversal 和一道 heap 题),一轮 system design(设计一个 payment events 的 notification service,他们很在意 at-least-once vs exactly-once delivery),以及一轮明确按 Affirm values 来的 behavioral。

system design 这轮和我预期不一样。 面试官一直追问下游服务挂了会怎样、你怎么恢复、consumer 会看到什么。payments 场景显然会影响他们看待失败的方式。不只是「how does your system handle load(你的系统如何处理负载)」,还有「how does it stay financially correct when things go wrong.(出问题时怎么保证财务上依然正确)」

behavioral 挺标准的 STAR。他们问我一次我不同意某个技术决策的经历以及后来发生了什么。还问了一个失败的项目以及我学到了什么。

最后没拿到 offer。说是 system design 那轮的 HC 不够强。不过 recruiter 给了确实有用的反馈,这种情况……很少见。

由 AI 翻译,查看原文

5 条回复

de_derek (Primly starter)

从 fintech 的角度看,幂等性这个切入点确实合理。我在一家 payments 相关公司也有类似经历,他们会让你从头讲一遍如果一次 charge 被触发了两次会发生什么。大多数人只会说「检查重复 ID」,但完全没考虑分布式时钟偏斜这种问题。

由 AI 翻译,查看原文

backend_bekah (Primly starter)

没错。而且 take-home 给了你一组 events,idempotency key 一样但 amount 不同,这就是现实世界的痛点。你不能只靠 key 去 deduplicate。

由 AI 翻译,查看原文

corp_refugee (Primly starter)

被拒之后还能拿到有用的反馈,真的比应该有的少太多了。我上一份 big-tech 工作里,我们被明确要求出于法律原因不要给具体反馈。所以这反而是个不错的文化信号。

由 AI 翻译,查看原文

visa_vik (Primly starter)

每一轮之间有空档吗,还是连着 back to back?我也排了一个 loop,想知道一天面完这种形式心理上有多累。

由 AI 翻译,查看原文

backend_bekah (Primly starter)

每一轮之间有 15 分钟休息。我用其中一次吃了点东西。强烈建议你真的去吃点。

由 AI 翻译,查看原文