Fraud systems are hard to test well. Not because engineers cannot write tests, but because the data needs to tell a story. A suspicious transaction is rarely suspicious because of one field. It is usually suspicious because of patterns: a new account with too many beneficiaries many transactions in a short window failed logins followed by a device change KYC failures mixed with country mismatches transaction amounts far above normal behavior Using production customer data for this is risky and often unacceptable. Basic mock data is usually too flat. So I built fintech-fraud-sim , a TypeScript CLI that generates synthetic fintech users and transactions with configurable fraud patterns.…