Backend / Full Stack Engineer

I build backends that don't break.

Production-grade APIs, distributed systems and full-stack platforms. Node.js · Java · PostgreSQL · Docker. Based in Nigeria — working with the world.

View my work → GitHub ↗
const john = {
  role:    "Backend Engineer",
  stack:   ["Node.js", "Java", "PG"],
  openTo:  "Remote · Relocation",
  breaks:  false
}
Scroll
Node.js Java Spring Boot PostgreSQL MongoDB WebSockets React Next.js Docker REST APIs JWT Auth AWS S3 TypeScript Node.js Java Spring Boot PostgreSQL MongoDB WebSockets React Next.js Docker REST APIs JWT Auth AWS S3 TypeScript
Selected work

Three systems. Real code. Production quality.

01 — FINTECH
PayFlow

Multi-tenant SaaS invoicing and payment platform. Businesses manage invoices, track payments and generate PDFs — all with strict tenant isolation so one client never sees another's data.

Payment state machine: pending → processing → completed / failed → refunded Webhook dispatch with exponential backoff retry PDF invoice generation with watermark + AWS S3 upload Multi-tenant context middleware — zero data leakage
Node.js Express PostgreSQL React Docker AWS S3 JWT
02 — MARKETPLACE
NordMarket

Full-stack multi-vendor marketplace for the Swedish market. Vendors list and manage products, buyers browse, cart and order — with a complete order lifecycle from placement to delivery.

Order state machine: PENDING → CONFIRMED → SHIPPED → DELIVERED Full-text product search with category filtering and pagination Role-based access: BUYER / VENDOR / ADMIN Vendor dashboard with revenue stats and order management
Java 17 Spring Boot MongoDB Next.js TypeScript Docker
03 — REAL-TIME
Flowspace

Real-time team task management. Every task update — status change, comment, assignment — broadcasts to all workspace members instantly via WebSocket. One user moves a card, everyone sees it.

WebSocket rooms per workspace — broadcast in under 50ms Drag & drop Kanban with optimistic UI updates Live presence indicators — see who's online in your workspace JWT auth at WS handshake — stateless, scales horizontally
Node.js WebSockets PostgreSQL React Zustand Docker

Engineer first.
Full stack when needed.

I'm John Ayomide Abe, a backend-focused full stack engineer based in Nigeria, building systems for teams around the world.

I got into engineering because I wanted to understand how things actually work — not just the happy path, but what happens when the database goes down, when a webhook fails, when two users hit the same endpoint at the same time.

My code is modular, tested and written like I'm the one who'll be paged at 3am if it breaks.

Open to remote roles, contract work and relocation opportunities.

Backend
Node.js · Express
Java · Spring Boot
Databases
PostgreSQL · MongoDB
Redis
Frontend
React · Next.js
TypeScript
Infra
Docker · AWS S3
WebSockets · REST
15+
Projects shipped
6+
Years building
2
Databases mastered
0
Tutorials shipped
How I think

Engineering principles
I actually follow.

01
Modules over layers

Feature folders beat controller/service/repo split. When you delete a feature, you delete one folder — not 12 files scattered across the codebase.

02
State machines over booleans

PENDING → CONFIRMED → SHIPPED beats isConfirmed: true. Explicit transitions prevent impossible states.

03
Fail loudly in dev, gracefully in prod

Centralised error handlers, structured logging and meaningful error messages. Users never see a stack trace. Engineers always do.

04
Docker from day one

If it doesn't run with docker-compose up on a fresh machine, it's not done. No more "works on my machine".

Let's build
something real.

Open to remote roles, contract work and relocation. If you're building something that needs to scale, let's talk.