← Back to Directory

Affirm interview notes, page 2 of 4

Large Enterprises

Most of these Affirm write-ups come from Software Engineers (25), then Data Scientists (4) and Product Managers (3). The most reported rounds are the technical phone screen (15), the hiring manager screen (5), the system design round (4) and the product sense round (3).

32 interview notes · updated Jul 2026

Affirm·Data Scientist·Hiring Manager Screen

May 2026
Interviewed for a Data Scientist role at Affirm, specifically for their Credit and Fraud analytics teams. Two questions, one soft and one softer, but the cross-team culture angle caught me slightly off guard.
  • Tell me about yourself and walk me through your resume.
  • How do you handle cultural differences when working within or across teams?

“Pretty standard opener.”

View Post

Affirm·Software Engineer·Technical Phone Screen

May 2026
SQL-heavy technical screen for a Data Engineer role at Affirm. Three questions, all SQL, all with a window function angle. Not a casual warm-up round.
  • Using a CTE, write a query to find total successful revenue and distinct active customers per region for the last three full calendar months. Include a window function to rank regions by revenue within each month. Output should include month (YYYY-MM), region, revenue, active_customers, and rank.
  • For each customer, return their top three successful transactions by amount. Ties in amount should be broken by the earlier transaction timestamp. Return customer_id, transaction_id, amount, transaction_ts, and the per-customer rank.
  • Using a CTE and window functions, compute the average gap in days between consecutive successful transactions per customer over the past 180 days, then roll that up to the segment level. Return segment, number of customers covered, and average gap days.

“This took me longer than it should have to set up the month truncation logic correctly.”

View Post

Affirm·Product Manager·Onsite - Product Sense / Strategy

May 2026
Interviewed for a PM role at Affirm and got a product growth question about Spotify Premium. Pretty standard stuff but it made me think harder than expected about monetization levers.
  • How would you grow the number of Spotify Premium subscribers?

“I jumped straight into acquisition tactics and kind of forgot to talk about retention, which is probably where the real leverage is.”

View Post

Affirm·Software Engineer·Onsite - Coding / Algorithms

May 2026
Affirm SWE interview, part 3 of what sounds like a multi-part coding round. The problem involved fraud event recording and detection. Finished early, all tests passed, and even had time to talk through production concerns with the interviewer.
  • Implement a system to record fraudulent transaction data into a Fraud Event structure, then write logic to identify all fraud cases from that data.

“Went surprisingly clean.”

View Post

Affirm·Software Engineer·Technical Phone Screen

May 2026
Affirm SWE interview with a classic debt settlement problem. The algorithmic depth required here was higher than I expected for a phone screen, especially the follow-up pushing into exponential-time DP territory.
  • Given a list of users with net balances (positive means they are owed money, negative means they owe money), find the minimum number of transactions required to settle all debts so every balance reaches zero.
  • Implement an O(2^N) DP solution over balance subsets and explain why the greedy approach can produce a suboptimal result.

“I jumped straight to greedy, pairing the biggest creditor with the biggest debtor each round.”

View Post

Affirm·Software Engineer·Technical Phone Screen

May 2026
Affirm software engineer interview with a meaty filtering function problem that had a bunch of edge cases, plus a debugging section where you had to spot subtle Python bugs. The kind of question that looks straightforward until you actually read the requirements carefully.
  • Implement a filter_events function that filters a list of event dictionaries by type inclusion/exclusion, timestamp range, deduplication by id (keeping the latest ts), and a limit on results. Results should be sorted by timestamp ascending with stable ordering on ties.
  • What is the time and space complexity of your filter_events implementation, and how would you optimize it if the input is already sorted by timestamp?
  • Find and fix the bug in this snippet: `def filter_types(events, t): return [e for e in events if e['type'] is t]`. What test would catch it?
  • Find and fix the bug in this snippet: `def filter_events(events, include=set()): return [e for e in events if e['type'] in include]`. What test would catch it?

“This one had way more moving parts than I expected.”

View Post

Affirm·Data Scientist·Technical Phone Screen

May 2026
Had a credit risk case question for a Data Scientist role at Affirm. Pretty straightforward loan profitability math, but it's the kind of thing where you either know the mechanics or you fumble around looking lost.
  • A personal loan has a principal of $1,000, a 30% APR, and a 4-month term. Assuming no compounding, inflation, or opportunity cost, what is the total profit on this loan?

“The math itself is not hard once you see it.”

View Post

Affirm·Software Engineer·Onsite - System Design / Architecture

May 2026
System design round at Affirm for a software engineer role. The whole session was basically one big question about building an A/B testing platform from scratch, and it went deeper than I expected.
  • Design an A/B testing platform that allows product teams to run controlled experiments at scale, covering experiment configuration, user assignment, metrics collection, and statistical analysis.
  • How would you handle mutual exclusion and layering when multiple experiments are running concurrently and their targeting rules overlap?
  • What are the bottlenecks in the assignment service hot path, and how would you keep assignment latency under 10ms at the 99th percentile?
  • The platform needs to handle a high-volume event stream for exposure and conversion events. How do you architect the metrics collection pipeline to deal with late-arriving events?
  • How would you evolve this platform to support ML-driven multi-armed bandit experiments instead of traditional fixed-allocation A/B tests?

“This was a sprawling question and I underestimated the scope at first.”

View Post

Affirm·Software Engineer·Technical Phone Screen

May 2026
Part two of an Affirm software engineer interview focused on a coding problem around matching fraud events to transactions. Not a lot of context in what I have here, but it was a real implementation task, not just theory.
  • Implement a function that matches a Fraud Event to its corresponding transaction.

“This is the kind of problem that looks straightforward until you start thinking about edge cases like duplicate transactions, partial matches, or timing windows.”

View Post

Affirm·Data Scientist·Technical Phone Screen

Jun 2026
Affirm data scientist interview with a pandas-based credit risk question. Pretty applied, felt more like a take-home vibe even though it was probably a live screen. The problem was grounded in real fintech logic which I appreciated.
  • Given a loan payments dataset, use pandas to compute: (a) total amount paid per loan, (b) payment success rate per loan, and (c) a boolean flag showing whether the loan's full $1,000 principal has been repaid. Return the resulting DataFrame.

“The groupby part was fine, agg with a dict of functions is second nature at this point.”

View Post