Stripe software engineer interviews cover algorithms, data structures, system design, and coding problems drawn from real interview rounds.
usage_report specifying the target region and...Input: Arraydef find_shortest_transaction_path(transactions: List[Tuple[str, str]], start: str, end: str) -> List[str]:transactions = [("A", "B"), ("B", "C"), ("A", "C")], start = "A", end = "C" ['A', 'C'] transactions = [("A", "B"), ("B", "C"), ("C", "A")], start = "A", end = "D" [] processed or unprocessed). Create a function that returns all payment IDs that are unprocessed.def find_unprocessed_payments(payment_list: List[Tuple[str, str]]) -> List[str]:payment_list = [('abc123', 'processed'), ('xyz789', 'unprocessed'), ('qwe456', 'processed')] ['xyz789'] xyz789 is unprocessed.Example 2: payment_list = [('p1', 'unprocessed'), ('p2', 'unprocessed'), ('p3', 'processed')] ['p1', 'p2'] p1 and p2 are classified as unprocessed.Constraints:payment_list can be between 1 and 10^5.100 characters.processed or unprocessed. PaymentProcessor class will manage different types of payments, ensuring they can be processed securely and reliably.Requirements: initiate_payment(payment_method: str, amount: float) -> str approve_transaction(transaction_id: str) -> bool decline_transaction(transaction_id: str) -> bool get_transaction(transaction_id: str) -> dict initiate_payment('credit_card', 100.00) → Output: transaction_id: 'txn_12345' approve_transaction('txn_12345') → Output: True def add_server(self, server: str) -> None: def remove_server(self, server: str) -> None: def get_next_server(self) -> str: def health_check(self) -> List[str]: def log_request(self, server: str) -> None: load_balancer = LoadBalancer()
load_balancer.add_server("server1")
load_balancer.add_server("server2")
load_balancer.get_next_server() "server1" server1 on the first call. load_balancer.add_server("server3")
load_balancer.get_next_server()
load_balancer.get_next_server() "server2" server1, the next in line is server2 followed by server3. process_transaction(transaction_id: str, amount: float) - Processes a transaction and updates internal state. get_transaction_status(transaction_id: str) - Retrieves the status of a specific transaction. refund_transaction(transaction_id: str) - Issues a refund for a completed transaction and updates the status. process_transaction(transaction_id: str, amount: float) -> None - Processes the transaction identified by transaction_id with the specified amount. get_transaction_status(transaction_id: str) -> str - Returns the status of the specified transaction.refund_transaction(transaction_id: str) -> bool - Refunds the transaction and returns True if successful, False otherwise.tp = TransactionProcessor() tp.process_transaction('txn_001', 100.0) tp.get_transaction_status('txn_001') → Output: 'successful' tp = TransactionProcessor() tp.process_transaction('txn_002', 50.0) tp.refund_transaction('txn_002') tp.get_transaction_status('txn_002') → Output: 'refunded' def create_campaign(id: str, name: str, budget: float, start_date: str, end_date: str) -> None: Creates a new campaign. def update_campaign_status(id: str, status: str) -> None: Updates the status of the campaign. def fetch_campaigns(start_date: str, end_date: str) -> List[Dict]: Returns all campaigns within the date range. def calculate_returns(id: str) -> float: Calculates returns for the specific campaign based on its spend and performance metrics. def list_campaigns_by_status(status: str) -> List[Dict]: Lists all campaigns with a specified status. def pause_campaign(id: str) -> None: Pauses an active campaign. def resume_campaign(id: str) -> None: Resumes a paused campaign. create_campaign('001', 'Holiday Sales', 10000.0, '2023-11-01', '2023-11-30') Campaign created. pause_campaign('001') Campaign paused. Sign up for free to access walkthroughs, AI-generated questions, and more.
Get Started Free