The Engineering Lessons From $50M in Processed Transactions
Processing large volumes of money teaches you things about distributed systems that no textbook covers.
Articles on engineering, systems design, startups, and lessons from the trenches.
Processing large volumes of money teaches you things about distributed systems that no textbook covers.
Financial code deserves a higher standard of rigour than general application code. Here is what that higher standard looks like in practice.
Webhooks are a common attack vector that most developers implement insecurely.
Passing a PCI-DSS audit does not mean your system is secure. It means it was secure when audited.
Currency arithmetic in floating point is broken. Here is how to build currency systems that are always correct.
Your payment API will receive duplicate requests. Idempotency is what makes the second request harmless.
Most fraud is not clever. It is repetitive. On building fraud detection — and why fraud is detectable before it is paid.
I have processed $8M+ across international gateways. Payment integration is one of the hardest engineering problems you will face.
In accounting, every debit must have a credit. In financial software, every decision must have a consequence.