Home  /  Companies  /  Affirm Software Engineer Interview: The Real Loop
Hiring Remote (US) $150K–$220K base

Affirm Software Engineer Interview: The Real Loop

Remote-first fintech with a structured, rubric-driven loop and one of the more transparent leveling systems in the industry.

The interview loop, step by step

From the recruiter screen to the offer call. Median duration is shown in each badge.

01

Recruiter screen

Leveling expectations set early; ask for the level's rubric.

30 min
02

Technical screen

One Medium problem with emphasis on correctness and tests.

60 min
03

Virtual onsite

Coding, system design (payments-flavored), and a values round.

3 hrs
04

Hiring manager

Team fit and growth conversation.

45 min

Sample questions (reader-reported)

Drawn from reader interview reports. Frequency = how often the question (or a close variant) was reported.

Hash Map Reported

Detect split payments that together exceed a credit limit within a time window.

reader report2026
Design Senior loops

Design the ledger for installment payments with refunds and partial captures.

reader report2026
Behavioral Every loop

Describe a time you disagreed with a product decision on risk grounds.

reader report2026

Compensation by level

Reader-reported offers. Verify against Levels.fyi for your location and level before you negotiate.

LevelBaseBonusRSUsTotal / year
P3 (mid)$165K$100K / 4yr~$190K
P4 (senior)$200K$180K / 4yr~$245K
Reader-reported, illustrative — verify against current sources before relying on it.

The gap between P3 and P4 at Affirm is roughly $55,000 a year. That number — about $190K total at mid-level against about $245K at senior — is the most useful thing I know about the Affirm software engineer interview, and almost none of it turns on how well you code. It gets set in a thirty-minute recruiter call most candidates treat as paperwork. I treated that call as paperwork twice, at two other companies, and found out what it cost me when the offer arrived.

So let's start with the number, take it apart, and then be honest about everything it fails to tell you.

What $190,000 actually is

It is not a salary. It is two things added together and one of them is divided by four.

Level Base Bonus RSU Approx. total
P3 (mid) $165K $100K / 4 yr ~$190K
P4 (senior) $200K $180K / 4 yr ~$245K

P3 is $165K of cash plus a $100K equity grant spread over four years, which is $25K a year if nothing moves. P4 is $200K cash plus $45K a year of vesting stock. The posted base band runs $150K–$220K, so P3 and P4 overlap on cash and separate hard on equity. That is where the $55K lives — not in your paycheck, in your grant.

Which means the single highest-leverage moment in this process is the one where somebody decides which of those two rows you belong in, and that happens in round one.

What the number doesn't measure

The bonus column is a dash. I read that as "no meaningful annual bonus at these levels," but a dash is not a zero and I am not going to tell you it is. Ask the recruiter directly whether there is a target bonus percentage. If the answer is no, your cash is your base, full stop.

The figures also say nothing about refresh grants. A four-year initial grant with no refresh policy means year five looks nothing like year one, and I do not have Affirm's refresh data. Ask what a typical performance refresh looks like for someone hired at your level. A recruiter who won't answer that has told you something.

The RSU number is dollar-denominated at grant. Four years of a public fintech's share price is not a savings account, and $100K on an offer letter is a projection, not a deposit. Nobody at Affirm controls that and nobody should promise you otherwise.

I also don't have data on whether that $150K–$220K band is geo-adjusted for remote hires. Affirm is fully remote in the US, and remote-first companies split roughly down the middle on location-based pay. That is a question for the first call, not the offer call.

And the biggest omission: the number doesn't measure you. It measures a level. Everything below is about not getting placed a row lower than you belong.

Why this is a realistic target, and why that cuts both ways

Affirm is hiring, sponsors H1B, and is genuinely remote across the US as of this writing in July 2026. For anyone who wasn't born inside the Bay Area pipeline, that combination is rare and it is worth taking seriously — you do not need to move, you do not need a referral from a college roommate who happened to go to Stanford, and if you need sponsorship the door is not closed before you knock.

The cost of that is arithmetic. Remote-first means the applicant pool is the entire country, not one metro. You are competing with more people for the same headcount, and if you have been told to network your way around that by people who inherited a network, you already know how little that advice is worth.

Here is the compensating advantage, and it is real: the loop is rubric-driven and consistent. Interviewers score against written level expectations rather than vibes. A predictable, documented process is the closest thing to a fair fight a candidate without connections is going to get, because it rewards the person who read the rubric over the person who knows somebody.

The loop, in the order it happens

Four rounds, a bit over five hours of contact time.

Round 1 — Recruiter screen, 30 minutes

Leveling expectations get set here. This is the $55K conversation and it does not feel like one; it feels like a friendly chat about your background.

Ask, out loud: "Which level am I being considered for, and can you send me the written expectations for that level and the one above it?" Then aim every story in the rest of the loop at the language in that document.

Candidates rarely get cut in this round. They get quietly slotted, which is worse, because you spend the next three rounds performing against a bar you never read.

A photorealistic editorial portrait of a software engineer seated at a bare desk in…

Round 2 — Technical screen, 60 minutes

One Medium problem, weighted toward correctness and tests. Note the second word.

This is where most people fall out, and not for the reason they think. They produce a working solution in thirty-five minutes, say "that should work," and stop. The rubric has a line for verification and they scored nothing on it. State your test cases before you write the function — empty input, single element, the boundary of the window, the duplicate, the value exactly equal to the limit — then walk two of them through your finished code by hand.

Round 3 — Virtual onsite, 3 hours

Coding, system design with a payments flavor, and a values round.

The design block is where mid-level candidates who have never touched money movement come apart. You are not being asked to scale a URL shortener. You are being asked to hold state that has to be right, permanently, in dollars.

The values round is where people who prepared a conflict story with no actual conflict in it come apart. More on that below.

Round 4 — Hiring manager, 45 minutes

Team fit and growth. It is seldom the round that kills an offer, but it is often the round where your level gets confirmed. Bring a question about what the first six months look like for someone at your level specifically. It signals you read the document.

What the questions actually look like

Three shapes have come back from readers in 2026, and they are more specific than "medium LeetCode."

Hash map, reported in screens: detect split payments that together exceed a credit limit within a time window. That is a sliding window over per-user transaction history — a dict from user to a deque, plus a running total you decrement as events age out.

def flag(txns, limit, window):
    q, total = defaultdict(deque), defaultdict(int)
    for t in sorted(txns, key=lambda x: x.ts):
        q[t.user].append(t)
        total[t.user] += t.amount
        while q[t.user] and t.ts - q[t.user][0].ts > window:
            total[t.user] -= q[t.user].popleft().amount
        if total[t.user] > limit:
            yield t.user, total[t.user]

What makes it an Affirm question rather than a generic one is that it is a fraud pattern: someone splitting a purchase to slip under a limit. Say that out loud when you scope it.

Design, reported in senior loops: design the ledger for installment payments with refunds and partial captures. If you have never built one, learn three ideas before your onsite — append-only entries instead of mutable balances, idempotency keys so a retried webhook doesn't double-charge, and why a partial capture is a different event from a refund rather than a negative version of one. Three ideas, understood properly, will carry you further than a diagram with eight boxes.

Behavioral, reported in every loop: describe a time you disagreed with a product decision on risk grounds. This is not a generic conflict prompt. It asks whether you will push back on something revenue-positive because it is dangerous, and whether you did it with evidence rather than feelings. If your only story is a disagreement about tabs versus spaces, go find a real one before the onsite.

The honest verdict

Target Affirm if you want fintech-range compensation without moving, if you need H1B sponsorship, and if the phrase "correctness and tests" describes how you already work. The rubric consistency genuinely helps candidates who prepare deliberately, and remote is not a concession here, it is the default.

Don't bother if you are hunting top-of-band FAANG numbers — $190K to $245K is solid, competitive money and it is not that. Don't bother if you need an office and someone at the next desk to learn from; remote-first is a real constraint on how fast you absorb things early. And if you are targeting senior, don't bother going in without a payments-shaped design story, because that round will find out.

The single highest-leverage prep is not another hundred problems. It is getting the level rubric in round one and aiming everything after it at that document.

One thing to try this week

Set a timer for sixty minutes. Take the split-payment problem above, and before you write one line of the solution, write out six named test cases on paper: empty list, one transaction, two transactions exactly at the limit, two straddling the window edge, a refund, and a duplicate event ID. Then solve it and run all six by hand.

One hour. It is not going to get you an offer by itself, and I am not going to pretend it will. But it rehearses the exact behavior round two is scoring, and most candidates never rehearse it once.

You can't control how many people applied to the same remote req you did — you can control whether you walked in knowing what they were writing down.

The real talk

“Is Affirm worth applying to?”

Affirm is one of the few fintechs that stayed genuinely remote-first, which widens the applicant pool — expect competition. The loop is rubric-driven and predictable; read the level expectations they publish and aim your stories at them. Strong pick for engineers who want fintech comp without relocating.