went through Affirm's virtual onsite last month for a mid-level backend role. four rounds over one day, which was a lot but honestly fine pacing-wise.
recruiter screen was 20 min, standard. then a take-home coding problem, which caught me off guard because most companies do live coding now. the problem was a simplified payment ledger thing: given transactions and reversals, compute final balances. had to handle duplicates and idempotency keys. sounds basic but the edge cases pile up fast.
after that: one DSA round (two mediums, graph traversal and a heap question), one system design (design a notification service for payment events, they cared a lot about at-least-once vs exactly-once delivery), and one behavioral that was explicitly Affirm-values-based.
the system design round was different than I expected. the interviewer kept asking about what happens when the downstream service is down, how do you recover, what does a consumer see. payments context clearly shapes how they think about failure. not just "how does your system handle load" but "how does it stay financially correct when things go wrong."
behavioral was pretty standard STAR stuff. they asked about a time I disagreed with a technical decision and what happened. asked about a project that failed and what I learned.
didn't get the offer. HC wasn't strong enough on the system design round apparently. but recruiter gave me actually useful feedback which was... rare.