Skip to content

Work

Everything worth showing

Client platforms, products built solo, and the tools in between. Each one links to a case study covering what it does and how it was built.

Web · API · iOS · Android

E-Metric Suite

A multi-tenant HR and performance platform

An enterprise HRIS covering payroll, KPIs, 360° appraisals, leave, onboarding, career paths, learning and org structure — one codebase serving many organisations, each in its own isolated database schema.

ReactTypeScriptViteNode.jsExpress+3
Read the case study

iOS · Android · API

Elevra

An AI career assistant for iOS and Android

A job-hunting companion that keeps everything in one place: notes, voice memos, resumes, cover letters, interview prep and the applications you've sent. Built solo, both the app and the API.

ExpoReact NativeTypeScriptNode.jsPrisma+3
Read the case study

Web · API · iOS · Android

Rel8

Membership management for associations

Dues, events, meetings, elections, projects, credentials and support tickets for member organisations — delivered as three clients against one API: a members portal, an admin console and a mobile app.

ReactTypeScriptChakra UINode.jsExpress+3
Read the case study

Web · API · iOS · Android

E-Metric Jobs

A job marketplace with real-time hiring workflows

A hiring platform serving three distinct audiences from one API — job seekers, employers and an internal admin team — with real-time messaging, subscriptions and queue-backed notifications. A Next.js web app and an Expo client for candidates on the move.

Next.jsTypeScriptNode.jsExpressPrisma+3
Read the case study

iOS · Android

In development

Afripantry

An African grocery marketplace, plus its driver app

Two React Native apps for one marketplace serving Canada, the US and Nigeria: a consumer app for ordering African groceries, and a separate driver app for the people delivering them.

ExpoReact NativeTypeScriptNativeWindTanStack Query+2
Read the case study

iOS · Android

Compas Pilot

An AI assistant that plugs into the tools you already use

A cross-platform productivity app that connects a user's existing software and answers through an assistant — chat with thread history, task views, and an onboarding flow that maps their working setup.

ExpoReact NativeReact 19TypeScriptZustand+2
Read the case study

iOS · Android · API

In development

Qalam

A Quran companion app

A quiet, focused mobile Quran reader — surahs, duas, sajda markers and bookmarks — with a small Express service in front of the Quran API so the app talks to one stable contract.

ExpoReact NativeNativeWindNode.jsExpress+2
Read the case study

Web · API

Learnova

A learning management system MVP

A mobile-first LMS with the full course hierarchy — courses, modules and lessons — plus enrollment, role separation between students and instructors, and progress tracking. Django on the back, React on the front.

ReactDjangoDjango REST FrameworkPostgreSQLZustand+2
Read the case study

Web

Estatein

A real estate browsing experience

A property listing interface built to push on layout and interaction detail — a self-directed project from earlier on, kept here because the interface work still holds up.

Next.jsTypeScriptTailwind CSS
Read the case study

Open source

Tools I built because I needed them

Small CLIs published to npm, written to solve a problem that kept recurring across projects.

@reactmode/unused-file-detector

$ npx @reactmode/unused-file-detector

Finds files whose exports are never imported, and dependencies in package.json that nothing uses. Built after one too many refactors left dead modules behind.

CLITypeScriptNode.js

@reactmode/env-check

$ npx @reactmode/env-check

Validates .env against .env.example before runtime and reports what's missing or extra — so a deploy fails on your machine rather than in production.

CLINode.jsDX
Available for new work

Have something you need built?

Tell me what you're working on and what it needs to do. I'll come back within two days with an honest read on scope, approach and timeline.