← Stripe Interview Insights

Stripe·Software Engineer·Technical Phone Screen·Intermediate

Intermediate
Jun 2026

Summary

Phone screen for a software engineer role at Stripe. The one question I saw flagged everywhere on forums beforehand showed up, so at least I wasn't totally blindsided. Speed mattered a lot here, both writing clean code and covering edge cases fast.

Questions Asked (1)

Q1

Implement a payment reconciliation system that matches transactions across two data sources and identifies discrepancies.

Algorithms & Data StructuresSystem DesignTechnical Trade-offs
Author's notes

This one circulates a lot so I'd seen it before, but knowing it's coming and actually executing under time pressure are two different things.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements: data sources, matching criteria, volume, and discrepancy types. Then propose a scalable architecture using hash-based matching or sorted merge, and discuss trade-offs around accuracy, performance, and fault tolerance. Finally, outline a reconciliation algorithm and how to handle edge cases like duplicates and missing transactions.

Pro tip: Emphasize idempotency and auditability: reconciliation systems must be re-runnable without side effects, and every discrepancy should be traceable to its source. Mentioning these shows production maturity beyond just algorithms.

1. Clarify Requirements and Constraints

Ask about data sources (e.g., internal DB vs. external API), matching keys (transaction ID, amount+date), data volume, latency needs, and what constitutes a discrepancy (missing, extra, mismatched amount).

2. Design Data Model and Matching Strategy

Define a canonical transaction record and choose a matching approach: exact key match (hash map) for speed, or fuzzy matching (e.g., amount within tolerance) if keys are unreliable. Consider sorting both sources for merge-based matching.

3. Outline Reconciliation Algorithm

Describe step-by-step: load and normalize data, index by key, iterate to find matches, flag discrepancies (missing in A, missing in B, amount mismatch), and handle duplicates by grouping or using composite keys.

4. Address Scalability and Reliability

Discuss partitioning (e.g., by date or merchant), batch processing, and idempotent re-runs. Mention using a persistent store for results and alerting on discrepancies.

5. Discuss Trade-offs and Edge Cases

Compare in-memory vs. distributed processing, exact vs. fuzzy matching, and real-time vs. batch reconciliation. Cover edge cases like timezone differences, currency conversion, and partial refunds.

Key Points to Mention

  • Hash-based matching for O(n) time complexity, with memory trade-offs
  • Handling duplicates and many-to-many matches using composite keys or grouping
  • Idempotency and audit trails for re-runnable reconciliation
  • Scalability via partitioning (e.g., by date range) and batch processing
  • Trade-offs between exact and fuzzy matching (accuracy vs. recall)
  • Discrepancy categorization and reporting for actionable insights

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.