Sunday Ogunleye
I keep card payments up for one of Africa's largest banks, and I build whole products of my own.
Try it: spin the terminal, tap the cardIt starts with one tap.
A card meets a terminal in Lagos. In a fraction of a second the request crosses a switch, an HSM, a card scheme and the customer's bank. My job is making that trip work every time.
Approved in a blink.
ISO 8583 on the wire, the PIN translated inside a Thales HSM, routing through Postilion. I started on the FEP desk reading these messages field by field. Now I lead the upgrades underneath them.
networks behind one switch: Visa, Mastercard, Verve, NIBSS, Interswitch and UPSL. Then multiply that one tap by every terminal on every one of them.
One upgrade. Zero downtime.
I led the bank's Postilion switch from 5.5 to 5.6 and upgraded the production and DR HSMs while authorizations kept flowing. Zero customer impact.
Click the fleet to roll out an upgradeEvery transaction, watched.
My Node.js exporters read straight from Postilion into Prometheus and Grafana: success rate, TPS, declines and switch health on eight live dashboards, with alerts before customers call.
Three countries, one platform.
Switch and card-management rollouts for the group's subsidiaries in Sierra Leone, Zambia and Cameroon, all migrated without downtime.
Drag to spin the globeThat receipt is your visit, authorized on the terminal: your time, your timezone and your screen, read by this page alone. Nothing leaves it.
What I've shipped.
Every change went out the way changes should: tested, proven on DR, then production. Open one to deploy it.
01Observability · Access BankPayment observability platform8live payment KPIs on one screen
TestDRProduction✓ DeployedCustom Node.js exporters read payment metrics directly from Postilion's SQL Server; Prometheus scrapes them with Windows Exporter host metrics. Grafana shows success rate, TPS, volume, customer and system declines, switch health, routing and availability across Postilion, BankWorld and the gateways, with alerts that fire before complaints arrive.
- Prometheus
- Grafana
- Node.js
- SQL Server
- Windows Exporter
02Platform upgrade · Core card switchPostilion 5.5 → 5.6 in production0customer-impacting incidents
TestDRProduction✓ DeployedLed the plan, the production change, cutover and post-upgrade validation with the OEM vendor, while ATM, POS, eCommerce and digital traffic kept flowing. Zero minutes of unplanned downtime.
- Postilion
- Change management
- SQL Server
- Rollback planning
03Security · Production and DRThales HSM firmware upgrades0interruptions to PIN processing
Drain ADrain BValidate✓ DeployedUpgraded the load-balanced HSMs one unit at a time so one always carried PIN translation and key operations, then validated Active-Active between production and DR. Two sites, no pause in authorizations.
- Thales HSM
- Load balancing
- Disaster recovery
- PCI DSS
04Implementation · New card schemeAfrigoCard launch and fintech onboarding2fintechs live: Moniepoint, Hydrogen
IntegrateCertifyGo live✓ LiveImplemented Afrigo Card, the domestic card scheme, on the bank's switch, onboarded Moniepoint and Hydrogen, and streamlined testing and scheme certification for the card products that followed.
- Postilion
- ISO 8583
- FEP routing
- Certification
05Expansion · Group subsidiariesPayment infrastructure in three countries3countries, zero-downtime migrations
Sierra LeoneCameroonZambia✓ LiveSupported switch and card-management deployments for subsidiaries in markets with different schemes and regulators. Postilion and CMS migrations went out with zero downtime.
- Postilion
- Card management
- Migrations
06Product · Soid TechnologiesGeofenced staff attendance portal74 msp95 at 2,000 clock-ins, target 500 ms
Spec runStress runRelease✓ 2,000 / 2,000A phone app and admin portal where every clock-in is signed with a passkey and checked against PostGIS geofences and shift windows. Anything odd is flagged for a supervisor, never silently rejected. 0 of 2,000 clock-ins lost, about 90 a second of capacity (13× the spec), and 303 automated tests.
A stress run recorded only 458 of 2,000. I traced it to a connection-pool deadlock, fixed it and pinned it with a regression test. The rerun recorded every one.
- TypeScript
- Fastify
- Next.js
- PostgreSQL + PostGIS
- Redis
- WebAuthn
- Playwright
07Platform · Soid TechnologiesSoidPay payments platform32/38security review findings closed
ReviewFixRetest✓ Pre-launchA NestJS API and worker where an append-only double-entry ledger is the source of truth: 91 endpoints across 20 modules, 36 migrations, webhooks re-verified with Flutterwave, daily reconciliation, KYC tiers, an AML case workflow and a two-person-approval admin portal. npm audit went from 13 to 0, backed by 176 tests on real PostgreSQL and RabbitMQ.
- NestJS
- PostgreSQL
- RabbitMQ
- Redis
- WhatsApp Cloud API
- Flutterwave
- Kubernetes
Also shipped
Your wallet. Inside WhatsApp.
That's SoidPay, the platform I'm building at Soid Technologies Limited. Wallets, transfers and bills happen in a WhatsApp chat, on a ledger where debits always equal credits. Pick someone, then swipe the card through the reader.
| No entries yet. |
What's in the toolbox.
Six buckets, 48 tools. Grab a bubble and throw it somewhere else, give the buckets a shake, or tap one to see where I've used it.
Every change, on the record.
Want to break something?
Three things to try before you go. They all run in your browser, and nothing you type is sent anywhere.
- Switch consoleAsk the switch about me, authorize a payment, or try
sudo. - IncidentTransactions are failing across the fleet. Restore terminals before the SLA breaks.
- Clock in from homeDrag your pin out of the office geofence and see what the attendance portal does.
13 · ContactLet's work together.
A payment platform that has to stay up, an upgrade nobody wants to own, monitoring that warns you first, or a product that needs building end to end. Send a note.
fidalex09@gmail.com