Affirm·Software Engineer·Onsite - System Design / Architecture
Jun 2026
System design round at Affirm for a software engineering role. The whole thing was basically one long question about building an A/B testing platform from scratch, and it went pretty deep into the weeds on bucketing, pipelines, and stats. Left feeling like I covered most of it but probably could've been sharper on the analysis layer.
- Design an A/B testing platform for a large product organization, covering experiment definition, user assignment, exposure logging, metric collection, analysis, and experiment lifecycle management.
- How would you ensure user assignment is deterministic and consistent across sessions, and how do you handle mutual exclusion between overlapping experiments?
- Walk through the event pipeline for exposure logging at billions of events per day. What does the architecture look like from the client event to the data warehouse?
- How would you approach the stats engine? Compare frequentist and Bayesian approaches and discuss guardrails like sample ratio mismatch and the peeking problem.
- How would you integrate the experimentation platform with a feature flag service, and what are the tradeoffs involved?
“This is a beast of a question.” The rest of the author's notes on Software Engineer interview at Affirm, Onsite - System Design / Architecture round, covers how they worked through the question, what the panel pushed back on, and what they would do differently.
View Post