What the rounds are like
| Stage | What people usually describe |
|---|---|
| Coding | A practical problem with several parts that build on each other |
| AI programming | Solve a multi-part problem with the platform's built-in AI assistant, checking what it writes |
| Bug squash | Get failing tests passing in a GitHub repo you've never seen |
| Integration | Build to a spec using an unfamiliar API or library, reading its docs as you go. It's hard to get partial credit |
Problems keep adding parts and you usually won't finish them all. Write code that's easy to extend, because each new part builds on the last. In bug squash, a Stripe interviewer on Blind said fewer than 10% of candidates find the Python bug, and how you debug matters more: use a debugger, get unstuck and avoid rabbit holes.
What people have been asked
These come up in candidates' own write-ups of their interviews. Most have several parts that build on each other. We wrote the example prompts ourselves, so the wording you get will be different.
Check transactions against rules
A risk engine that accepts or denies transactions based on rules, which get more complex in each part. One candidate got it in the AI programming round.
Part 1 is easy. The later parts add AND, OR and nested brackets, so structure your code for that from the start. With an AI assistant, you drive a modular design instead of letting it write one giant function.
How it might be asked
You're given a list of transactions, each with attributes like amount and country, and a list of deny rules like 'amount > 1000'. Decide whether each transaction is accepted or denied. Then support rules combined with AND and OR, and then nested rules with parentheses.
Key concepts to know
Try this Interview
Convert between currencies
Parse a compact string of exchange rates, then convert amounts, first directly and then through other currencies.
The parsing is fiddly but easy. The later part is really a graph problem: currencies are nodes, rates are edges, and a direct rate might not exist.
How it might be asked
You get exchange rates as a string like 'USD:CAD:DHL:5,USD:GBP:FEDX:10' (from, to, method, rate). Parse it, then convert an amount from one currency to another. Then handle pairs with no direct rate by chaining through other currencies.
Key concepts to know
Try this Interview
Build a rate limiter
Implement a fixed or sliding window limiter as working code.
Know the trade-offs between approaches, and handle the edge right at a window boundary.
How it might be asked
Implement a rate limiter where each API key can make at most N requests in any 60-second window. Write allow(key, timestamp), which returns whether a request is allowed.
Key concepts to know
Try this Interview
Calculate shipping costs
Work out an order's shipping cost from a nested rate table, then add tiered pricing by quantity.
Part 1 is a lookup. The tiers change how cost is calculated, so keep the pricing logic in one place that's easy to swap out.
How it might be asked
Given an order (a country plus a list of products and quantities) and a table of shipping costs per country and product, return the total shipping cost. Then support costs that change by quantity tier.
Key concepts to know
Try this Interview
How to approach a problem
- Say it back and ask questions. How big is the input? What are the edge cases? What should you return?
- Start with brute force. Say it out loud with its complexity so you've got something to beat.
- Figure out what it really is. Is this secretly a graph? Would sorting help? Do the same subproblems keep coming up?
- Write it and test it. Walk through an example, then try the weird cases.
Key concepts to know
- Object-oriented designSplit a small program into classes that are easy to change.
- Hash maps and sliding windowsSwap nested loops for a single pass.
- Graph traversal and shortest pathsBFS, DFS and Dijkstra, and when to use each.
- Rate limitingStop too much traffic with token buckets and sliding windows.
- Trees and recursionSolve tree problems by deciding what each node returns.
Sources
We pulled this together from candidates' own write-ups of their interviews. They don't always agree, and things change over time.
- Blind: Stripe SWE L3 loop with AI programming round
- Blind: Bug squash and integration thread with a Stripe interviewer (2022)
- Jointaro: Staff SWE Toronto, webhook design (2023)
- Jointaro: SWE Bengaluru, currency conversion (2025)
- Jointaro: SWE Berlin, rate limiter design (2024)
- Jointaro: SWE San Francisco full loop (2025)
- 1point3acres: Onsite with email subscription, bug fix, reconciliation
Practice Loop is an independent practice tool and isn't affiliated with or endorsed by Stripe.