← Back to Directory

Stripe interview notes, page 24 of 35

Large Enterprises

Most of these Stripe write-ups come from Software Engineers (295), then Product Managers (22) and Data Scientists (20). The most reported rounds are the technical phone screen (206), the system design round (39), the behavioral / leadership round (22) and the product sense round (20).

342 interview notes · updated Oct 2026

Stripe·Software Engineer·Technical Phone Screen

Jun 2026
Stripe coding screen for a software engineer role, one question the whole time but it had enough layers to keep you busy. The core problem wasn't hard but the follow-ups are where things got interesting.
  • Given a list of transactions, each with an amount, payment status, and payment type, compute the total fee charged across all transactions. Fee rates are provided as a lookup table keyed on (status, type). Transactions with no matching entry in the table contribute zero fee. How do you handle the streaming version, per-merchant aggregation, and multi-currency normalization as follow-ups?

“The base problem took maybe 10 minutes, just iterate and do a dict lookup.”

View Post

Stripe·Software Engineer·Technical Phone Screen

Jun 2026
Stripe coding screen for a software engineer role. One problem, but it had a twist that made me rethink my whole approach halfway through.
  • You're given a transaction-fees problem. Extend it so that once a specific merchant's cumulative transaction volume with a specific payment provider crosses 10,000, all future transactions between that merchant and provider become fee-free. The waiver tracks per (merchant, provider) pair, not globally, and applies only after the threshold is crossed.

“I started building the per-provider global accumulator before I even finished reading the spec, which cost me.”

View Post

Stripe·Software Engineer·Online Assessment (OA)

Jun 2026
Stripe SWE interview with a KYC verification logic problem. You get a set of business account records and a blocklist, and you have to implement a multi-rule validation pipeline that outputs VERIFIED or NOT_VERIFIED per record. Fairly involved for what sounds like a straightforward coding task.
  • Given a list of business account records, each containing 6 KYC fields including business_name, business_full_name, and full_statement_descriptor, plus a blocklist of generic descriptors, implement a function that outputs VERIFIED or NOT_VERIFIED for each record. The rules are: all 6 fields must be present and non-empty; full_statement_descriptor must be between 5 and 31 characters inclusive; full_statement_descriptor must not match any blocklist entry (case-insensitive); and at least 50% of the words in either business_name or business_full_name must appear in full_statement_descriptor (case-insensitive). Any rule violation means NOT_VERIFIED.

“The word overlap rule is where things get slippery.”

View Post

Stripe·Software Engineer·Technical Phone Screen

Jun 2026
Stripe SWE interview with a single coding question about validating a numeronym. Pretty niche problem and I wasn't sure how deep they wanted me to go with edge cases.
  • Write a function to validate whether a given string is a valid numeronym (e.g. 'i18n' or 'k8s').

“I knew what a numeronym was which helped, but I second-guessed myself on the edge cases.”

View Post

Stripe·Software Engineer·Technical Phone Screen

Jun 2026
Stripe SWE interview with a coding problem centered on building the validation layer of a fraud-detection pipeline. The problem looked like a clean CSV parsing task on the surface but had enough edge cases baked in that you had to think carefully about what a 'real' implementation would need.
  • Write a function that reads a transaction CSV file row by row and validates that each row has all seven required fields present and non-empty, returning a structured result per row that includes the row number, a VALID or INVALID status, and the names of any missing fields. Handle edge cases like an empty file, a header row, rows with the wrong number of columns, and quoted fields with embedded commas.

“The core logic came together pretty fast but I almost wrote a naive split-on-comma approach before catching myself.”

View Post

Stripe·Data Scientist·Technical Phone Screen

Jun 2026
Stripe data scientist interview, heavy on experimentation stats. Five questions back to back, all quantitative, no fluff. The kind of loop where you either know your sample size formulas or you don't.
  • For a two-arm conversion experiment with a baseline rate of 12% and a target absolute uplift of 0.5 percentage points (two-sided, alpha 0.05, power 80%), derive the required per-variant sample size using the normal approximation for a difference in proportions. Show the formula and walk through the calculation.
  • You ran the experiment for a week. Control had 150k users with 18,000 conversions, treatment had 150k users with 18,900 conversions. Calculate the point estimate, a 95% confidence interval, and a p-value. Then explain whether the result is statistically significant, and whether it's actually meaningful for the business.
  • Suppose you apply CUPED using a pre-experiment covariate that explains 30% of the variance in the outcome (R-squared = 0.30). How does this change the effective variance, and what is the revised minimum detectable effect? Show the math.
  • You're monitoring four guardrail metrics with unadjusted p-values of 0.03, 0.01, 0.20, and 0.04. Apply Holm-Bonferroni correction at a familywise error rate of 5% and state which guardrails are still significant. Show the ordering and the adjusted thresholds at each step.
  • How would you detect and correct for overdispersion or miscalibration in conversion rate estimates when users are clustered by geographic region?

“I knew the formula but fumbled the pooled variance piece.”

View Post

Stripe·Software Engineer·Technical Phone Screen

Jun 2026
Stripe SWE interview that was basically a multi-part coding problem dressed up as a system design exercise. Three escalating parts, each adding more edge cases and complexity. The kind of question where you think you're done and then they add currency conversion.
  • Given a price catalog and a list of orders, compute the total cost per order while handling missing SKUs, invalid quantities, and malformed input without crashing. Return results sorted by order ID.
  • Extend the solution to support per-item discount rates and per-order tax rates, with range validation, and let the caller choose sort field and direction.
  • Further extend the solution to handle multi-currency orders, converting totals to a target currency using a provided rates mapping, with banker's rounding applied consistently.
  • What is the time and space complexity of your implementation across each part, and how would you adapt it for very large inputs?
  • Describe a test plan that covers normal cases, missing SKUs, invalid quantities, extreme numeric values, discount and tax edge cases, sort correctness, and currency conversion failures.

“The sorting part is where I slipped up initially.”

View Post

Stripe·Software Engineer·Technical Phone Screen

Jun 2026
Stripe coding screen for a software engineering role. One problem, fairly self-contained, but the edge cases add up fast if you're not careful about how you model the state.
  • Given a stream of transactions where each transaction can charge a fee and modify one or more account balances, process all transactions and return every account that ends up with a non-zero balance.

“Feels straightforward until you realize fees and multi-account updates mean you can't just do a simple running total per account.”

View Post

Stripe·Software Engineer·Onsite - System Design / Architecture

Jun 2026
Stripe system design round for a software engineer role, heavy on payments infrastructure. Four-part progressive problem that kept building on itself, which I wasn't fully expecting. The last part about late-arriving records and partial matches is where things got messy for me.
  • Design a system that ingests two streams of payment records (like an internal ledger and an external processor) and produces per-account totals from each.
  • Extend the system to match records across both streams using account ID, amount, and a timestamp window, and report any unmatched entries on either side.
  • How would you generate stable, unique reconciliation IDs for matched pairs and unmatched singletons, and guarantee idempotency so the same input always produces the same IDs across re-runs?
  • How do you handle late-arriving records, partial matches like one-to-many splits or refunds, and produce a daily reconciliation report? Also discuss your data structures, time complexity, and how ID generation avoids collisions across reruns.

“Felt straightforward at first.”

View Post

Stripe·Software Engineer·Technical Phone Screen

Jun 2026
Stripe SWE coding round, pretty straightforward problem about picking minimum cost options across a set of factories. Nothing too wild but it felt like a warmup question that might go somewhere more complex.
  • Given N factories, each with a list of cost options, pick exactly one option per factory to minimize the total cost. Return that minimum total cost.

“Pretty much just grab the minimum from each factory's list and sum them up.”

View Post