
Affirm Software Engineer candidates report a recruiter screen, practical live coding, a hiring manager conversation and, for some, system design or a virtual onsite. Coding is often easy to medium and sometimes tied to payments-style scenarios or Python fluency.
$172K
Avg. Base Comp
$245K
Avg. Total Comp
3-6 rounds
Typical Rounds
1-3 months
Process Length
Candidates describe Affirm's software engineer loop as friendly and well organized, but not always a classic LeetCode exercise. Several report practical, domain-flavored coding: filtering log-like user inputs under business rules, completing a partially written Python class for fraud detection with a broken sorting function, joining three CSV tables in Python, or fixing an ordering bug in a HashMap-based method. Others describe more familiar problems, such as 2-sum style prompts, dictionary questions, medium LeetCode problems and linked-list or dynamic programming questions.
Language matters. One candidate says feedback focused heavily on Python syntax and usage even though Java was accepted, and another found a round that expected familiarity with a particular Python library. Practice live coding in the role's language and read unfamiliar code fully before changing it.
System design questions reported include a loan repayment system that had to call a bank API available only a few hours a day, and a simple data model for a peer-to-peer payment system. One candidate had prepared for distributed systems and Kafka but was asked only about the data model, so be ready for payments modeling before advanced scale topics.
Behavioral conversations cover past projects in depth, teamwork, conflict, feedback and competing priorities. Reported timelines range from about five weeks to more than two months, and most reports in this set ended without an offer, so expect speed, clarity and communication to count. The sample is small and mixed by level.
Synthesized from 34 candidate reports by our editorial team.
Had an interview recently?
Share your experience. Unlock the full guide.
Real interview reports from people who went through the Affirm process.
The live coding round is the part I keep coming back to, because it was the easiest thing in the whole process and I still failed it. It was on HackerRank with a senior SWE and had two parts. The first was a very small bug fix in a Python data pipeline. The second was building a similar pipeline from scratch. The business logic was nearly identical across both, and it was simple enough that a junior engineer should have cleared it without trouble. My problem was strategy. I didn't plan my approach well, and I spent the rest of the day kicking myself.
The process opened with a standard recruiter call. The recruiter asked what I knew about Affirm, why I was looking for a new role, and what my expectations were. It was friendly and low-pressure.
After the coding round came a hiring manager call, another coding round, a system design interview, and a team fit conversation. I don't remember the details of those stages, so I can't speak to their format or difficulty.
My takeaway is not to underestimate the warm-up. Even a small bug fix and a rebuild of similar logic need a clear plan before you start typing, because a sloppy approach can sink a round that should be easy.
Prep tip from this candidate
In the HackerRank pipeline round, read the existing code closely before editing, since the bug fix and the from-scratch build share nearly the same business logic. Settle on your approach before writing code so the easy part doesn't turn into a failure.
Share your own interview experience to unlock all reports, or subscribe for full access.
Sourced from candidate reports and verified by our team.
Topics based on recent interview experiences.
Featured question at Affirm
Write a function is_subsequence to find out if string1 is a subsequence of string2
| Question | |
|---|---|
| Google Maps Improvement | |
| Hurdles In Data Projects | |
| Alternative Vendor Tradeoff | |
| LRU Cache 1 | |
| Reddit-like Notifications | |
| 2nd Highest Salary | |
| Closest SAT Scores | |
| Employee Salaries | |
| Subscription Overlap | |
| Empty Neighborhoods | |
| Top Three Salaries | |
| Monthly Customer Report | |
| Rolling Bank Transactions | |
| Merge Sorted Lists | |
| String Shift | |
| Comments Histogram | |
| Top 5 Turnover Risk | |
| Like Tracker | |
| Find the First Non-Repeating Character in a String | |
| Bagging vs Boosting | |
| P-value to a Layman | |
| Total Spent on Products | |
| Maximum Profit | |
| Prime to N | |
| Cumulative Distribution | |
| Top 3 Users | |
| Over-Budget Projects | |
| Minimum Change | |
| Over 100 Dollars |
Synthesized from candidate reports. Individual experiences may vary.
Candidates report an introductory call covering background, the role, the team and the process. Some say it also touched on salary expectations and remote work. Reports describe recruiters as helpful, though one candidate noted slow replies and another found role details were not answered until later.
Candidates report a live coding round, sometimes on HackerRank in a language of their choice, lasting from 30 minutes to just over an hour. Reported tasks include 2-sum style problems, log filtering under business rules, CSV table joins in Python and completing a partially written Python class. Several describe time pressure and attention to language-specific details.
Candidates typically describe a hiring manager conversation that mixes behavioral questions with discussion of past projects, challenges and tradeoffs. Some also report an earlier manager screen. One candidate says the interviewer seemed disengaged, so experiences vary. Prepare concise, concrete project stories.
Several candidates report another technical round with Affirm-style problems, such as HashMap ordering bugs, card-shuffling array logic, parent-company lookups, linked lists or dynamic programming. One candidate found this round depended on a specific Python library. Expect follow-up questions that extend the first solution.
Some candidates report a system design round of about an hour, including a loan repayment flow with a limited-hours bank API and a peer-to-peer payments data model. Others describe a virtual onsite with several technical rounds plus a hiring manager conversation. Not everyone reached this stage, and some report a panel with competency-based interviewers.