Also known as Wealthometer. I'm a full-stack developer in Lagos who leans towards the back end: APIs, auth, payments, real-time systems and the infrastructure under them.
I learn by building the thing itself. That's how I ended up writing Ometer, a programming language with its own compiler and VM, FlowCSS, a CSS framework, and DevDoctor, a pre-production check-up for JavaScript and TypeScript repos. It's also why this profile has servers in C next to GSAP landing pages.
- 💼 Most recently: Backend Developer at Lincoln City Property (May – Oct 2026), a mobile banking app for a microfinance business
- 🏦 Built the Dangote Refinery IPO subscription platform at SCM Capital: ₦1.6bn in applications from 1,500+ investors
- 🎓 BSc Software Engineering, 2024 – now
- 📫 wealthhajoh87@gmail.com
Build. Learn. Ship. Repeat.
A check-up for your repo before production does it for you. Eight checks for JavaScript and TypeScript projects in one install. They catch the migration that locks a table, the env var nobody documented, and the import that breaks your architecture.
npx @wealthometer/devdoctor check$ migraguard check
MigraGuard: migration safety (PostgreSQL)
checked: 2 framework: prisma high risk: 1
✖ Adds NOT NULL column User.role without a default
prisma/migrations/20260301_roles/migration.sql:1
→ Fails if the table has any rows. Add a DEFAULT,
or add it nullable, backfill, then SET NOT NULL.
▲ Creating an index on User blocks writes until it finishes
→ Use CREATE INDEX CONCURRENTLY.
2 errors, 1 warning
| Check | What it catches |
|---|---|
| RepoDoctor | Grades tests, docs, TypeScript strictness, scripts, CI, Docker and hygiene: a 0–100 score with a fix for every point lost |
| MigraGuard | Dropped columns, NOT NULL without a default, indexes without CONCURRENTLY (SQL, Prisma, Drizzle, Knex) |
| PulseAPI | Chained API tests in YAML, with environments, JSON Schema checks and response-time limits |
| DepScope | Duplicate, unused, undeclared and outdated packages, heavy trees and import cycles |
| EnvDoctor | Compares .env, .env.example, your Zod schema, the code, Compose and CI, without printing secrets |
| CommitSmith | Conventional Commit suggestions and linting, changelogs, and blocks keys and .env files |
| ArchWatch | Imports that cross your declared layers, deep imports and circular imports |
| LogLens | Groups errors from JSON, logfmt and plain-text logs and shows when they spike |
Output as text, JSON, Markdown or SARIF, so problems show up inline on the pull request through GitHub code scanning. Zero config to start. 72 tests against real git repos and HTTP servers.
|
A programming language for the web, written from scratch in TypeScript: lexer, recursive-descent parser, bytecode compiler and a stack VM with a built-in web server. You can run it in my portfolio. |
An animation-first CSS framework in one file: 40+ animations, glassmorphism, 3D tilt, scroll reveals, ready-made components and dark mode. No dependencies, no build step. |
Each one has real tests against real databases, Docker, CI, demo data and a full README.
| Project | What it is | Tests | Links |
|---|---|---|---|
| Switchboard | Support ticketing SaaS: hosted help center, shared inbox with live presence, internal notes, response targets and reports | 69 | Live · Code |
| Stallhouse | Multi-vendor marketplace: one cart across many stalls, one payment, each stall paid its share minus commission | Integration + Playwright | Live · Code |
| Diffwise | GitHub App that reviews pull requests with built-in checks and Claude, commenting on the exact changed lines | 99 | Live · Code |
| Portline | Logistics platform: courier, fleet, freight brokerage and a 3PL warehouse on one database, billed into one customer portal | 28 + 5 Playwright | Code |
| Pingwell | Self-hosted uptime monitoring: checks, incidents, team alerts and a public status page | 91 | Live · Code |
| DevDoctor | The eight-check CLI above | 72 | Live · Code |
Designed, built, tested and packaged myself. Each one has a page with screenshots and a download: wealthometer-apps.vercel.app
| App | Platform | What it does | Links |
|---|---|---|---|
| FlowTask | Android | Team task boards that sync live and keep working offline | Download · Code |
| StockPilot | Android | Barcode-driven stock control for small shops, with profit by product | Download · Code |
| Scanly | Android | QR and barcode scanner that checks links before you open them | Download · Code |
| Wallora | Windows | Wallpaper playlists, schedules, per-monitor walls and live widgets | Download · Code |
| ClipNest | Windows | Clipboard history in Rust (Tauri), searchable, with a Ctrl+Alt+V quick paste | Download · Code |
| Sortify | Windows | File organiser with a drag-and-drop rule builder, full preview and undo | Download · Code |
| MediaVault | Windows | Photo and video timeline, trip albums, look-alike finder and an AES-256 vault | Download · Code |
Frameworks hide a lot, so I rebuild the pieces underneath them.
| Project | ||
|---|---|---|
C |
Command-line shell | Bash-like shell with process management, pipes and built-ins |
C |
HTTP server | Requests, headers and responses over raw sockets |
C |
Memory allocator | My own malloc and free, with splitting and coalescing |
C |
Huffman compressor | File compression with Huffman coding |
C |
Text editor | A small terminal editor |
C++ |
Web server | Static files over HTTP/1.1 |
Rust |
TCP/UDP chat server | Multi-client chat on Rust's async runtime |
Rust |
JWT auth server | Token-based auth on Warp |
TS |
Lisp interpreter | REPL with closures and macros |
Go |
Friendlier Git CLI | Readable commits and a simpler branch flow |
x86 |
Assembly programs | Arithmetic, memory and system calls, by hand |
Languages
Back end
Front end & motion
Mobile & desktop
Data, cloud & DevOps
AI
Tools
+ ██╗ █████╗ ███╗ ███╗ ██╗ ██╗██╗███╗ ███╗
- ██║ ██╔══██╗████╗ ████║ ██║ ██║██║████╗ ████║
! ██║ ███████║██╔████╔██║ ███████║██║██╔████╔██║
- ██║ ██╔══██║██║╚██╔╝██║ ██╔══██║██║██║╚██╔╝██║
+ ██║ ██║ ██║██║ ╚═╝ ██║ ██║ ██║██║██║ ╚═╝ ██║Most of my projects start with one question: "What happens if I build this?" That question has taken me from backend APIs and payment flows to compilers, C servers, desktop apps and 3D websites. Every project teaches something new, and the next one is always loading.





