
Affirm software engineering candidates describe recruiter screening, practical live coding, manager conversations, and occasional system design, with Python execution and time pressure recurring in several reports.
$186K
Avg. Base Comp
$225K
Avg. Total Comp
3-6 rounds
Typical Rounds
2 months
Process Length
Affirm Software Engineer interview reports point to a process that often begins with a recruiter or HR conversation before moving into coding. Several candidates encountered live coding described as practical rather than purely puzzle-based: filtering log-like inputs under business rules, traversing objects, extending a simulation, using a dictionary, or working with arrays and hashing. Practice reading a prompt carefully, implementing under time pressure, and explaining the choices you make as you code.
Language fluency can matter as much as the underlying approach. Candidates described Python-oriented work or feedback focused on Python usage, including one candidate who used Java after being told the exercise was language-agnostic. That does not establish a universal language requirement, but it makes targeted practice in the role’s expected language sensible when the recruiter can confirm it.
System design appeared in several reports, including a payment-repayment design constrained by an external bank API’s limited daily request window. Candidates may also meet a hiring manager to discuss prior projects, tradeoffs, teamwork, or conflict. Prepare concise project stories alongside coding practice, and be ready to reason about scheduling, reliability, and operational constraints instead of treating design as a generic architecture exercise. Evidence on the exact loop varies by candidate.
Synthesized from 10 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.
I got rejected in the live coding round. The questions was easy around a practical financial scenario it was for a backend role. Recruiter told me it would be language agnostic but the team was initially working on python and trying to switch to Kotlin. I chose Java to do the challenge but ig they wanted someone whos was very proficient in python and that's where i lacked.
Questions asked: Just had my live coding round at Affirm for the Software Engineer II Backend role (Card Mgmt & Transaction Processing). Wanted to share since I couldn't find anything specific about the actual format online. It's NOT LeetCode. They gave me a partially implemented Python class — already had some code in it, some methods missing, some logic broken. The domain was fraud detection for loan/ticket processing. Input was JSON with fields like loan_id, ticket_id, status, etc. My job was to fill in the missing methods to complete the fraud detection logic, and fix a bug in an existing sorting function that was ordering records incorrectly. The hard part wasn't the algorithm — it was reading unfamiliar code fast and understanding the intent before touching anything. If you jump in without reading the whole class first, you'll break what's already there.
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 | |
| 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 | |
| Prime to N | |
| Cumulative Distribution | |
| Top 3 Users | |
| Over-Budget Projects | |
| Over 100 Dollars | |
| Find the Missing Number | |
| Minimum Change | |
| Scrambled Tickets |
Synthesized from candidate reports. Individual experiences may vary.
Several candidates report an opening recruiter or HR call covering role basics, salary expectations, remote work, background, availability, or team fit. Treat this as a likely fit conversation rather than a confirmed technical stage for every opening.
Candidates report coding involving log filtering, dictionaries, object traversal, simulations, arrays and hashing, or a partially implemented class. Some describe easy prompts but limited time, so practice explaining an efficient implementation while checking language-level details.
Some candidates report a manager conversation focused on previous work, project decisions, teamwork, and conflict. Be prepared to explain a past project’s tradeoffs clearly; the available reports do not establish that every candidate receives this as a separate round.
Several reports include system design or additional technical interviews. One candidate designed a payment-repayment system with an external bank API limited to a daily request window, suggesting candidates may need to discuss scheduling, reliability, and failure handling.