Engineering · Fintech

Fintech Engineering — Building Payment Systems

Fintech is where I have spent a meaningful share of the last five years — across banking, savings, lending, and marketplace payments. I have shipped a savings system on Apache Fineract and Mifos, ETL pipelines that migrate loan data into a Loan Origination System, backend infrastructure for an agritech marketplace, and a banking platform with the production-adjacent UX and money-movement primitives you would expect of a real product. The constants are familiar: ledger integrity, idempotency at every API boundary, audit trails that hold up under scrutiny, and observability that catches drift before it shows up in a reconciliation report.

5+
Years building products
$6M+
Fintech transactions processed
99.99%
Uptime SLO maintained

What I work on in fintech

Ledgers & money movement

Money does not forgive sloppy state. The systems I build keep ledgers double-entry, treat balances as derived rather than mutated, and route every state transition through an explicit machine that can be replayed from the audit log. Idempotency keys are required at every entry point so retries — and there are always retries — never produce duplicate postings.

Savings, lending & LOS

At Dedukt I implemented a savings system on Apache Fineract and Mifos that processes, logs, and monitors transactions, and shipped ETL pipelines that migrated loan data into a Loan Origination System. The savings system reduced operational workload by 30%. APIs and integration documentation went out with the code so that downstream teams could integrate without a tribal-knowledge tax.

Banking UX & account flows

Bankvole is a banking platform built for a client — account creation, balances, transfers, transaction history, and the operational tooling around them. Account flows are modelled as explicit state machines so reconciliation is reasoned about, not reverse-engineered, and the UX stays legible while the engine underneath stays defensive.

Marketplaces & payments

Crop2Cash is an agritech marketplace where smallholder farmers in Nigeria source seeds, fertilizers, and inputs. The backend handled the transactional flow plus the chart APIs that surface live data to operators, with read-side projections kept in sync with the transactional store but isolated from its load — dashboards that load fast without melting the database.

Selected work

03 case studies

Bankvole

Bankvole is a client-built banking platform covering the surface area you would expect of a real consumer fintech: account creation, balances, transfers, transaction history, and the operational tooling needed to keep it running. The work spanned product UX, account flows, and the money-movement primitives that sit underneath them.

Crop2Cash

Crop2Cash is an agritech marketplace that helps smallholder farmers in Nigeria source seeds, fertilizers, and other agricultural inputs. The work was on the backend side: APIs that drive the marketplace surface, the chart endpoints that let operators see what is actually moving through the platform, and a programming model that made integrating with the existing services much less painful than it had been.

SeekMake

SeekMake is a SaaS for manufacturers that consolidates the business operations side of the shop: invoicing, customer relationships, and product timeline tracking, all in one place. The goal was a single workspace where manufacturers can quote, invoice, follow up, and track production progress without context-switching between three or four tools.

Stack

The fintech stack is the backend stack with stricter constraints: stronger typing, tighter audit trails, and operational discipline that treats every postmortem as a permanent change to the system.

TypeScriptNestJSNode.jsJavaPostgreSQLApache FineractMifosKafkaTerraformAWSGCPDouble-entry ledgersIdempotent APIsEvent sourcingETL pipelinesObservability

How I think about fintech work

Reliability first

Regression safeguards, expanded test coverage, and acceptance-criteria validation aren't a phase — they're the contract. The system stays stable while features land.

Security as the default state

Hardening, TLS, least-privilege IAM, secrets management, and patched dependencies aren't bolted on at the end — they start at the kernel and shape every API contract. Treating security as a feature is paid for in incident reports.

Observability over guesswork

Logs, metrics, and traces aren't a nice-to-have — they're how the system warns you before users do. Mature observability is what turns 3am pages into morning tickets and shrinks MTTR by the only number that matters: actual incidents.

Talk about a fintech project← Back to home