Stripe has always been recognized in the engineering circle as one of the companies with "very positive technical standards but extremely strict screening". Its Online Assessment (OA) itself places great emphasis on engineering quality and system stability. Stripe Official Engineering Blog are also a lot of reflections in it, including risk control systems, payment architectures, and high-concurrency data processing practices. In the past period of time, as a front-line interview tutor at ProgramHelp, I completely accompanied and reviewed the Stripe OA of many candidates. This article is not a general summary of the test questions, but a breakdown of what Stripe is testing from an engineering perspective around real stripe oa questions.

The overall style of Stripe OA (summarized based on real stripe oa questions)
Judging from the feedback from the candidates we have assisted, Stripe OA is highly consistent in question type and rhythm:
- The topic has a clear business background, rather than pure algorithm modeling
- Multiple rules are superimposed, but they need to be processed step by step and in stages.
- The state is maintained across transactions, and you cannot just look at the current input.
- High requirements for code readability and logical splitting
These characteristics recur in most stripe oa questions and are essentially screens for engineering maturity.
Stripe OA real question sharing (high frequency stripe oa questions restoration)
The following question comes from a Stripe OA review by a candidate we have accompanied. The question structure and test points have been desensitized, but the rule logic and complexity remain consistent with real Stripe OA questions.
Problem Description
The fraud detection team at Stripe aims to reduce merchant fraud risk for Stripe with minimal pain to good merchants through machine learning. To provide initial data for training this machine learning model, you are tasked with developing a system to assess the fraud associated with transactions made by various merchants.
You are given:
Transactions_list: a list of transactions for a certain dayMerchants_list: a list of merchants, each with aBase_scoreRules_list: a list of rules corresponding to each transaction
Each transaction represents a payment from a customer to a merchant. Your task is to assign each merchant a fraud score based on all their transactions.
Scoring Rules
- Initialize each merchant’s
Current_scoreAs theirBase_score. - For each transaction in
Transactions_list, update the merchant’sCurrent_scoreIn Separate passes:- Transaction amount rule
If the transaction amount is greater than the corresponding rule’sMin_transaction_amount, multiplyCurrent_scoreBy the rule’sMultiplicative_factor. - Repeat customer rule
If the sameCustomer_idHas made Three or more transactions To the sameMerchant_id(including the current one), add All corresponding rules’Additive_factorsCumulatively. - High-frequency hourly rule
If a transaction is the third or later transaction from the sameCustomer_idWithin the same hour for the sameMerchant_id:- If hour is between 12 and 17 (inclusive): add the penalty each time
- If hour is between 9–11 or 18–21 (inclusive): subtract the penalty each time
- Transaction amount rule
Why is this question typical?
From the instructor's perspective, this question almost condenses all the core test points of Stripe OA:
1. Strong rule-driven rather than algorithmic performance
This type Stripe oa questions There is no need for complicated algorithms, but it tests whether you can:
- Understand the rules accurately
- Execute rules in order
- Ensure that the status does not go wrong in multiple transactions
2. State design is the key to success or failure
You need to maintain both:
- Merchant level
Current_score - Number of transactions in customer + merchant dimensions
- Frequency statistics of customer + merchant + hour
Many candidates lose points in stripe oa questions not because they cannot write code, but because the state modeling is not reasonable from the beginning.
3. “Separate passes” are obvious engineering signals
The question clearly requires the rules to be Separate passes This is quite common in Stripe OA.
It essentially tests:
- Would you sacrifice a little "write fast" for code clarity?
- Do you understand that maintainability is more important than merging logic?
Stripe OA common mistakes
Combined with failure cases, we summarize some of the most common problems with Stripe OA:
- Shoe all the rules into one loop
- Using temporary variables to heap logic makes the code difficult to maintain
- Ignore "third and subsequent" accumulation rules
- Boundary error occurs when judging hour interval
These problems are in Stripe oa questions It is quite fatal. Even if some samples are finally passed, they can easily be blocked by the system or manual review.
About OA seamless assist的一点真实说明
To be honest, for OA like Stripe, the ability to answer questions is just the threshold. What really determines your success is whether you can write a bunch of rules correctly within the specified time. Many students failed, not because the algorithm was not good, but because conditions were missed, accumulation rules were miscalculated, statuses were written out of order, and in the end there was no time for self-examination.
OA Traceless Assist solves this problem:
While you are doing the questions, someone will help you keep an eye on the rules, structure, and points that are easy to overturn.
For example, this stripe oa:
- The rules require passing in multiple rounds. Did you accidentally write it as one round?
- Is the accumulation of "the third and subsequent times" one less count?
- Is the hour interval boundary written in reverse?
Once these points are missed, it is basically a direct failure.
The role of the assist is simple: to pull you back before you write incorrectly, so that you can complete the question in the way Stripe wants to see it, instead of only finding out after the exam that "I actually know it, but I didn't write it correctly just now."
You don’t change the system or the environment, you still write the code yourself, you just implement the capabilities you already have. For OA with dense rules and low fault tolerance like Stripe, to put it bluntly, the difference is here.