Make every change reversible
On a 4-billion-record migration I put every change behind a routing toggle, so any step could be rolled back instantly. Then we moved clients over one case at a time, with no downtime they could see.
Senior Software Engineer · Ontario, Canada
For more than a decade I've built and modernized backend and distributed systems across banking and payments, legal-tech, healthcare and industrial automation. I like the unglamorous, high-stakes work: moving billions of records without downtime, payment flows that can't count a transaction twice, and real-time software on a factory floor.
$ whoami anthony-odu · senior software engineer $ cat focus.txt distributed systems payments & open banking cloud-native infrastructure AWS · Azure · GCP · Terraform $ cat stack.txt C# · .NET · Node.js · TypeScript Angular · React · Flutter PostgreSQL · SQL Server · OpenSearch $ uptime 10+ years in production, still curious
Approach
I like to understand what's actually going wrong before deciding what to build. These are the habits I keep coming back to.
On a 4-billion-record migration I put every change behind a routing toggle, so any step could be rolled back instantly. Then we moved clients over one case at a time, with no downtime they could see.
Payment state comes from the provider's API, checked on the server and settled idempotently. A retried webhook or a refreshed page can never charge someone, or count something, twice.
Schema, API, UI, infrastructure as code, the deploy pipeline and the support queue afterwards. Problems are easier to solve when you can see the whole path a request takes.
When a migration would have cut non-engineering teams off from their data, I built them a query tool for the new cluster, so their work carried on through the cutover.
Projects
Products I've designed and shipped outside my day job, from the database to the app store.
Personal safety & community protection · Glodux Digital Labs
lookowt.appA safety app for individuals, families and communities: know where your circle is, know what's happening around you, and get help in one tap.
Public voting for a community event in Nigeria
A public site where supporters buy votes for contestants by card, bank transfer or USSD, and organisers manage the ballot and watch results live.
Electronic medical records
An electronic medical records platform covering patient records and ward rounds, with updates pushed live to clinicians' screens.
Experience
Leading the migration of 4B+ records from Elasticsearch 1.4.5 to AWS OpenSearch for a legal-tech ERP platform used by Fortune 100 companies. I own the migration tooling, the Terraform infrastructure and a reversible, per-case cutover.
Traffic-controller software for automated guided vehicles across Toyota plants in North America: .NET microservices talking to plant hardware over OPC, PLC and Modbus, with concurrent routing and collision avoidance.
Modernized C# and VB.NET services for a legal-tech ERP document platform without disrupting production, and owned its SOAP and REST integration surface.
Led an Open Banking API giving regulated third parties secure access to customer accounts, built to central-bank standards. Cut critical endpoint response times by 30%.
PCI-DSS-compliant payment APIs for electricity and cable TV billing, and an asset-financing platform with an Angular admin dashboard.
Payment middleware connecting commercial banks to billers over ISO 8583 on a national network, and a mobile app for monitoring 30,000+ POS terminals.
Worked with UNICEF engineers on mobile data collection for nutrition programmes, replacing paper reports with real-time monitoring.
Toolkit
Middlesex University, London · 2013
University of Bolton, UK · 2012
Contact
The quickest way to reach me is email. I'm also on LinkedIn.