- Problem
- Selling across African markets means a different payment provider in every country, and every one of them fails, delays or half-succeeds in its own way.
- What I did
- Designed and operate distributed Node.js and TypeScript services for payment workflows: event-driven pipelines on RabbitMQ with retries, idempotency and failure recovery, transaction state management and reconciliation, and Python tooling to investigate transactions in production.
- What happened
- Payment workflows running across 15+ African markets, with $5M+ in weekly transactions and sub-second processing.