DEV Community

Cover image for Is Stripe OA the Ceiling of Big Tech Online Assessments?
net programhelp
net programhelp

Posted on

Is Stripe OA the Ceiling of Big Tech Online Assessments?

Among all Online Assessments in North American big tech, Stripe’s OA truly stands out. It doesn’t test flashy algorithms or LeetCode tricks. Instead, candidates are given a long, rule-heavy business scenario question. You get one hour for a single problem — and that’s enough to expose your ability in logic decomposition and real-world engineering.

Many candidates fail Stripe OA not because they lack coding skills, but because they fall into a chaotic rhythm of coding while reading. They juggle amount multipliers, transaction counts, and time-based penalties all at once, which often leads to duplicated calculations or missing critical conditions.

In this article, we’ll fully break down the classic “Merchant Fraud Score Calculation” problem, share a reusable solution framework, highlight common pitfalls, and finally introduce a low-effort option for those under tight OA deadlines.

1. Core Objective (One Sentence)

Given a day’s transaction records and their corresponding rules, calculate the final fraud score for each merchant and output results in the format name,score, sorted by merchant name in lexicographical order.

At its core, this is “rule-based scoring,” but with multiple conditions and priorities — processing transactions one by one is almost guaranteed to fail.

2. Key Inputs (Three You Must Master)

  1. transactions_list: All transactions for the day, each containing merchant ID, user ID, transaction amount, transaction hour, etc.
  2. rules_list: One-to-one with transactions. Each rule includes minimum amount, multiplier, additive factor, and penalty value.
  3. merchants_list: The list of merchants, each with a base score (initial current_score = base_score).

Critical reminder: transactions and rules are strictly one-to-one. Merging them early can eliminate over 80% of potential bugs.

3. The 6-Step Solution Framework (Safe and Reliable)

The essence of this problem is “collect state first, settle scores later.” Do not calculate everything immediately per transaction.

Step 1: Convert Merchant Data into a Dictionary

Start by converting merchants_list into a dictionary:

{ merchant_id: current_score }

Initialize current_score using base_score. All future updates modify this value.

Step 2: Merge Transactions and Rules

Since each transaction corresponds to a rule, merge them into unified records containing:

  • merchant ID
  • user ID
  • transaction amount
  • transaction hour
  • minimum amount
  • multiplier
  • additive factor
  • penalty value

All subsequent logic should operate on this merged list to reduce complexity and mistakes.

Step 3: First Pass — Apply Amount Multipliers

Rule: if transaction_amount > minimum_amount, multiply the merchant’s current score by the multiplier.

  • Use strictly greater than (>), not >=
  • Apply per transaction
  • Only handle multiplication in this pass

Step 4: Second Pass — User + Merchant Additive Rule

Rule: if the same user transacts with the same merchant at least 3 times, sum all additive factors in that group and add once to the merchant’s score.

  • Group by (merchant_id, user_id)
  • Check transaction count
  • If count ≥ 3, sum additive factors and apply once

Do not add per transaction — this causes double counting.

Step 5: Third Pass — Same-Hour Penalty Logic

Trigger condition: same merchant, same user, same hour, transaction count ≥ 3.

  • 12:00–17:00 (inclusive): add penalty value
  • 9:00–11:00 or 18:00–21:00 (inclusive): subtract penalty value
  • Other hours: no change

Group by (merchant_id, user_id, hour), calculate total penalty as penalty_value × transaction_count, and apply once based on the time window.

Step 6: Sort and Output

Sort merchants by name in lexicographical order and output strictly as:

name,score

HackerRank is extremely strict — extra spaces or missing commas will fail the test.

4. What Stripe Is Really Testing

Stripe OA is not about algorithmic complexity. It evaluates:

  1. Business rule decomposition
  2. Multi-dimensional state grouping
  3. Engineering discipline and edge-case handling

Coding while reading almost always leads to confusion. Remember the principle: group first, settle later.

5. When Time Is Tight: A Low-Stress Option

Not everyone has the luxury of debugging complex rules under a strict deadline. In critical stages, one formatting mistake can derail your entire interview process.

A practical alternative is using professional [OA assistance services](https://programhelp.net/en/price/), covering Stripe, Google, Amazon, and platforms like HackerRank, CodeSignal, and Niuke.

  • North American engineers, manual execution (not bots)
  • 100% rule compliance, all test cases passed or no charge
  • Secure remote operation, no account sharing
  • Fast response, ideal for tight deadlines

OA is simply a filtering step. Saving time here lets you focus on interviews that truly differentiate candidates.

Final Thoughts

Stripe’s OA may look intimidating, but once you master the staged-processing framework, even complex business logic becomes manageable. Solving it yourself is a great exercise in real-world thinking, and when time is limited, choosing a safer path can prevent unnecessary losses.

If you’re facing other big tech OAs or want deeper breakdowns, feel free to join the discussion. Best of luck passing your OA and landing the offer you want.

Top comments (0)