9 production systems across mobile, web, backend and AI. Each case study covers context, constraints, architecture, key decisions, outcome and what I’d do next — and separates what I owned from what I collaborated on.
SeamHealth’s customer feedback platform: multi-step feedback flows, complaint handling, billing and an operator admin — 400+ of my commits across three Angular codebases.
Role
Frontend engineer
Platform
Web · SaaS · server-side rendered
Category
SaaS · Feedback & analytics
Outcome
416 commits across the customer app, the admin console and the v3 rebuild: form flows, complaints, billing, notifications and operator tooling.
Angular
TypeScript
RxJS
SaaS
Analytics
Read case study →
Capture
Web forms
QR codes
Messaging channels
Flows
Linked forms
Instant & queued forms
Service-point flows
Frontends
Customer app (Angular SSR)
Admin console
v3 feature libraries
Real-time
Socket.IO updates
Backend
Microservices (other teams)
Billing via Paystack
Capture
Web forms
QR codes
Messaging channels
Flows
Linked forms
Instant & queued forms
Service-point flows
Frontends
Customer app (Angular SSR)
Admin console
v3 feature libraries
Real-time
Socket.IO updates
Backend
Microservices (other teams)
Billing via Paystack
MobileAnalytics· 1 / 7
03WhistlerSep 2026 — Present · in active development
Next.js web client for Whistler: 52 routes across feed, communities, moments, messages and settings, sharing the mobile app’s API, tokens and error handling.
Role
Sole engineer
Platform
Web · Next.js App Router
Category
Web application · Production infrastructure
Outcome
Every change passes format, lint, types, unit tests, a dependency audit, Playwright e2e and a Docker smoke test before an image is published.
Next.js
TypeScript
Playwright
Docker
CI/CD
Read case study →
Public
Landing page (static, indexed)
sitemap.ts
(auth)
Login, register, OTP, password reset, onboarding
One shared AuthHeader
noindex
(app)
Server-side requireSession() guard
One SidebarNav + TopHeader
noindex
Features
features/*/hooks — TanStack Query wrappers
Post classifier (ONNX Runtime Web, in the browser)
API layer
lib/api client mirroring mobile’s interceptors and error messages
Backend
Whistler REST API (shared with mobile)
Public
Landing page (static, indexed)
sitemap.ts
(auth)
Login, register, OTP, password reset, onboarding
One shared AuthHeader
noindex
(app)
Server-side requireSession() guard
One SidebarNav + TopHeader
noindex
Features
features/*/hooks — TanStack Query wrappers
Post classifier (ONNX Runtime Web, in the browser)
API layer
lib/api client mirroring mobile’s interceptors and error messages
FastAPI service that fingerprints visitors, links probable identities across browsers and scores risk built to keep public voting fair, with tests and AWS deployment scaffolding.
Role
Lead backend engineer
Platform
Backend service · HTTP API
Category
Backend · Security & risk
Outcome
Initial implementation, production hardening and the AWS deployment path — 10 of 16 commits and 14 test files.
Public Clientshot site where people browse organisations by industry, write and track feedback, and earn points and badges React 19, strict TypeScript and 88 test files.