47 practice questions for Stripe QA Engineer interviews
Stripe QA engineer interviews test automation frameworks, test strategy, CI integration, performance testing, and debugging complex multi-service systems.
Category: Tree coding problemYou are building a role-based access control (RBAC) system for a multi-tenant platform. The system manages user roles across a hierarchical account...Input: List Output: Array
codingHardVerified Question#2
2. Rate Limiter
Category: Sliding window coding problemDesign a rate limiter that tracks API requests per client and enforces limits using a sliding time window. Your system must support: - hit(key,...Input: Given input Output:** Computed result
codingMediumVerified Question#3
3. Shipping Cost Calculator
Category: Algorithm coding problemYou are building a shipping cost calculator for an international e-commerce platform. The cost depends on the destination country and the product...Input: Integer(s) Output: Computed result
codingMediumVerified Question#4
4. Transaction Fee Calculator
Category: Trie-based coding problemYou are building a fee calculation system for a payment processing platform. Given transaction data as a CSV string, calculate fees based on payment...Input: String Output: Computed result
codingMediumVerified Question#5
5. Bitmap to Image Conversion
Category: Grid/matrix coding problemYou are designing a bitmap character rendering system. Given a lookup table mapping characters to 2D binary arrays, implement functionality to print,...Input: 2D grid Output: Printed output
codingMediumVerified Question#6
6. [Onsite Integration] Bike Map
Category: Trie-based coding problemYou are building a map visualization tool that generates static maps from location data. Implement a system that reads GPS coordinates, constructs...Input: Array Output: Computed result
codingHardVerified Question#7
7. Email Subscriptions
Category: String coding problemDesign a subscription management system that tracks user subscriptions and sends automated emails at specific lifecycle events. Email Types: -...Input: List Output: Computed result
codingHardVerified Question#8
8. [Bug Squash] Mako Template Engine
Category: Tree coding problemIn this bug squash round, you will find and fix errors in a Python template library. You will receive a link to a GitHub folder containing a version...Input: List Output: Printed output
codingHardVerified Question#9
9. [Bug Squash] Moshi JSON Library
Category: String coding problemIn this bug squash round, you will find and fix mistakes in a Java library called Moshi. You will receive a link to a GitHub folder containing a...Input: String Output: Computed result
codingHardVerified Question#10
10. Data Center Load Scorer
Category: Graph coding problemA data center operations team monitors server energy usage to optimize resource allocation. You receive a daily dataset of all incoming requests to...Input: Graph (nodes and edges) Output: Array
codingMediumVerified Question#11
11. Content Validation Pipeline
Category: String coding problemA platform ingests user-generated content records in a simplified CSV format. Before indexing or displaying any content, each record must pass a...Input: Array of strings Output: Array
codingHardVerified Question#12
12. Wallet Transaction Ledger
Category: String coding problemA fintech platform processes streams of wallet transactions and needs to consolidate them into account summaries. Each transaction is logged as a...Input: List Output: Computed result
codingHardVerified Question#13
13. Employee Record Matcher
Category: Array coding problemA data-quality team needs to detect duplicate or near-duplicate employee records in a large HR dataset. Each record is a row in a 2D string array...Input: Array Output: Array
codingHardVerified Question#14
14. Candidate Tech Stack Filter
Category: String coding problemA hiring platform screens candidates by comparing their declared technology stack against a job's required skills. A candidate submits a...Input: Array of strings Output: Array
codingHardVerified Question#15
15. Subscriber Notification Planner
Category: Trie-based coding problemA subscription service sends automated notifications to subscribers based on their subscription window. You are given a list of subscriber records...Input: List Output: Array
codingMediumVerified Question#16
16. Support Ticket Dispatcher
Category: Graph coding problemA customer support platform assigns incoming tickets to agents to keep workloads balanced. You are given a list of agent names and a list of tickets...Input: Graph (nodes and edges) Output: Array
codingMediumVerified Question#17
17. Order Payment Reconciler
Category: String coding problemA billing system needs to match incoming payments to open orders. Each payment arrives as a comma-separated string with three fields: a payment ID, a...Input: List Output: Computed result
codingMediumVerified Question#18
18. Service Usage Cost Calculator
Category: Array coding problemA cloud billing module computes the total cost for a customer's monthly usage. You are given a usage_report specifying the target region and...Input: Array Output: Computed result
codingHardtest automation#1
1. [OA] Selenium Grid — Design a test automation system that supports distributed parallel testing on Stripe's infrastructure
Stripe's application relies on high availability and performance, thus requiring a robust testing system that can handle concurrent test execution across multiple environments. Problem statement: Implement a testing architecture that allows for parallel test execution across different browser instances in a distributed grid setup. - classSeleniumGrid: The main class for controlling browser instances. - def __init__(self, node_count: int) -> None: Initializes the Selenium Grid with a specified number of nodes. - def register_node(self, node_id: str) -> None: Registers a new node into the grid. - def run_parallel_tests(self, tests: List[Test]) -> List[TestResult]: Executes the provided list of tests in parallel across all registered nodes. Example 1: Input: grid = SeleniumGrid(5) Output: None Explanation: Creates a Selenium Grid with 5 nodes available for test execution. Example 2: Input: grid.register_node('node1') Output: None Explanation: Registers a new node with id 'node1'. Constraints: - 1 <= node count <= 20 - 1 <= number of tests <= 500
codingHardtest automation#2
2. [OA] Page Object Model — Implement a test automation framework for Stripe's web interface
The web interface at Stripe requires robust testing to ensure the reliability and usability of our financial services. With rapidly changing features, an efficient automation framework is key to maintaining high-quality standards. Problem statement: You need to create a test automation framework for Stripe's web interface using the Page Object Model pattern. The framework should allow for easy maintenance and scalability. - classTestAutomationFramework: The main class for the framework. - def __init__(self) -> None: Initializes the framework. - def add_page(self, page: Page) -> None: Adds a new page to the framework. - def run_tests(self) -> List[TestResult]: Runs the defined test scenarios and returns results. Example 1: Input: framework = TestAutomationFramework() Output: None Explanation: Initializes a new test automation framework. Example 2: Input: framework.add_page(HomePage()) Output: None Explanation: Adds the HomePage to the test framework. Constraints: - 1 <= number of pages <= 100 - 1 <= number of tests <= 1000
system designHardapi design#3
3. [OA] Flaky Test Detector — Implement a system to identify flaky tests in Stripe's CI pipeline
To maintain the reliability of our software, identifying tests that intermittently fail is crucial. Stripe needs a system that can intelligently analyze test outcomes to flag flaky tests. Problem statement: Design a system that collects test run results over time, analyzes patterns, and flags tests with inconsistent results. - classFlakyTestDetector: The main class for detecting flaky tests. - def __init__(self) -> None: Initializes the detector with a history of test results. - def add_run(self, test_id: str, result: bool) -> None: Adds a test run result to the history. - def find_flaky_tests(self) -> List[str]: Identifies and returns a list of flaky test IDs. Example 1: Input: detector = FlakyTestDetector() Output: None Explanation: Initializes a Flaky Test Detector. Example 2: Input: detector.add_run('test1', True) Output: None Explanation: Records the result of a test run. Constraints: - 1 <= number of runs <= 10^5
system designHardapi design#4
4. [OA] Test Result Aggregator — Design a system for collecting and reporting test results from Stripe's CI
As part of Stripe's commitment to quality, capturing and aggregating test results efficiently is vital to monitor the health of our deployments. Problem statement: Design a system that collects test results from multiple sources, aggregates them, and provides an interface to access the aggregated data. - classTestResultAggregator: The main class for managing test results. - def __init__(self) -> None: Initializes the aggregator. - def add_result(self, result: TestResult) -> None: Adds a new test result to the aggregator. - def get_summary(self) -> Summary: Returns an overview of the results collected. Example 1: Input: aggregator = TestResultAggregator() Output: None Explanation: Initializes a new test result aggregator. Example 2: Input: aggregator.add_result(TestResult(1, True)) Output: None Explanation: Adds the test result to the aggregator. Constraints: - 1 <= number of results <= 10^6