Systems that hold their shape.
I’m Oluwayemi Oyinlola Michael, a software engineer in Nigeria and the founder of Nantty, a social marketplace under development. I build backend APIs, data pipelines and developer tools.
- Backend engineering
- Python & data engineering
- Distributed systems
- Developer infrastructure
- 7
- Product apps
- 39
- TS packages
- 31
- Case studies
- 4
- Backend languages
Nantty
A pre-launch social marketplace for Nigeria, bringing product discovery, creators, seller operations and buyer protection into one product. Built as a multi-app platform with Go and TypeScript services, local mock and backend modes, and an AWS deployment plan that has not yet been applied.
- 7
- Product applications
- 15 Jan 2027
- Early beta target
- 1 Mar 2027
- Public launch target
Zudojs
A 39-package modular TypeScript framework — DI, lifecycle, config, HTTP, events, CQRS, queues, tenancy and observability, each usable on its own, with the dependency direction enforced by a build-time check.
- 39
- Packages
- 198k
- Lines of TypeScript
- 5
- Enforced tiers
I’m Oluwayemi Oyinlola Michael, a software engineer in Nigeria and the founder of Nantty, a social marketplace under development. I build backend APIs, data pipelines and developer tools.
- Backend engineering
- Python & data engineering
- Distributed systems
- Developer infrastructure
- Product apps
- 7
- TS packages
- 39
- Case studies
- 31
- Backend languages
- 4
01Selected work
7 systems, and the
decisions behind them.
Each case study covers the constraint that shaped the architecture, the structure it produced, and the trade-offs I would defend in a review. Numbers come from the repositories themselves.
02How I work
Opinions I can defend.
Not preferences — positions I have paid for, in projects that are still running.
Boundaries before frameworks
Most systems fail at the seams, not in the middle. I draw module boundaries and type contracts first, then pick the framework that fits them — a principle I am applying across Nantty's Go, TypeScript, Elixir and Python services.
A monolith you can split
Modular monoliths get the operational simplicity of one process with the option to extract later. Every module owns its ports, adapters and data, so extraction is a build change rather than a rewrite.
Understand it underneath
Rather than only using Fastify or Express, I want to know how a framework should structure an application at all. That question is what Zudojs is — not another Node framework, but an attempt at the building blocks underneath one.
Ship the whole thing
An API without a storefront is a demo. I build the backend, the dashboard, the public site, the payment flow, the emails and the deploy — the last ten percent is where products actually get judged.
Trust is an engineering problem
Escrow, verification, dispute windows and audit trails are not policy documents — they are state machines. On a platform where people send strangers money, that state machine is the product.
Build for thin margins and slow networks
Almost everything I have shipped serves Nigerian schools, shops, savings groups and traders. That means small payloads, offline-tolerant flows, local payment rails, and no patience for a product that almost works.
03Engineering
Five layers, one problem.
Software engineering, databases, distributed systems, data and security are not five careers — they are one problem viewed from five angles.
04Lab
Or just ask the shell.
Most of what I do starts in a terminal, so the portfolio has one. It runs over a filesystem generated from this site's own content — cat a case study, then open it.
oyinlola@portfolio: ~
oyinlola@portfolio — interactive shell
31 case studies mounted at /work · 5 disciplines at /engineering
Type 'help' to begin, or 'neofetch' if you're in a hurry.
Let’s build something that lasts.
Open to backend, platform and software engineering roles — full-time or contract, remote or hybrid.