I build backends and web products that actually ship.
I work with founders and growing teams to design, architect, and ship production-grade software — backend systems, APIs, fintech infrastructure, full-stack web products, and developer tooling.
I don't just close tickets. I think about the system, make the hard call early, and build things that hold up when real users show up.
Build fast. Build clean. Build systems that last.
- Design and build production backend systems from scratch — auth, wallets, ledgers, payment flows
- Architect APIs that scale with traffic and stay maintainable as teams grow
- Ship full-stack web products end to end — frontend, backend, database, deployment
- Debug and stabilise existing codebases that are falling over in production
- Build developer tooling that solves real workflow problems
- Make sound technical decisions early — so you don't pay for them later
Frontend
Backend & Infrastructure
Databases
Cloud & Deployment
Mobile
| Project | Description | Link |
|---|---|---|
| contextpack | CLI that bundles any codebase into a single LLM-ready file. Stop copy-pasting files into Claude or ChatGPT one by one. |
npm · github |
| lazydb | Keyboard-driven terminal UI for databases — like lazygit but for SQL. Supports Postgres, MySQL, SQLite. Built in Go with bubbletea + lipgloss. | github |
| Fintech Banking Backend | Production NestJS backend for a Nigerian mobile banking app — phone-number-first auth, OTP with brute force lockout, atomic wallet creation, full ledger system split into focused modules. Strict TypeScript throughout. | private |
| Wedding Invitation App | Full web app with animated envelope opening, personalised guest links, live RSVP dashboard, WhatsApp sharing, and CSV export. Built for a real wedding. | private |
| Norah's Beauty Hub | Full-stack Nigerian e-commerce platform — live debounced search, Cloudinary uploads, responsive admin dashboard with analytics, full auth system. | private |
| BiblePlus Backend | Node.js/TypeScript backend for a Bible quiz app. Rebuilt the daily quiz service with a deterministic seed algorithm — same question for every user on the same day, zero database dependency for selection. Fixed two production crashes on Render. | private |
| JSONStack | High-performance JSON processing tool. Handles 400k+ lines with optimised parsing and rendering. | jsonstack.dev |
| Cortex | Extensible AI-powered analysis platform for structured processing and intelligent workflows. | corte-x.vercel.app |
| AIDevHelper | Chrome extension that improves developer workflow speed without context switching. | github |
| Email Verifier API | Lightweight, production-ready email validation API built in Go. | render |
Things I've learned from actually shipping and maintaining systems under real conditions:
- Validate environment variables at startup. Not buried in a function — at boot. If something is required, the service should tell you exactly what's missing, not die with a cryptic trace.
- Never rely on files for secrets in PaaS deployments. Render, Vercel, Railway — they don't have your gitignored files. Serialise secrets to environment variables.
- Determinism is a feature. For scheduled jobs, daily content, seeded selection — design for it explicitly. Don't rely on the runtime to give you consistency it was never designed to provide.
- Store money in the smallest unit. Kobo, cents, pence. Never floats.
- Atomic operations for anything financial. MongoDB transactions exist for a reason. Use them.
- Split services by responsibility, not by size. A ledger service that does money movement, querying, reconciliation, and helpers in one file is a liability. Split it early.
Great products are systems, not features.
Clean foundations > flashy launches. Long-term value > short-term hacks.
The best time to make the right architectural call is before you have 50k users and a deadline. I try to make those calls early.
Open to backend contracts, full-stack product builds, fintech engineering, and startup partnerships.