Backend & devops developer building with Node.js, TypeScript, and Go.
I build developer tools that cut down boilerplate.
@dax-side/jwt-abstraction - JWT auth in 3 lines
Adds login tokens to an Express app in three lines instead of writing the auth flow from scratch. It manages access and refresh tokens, handles the middleware, and throws proper error types when something's wrong. Fully tested, running in three production apps.
Docs | npm | GitHub
Express Journey Mapper - Auto-generate OpenAPI docs
Scans an Express app's routes and writes the API documentation for you. No sitting down to hand-write a yaml file after every change.
npm
error-telex - TypeScript error tracking SDK
Catches errors in a TypeScript app and forwards them to a backend, with retries and filtering built in so you're not flooded with duplicate reports. Co-built during my HNG internship.
npm
I build the systems behind an app: the APIs, the database, how users log in, how data updates in real time, and how the whole thing gets shipped and kept running.
Recent work:
- A B2B platform connecting liquor stores and vendors, currently live
- A deploy pipeline that checks the app is healthy before switching traffic to it, and rolls back automatically if it isn't
- A weather API that caches results so it isn't hitting the same forecast provider on every request
Backend: Node.js, TypeScript, Go, Express, NestJS, GraphQL (Apollo Server)
Databases: PostgreSQL, MongoDB, Redis, Prisma ORM
devops: Docker, Kubernetes (admission control), GitHub Actions, PM2, Nginx, AWS (EC2, RDS, S3, ECS, IAM, VPC, subnetting, internet gateways), Linux
Tools: Git, Postman, MongoDB Compass, TablePlus, k6, Artillery
- A command-line tool in Go that searches your files by name, even when you misspell what you're looking for. local-file-search
- Running real deployments on Kubernetes and AWS, past what the Boot.dev course covers
I write about backend systems and building things that actually work.
- How Would I Build a Payment System That Doesn't Lose Money
- How Would I Build For Right Now
- I built an MCP server that syncs GitHub into Notion and generates AI reports
- I built a tool that shows developers what their backend costs the planet
Nevala Production Deployment System
The staging server crashed once because a .env file went missing. After that I built a pipeline that checks the app's health before it goes live, rolls back on its own if a deploy fails, stashes any uncommitted changes so they don't cause conflicts, and keeps the last five versions as backups. Staging and production run separately now, which is what kept the main server up the next time something went wrong.
Tech: GitHub Actions, PM2, AWS EC2, Bash, Health Monitoring
E-commerce Microservices API
Took an API from 48 requests a second to 716 by caching frequent lookups, reusing database connections instead of opening new ones each time, and adding proper indexes so queries stop scanning the whole table. Load tested at 200 concurrent users.
Tech: Node.js, TypeScript, MongoDB, Redis, Docker, Nginx, Prometheus
Weather Forecast Service
A weather API that caches results and limits how often any one client can call it.
Live site
Heart of House Platform (Client work, backend)
The backend for a marketplace connecting liquor stores and vendors. Messages update live between buyers and sellers, stock levels track automatically, vendors earn rewards on repeat orders, and invoices get processed and stored in the cloud.
Live site | Sign up
Tech: Node.js, TypeScript, Express, MongoDB, Socket.io, AWS S3/EC2, PM2
CrossPay
Send money in GBP, and the person on the other end receives it as USDC on Polygon. Deposits come in through Stripe, transaction status updates live on screen instead of needing a refresh, and the fee is a flat 0.5%.
Live site | GitHub
Tech: Node.js, TypeScript, PostgreSQL, Stripe, Polygon Amoy, Socket.io, Pxxl
CollabEdit
A real-time editor where multiple people can type into the same document at once without overwriting each other. I built the conflict resolution myself instead of using an existing library like Yjs or Automerge. Deleted text sticks around as a hidden marker for a while so an edit that arrives late doesn't corrupt the document, and each document processes changes through its own queue so pasting text doesn't get scrambled across different people's screens.
Live site | GitHub
Tech: Node.js, TypeScript, PostgreSQL, WebSocket, Prisma, React, Vite
Swiftmeal
A food delivery platform where you can track your order and the rider in real time, and payment goes through automatically at checkout.
Live site | API Docs
Tech: Node.js/TypeScript backend, React frontend, PostgreSQL, WebSocket, Paystack integration
Open to backend and devops roles, and interesting projects.




