Stripe interview rundown

Stripe coding interviews

What the rounds look like, the kinds of problems people get, and what to study first.

From public guides and candidate reports · Reviewed November 2026 · Independent, not affiliated with Stripe

What the rounds are like

StageWhat people usually describe
CodingA practical problem with several parts that build on each other
AI programmingSolve a multi-part problem with the platform's built-in AI assistant, checking what it writes
Bug squashGet failing tests passing in a GitHub repo you've never seen
IntegrationBuild 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

  1. Say it back and ask questions. How big is the input? What are the edge cases? What should you return?
  2. Start with brute force. Say it out loud with its complexity so you've got something to beat.
  3. Figure out what it really is. Is this secretly a graph? Would sorting help? Do the same subproblems keep coming up?
  4. Write it and test it. Walk through an example, then try the weird cases.

Key concepts to know

Sources