
Affirm's Software Engineer interview typically runs 3-6 rounds over roughly 5-9 weeks, combining a recruiter screen, one or two live coding rounds, occasional system design, and a hiring-manager/behavioral conversation.
$160K
Avg. Base Comp
$230K
Avg. Total Comp
3-6 rounds
Typical Rounds
5-9 weeks
Process Length
Affirm's Software Engineer interviews typically begin with a recruiter screen (roughly 15-30 minutes) covering background, role fit, and logistics, followed by one or two live coding rounds. Candidates report a mix of formats: some get classic LeetCode-style problems (two-sum variants, graph traversal, dynamic programming on linked lists), while others describe practical, business-context coding tasks — filtering user logs against custom rules, fixing a broken sorting function inside fraud-detection code, or joining CSV tables with pandas. A few candidates specifically note that the language you code in matters: one reported that using Java instead of Python, even when accepted upfront, still drew feedback focused on Python syntax and idioms.
System design shows up in several loops, especially at the senior level, and tends to center on real payment or notification scenarios — designing a loan repayment flow around a bank API with a narrow daily request window, or sketching a peer-to-peer payment data model. Hiring-manager and behavioral rounds typically dig into past projects, conflict handling, and how you've given or received feedback. Reported round counts range from about 3 to 6, and end-to-end timelines vary widely: some candidates received offers in about five weeks, while others described the process stretching past two months, often due to scheduling and communication delays rather than interview difficulty itself.
Synthesized from 31 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.
My interview process at Affirm for the Software Engineer role involved multiple rounds: a recruiter screen, a technical live coding round on HackerRank where I got to choose my language, and a hiring manager round that mixed behavioral and technical questions. The process also had a panel-style component with multiple interviewers, each focusing on a different competency like collaboration, problem-solving, and culture fit. The team and panel members I met were generally nice and collaborative. The technical questions were practical and relevant to the actual work — I was asked to design a filter to identify fraudulent behavior based on event history, and to talk through how I'd handle competing priorities when multiple stakeholders have urgent requests. I felt the case studies were well-balanced: interesting and relevant without being trivial or unreasonably complex. My recruiter was helpful and responsive throughout. Despite all that, I made it through the early rounds but was ultimately rejected after the technical screens. Along the way there was some miscommunication about what was being evaluated at each stage, and expectations around role level weren't always clear. Overall, the people and structure felt solid, but I didn't end up receiving an offer.
Prep tip from this candidate
Be explicit with your recruiter about the role level and expectations before interviews start, since there's been confusion about whether they're hiring for IC contributors or team leads — this will help you prepare the right behavioral examples and technical depth.
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 | |
| Total Spent on Products | |
| P-value to a Layman | |
| Maximum Profit | |
| Prime to N | |
| Cumulative Distribution | |
| Top 3 Users | |
| Over-Budget Projects | |
| Over 100 Dollars | |
| Minimum Change |
Synthesized from candidate reports. Individual experiences may vary.
Most candidates report a 15-30 minute call with a recruiter covering your background, interest in the role, salary expectations, and remote or location logistics. This stage is typically low-pressure and focused on fit rather than technical depth, though a few candidates also fielded a standard behavioral question here, such as describing a time they received constructive feedback.
Candidates describe a wide range of coding formats: classic LeetCode-style problems (two-sum variants, graph traversal, dynamic programming), and practical tasks like filtering log data against business rules, debugging an existing fraud-detection class, or joining CSV tables with pandas. Some candidates report that Affirm-specific tooling or a required language, often Python, mattered as much as the algorithm itself, and execution speed under a 30-60 minute window was a common pain point.
Several candidates, particularly for senior roles, describe a system design conversation built around Affirm's actual domain: designing a loan repayment system that calls an external bank API with a limited daily request window, a multi-channel notification service, or a simple peer-to-peer payment data model. This round is not universal across every reported loop, so treat it as likely rather than guaranteed depending on level and team.
A hiring manager round typically focuses on walking through past projects in depth, including challenges faced and what you'd do differently, plus behavioral questions about handling conflict, pushing back on senior stakeholders, or giving difficult feedback to peers. Multiple candidates describe this stage as more conversational than the coding rounds, though it still carries real weight in the final decision.
For candidates who advance, a final stage often combines additional technical rounds with a panel covering collaboration, problem-solving, and culture fit. Reported round counts across the full process range from about 3 to 6, and total timelines vary from roughly five weeks to more than two months, with candidates citing recruiter scheduling and vacation delays as a common source of the longer end.