Everything below is backed by something I shipped, broke or got certified in — not a list of things I read about once. Percentages are my own honest read on how deep I've gone.
/// 64 NODES ONLINE
Every site here, hand-written, semantic and accessible.
This portfolio's neo-brutalist system, top to bottom.
Interaction layer on Dekor, Prime, Bound and this site.
DocSanitize and Paperless, both written in strict mode.
The design system behind DocSanitize, Paperless, Dekor and Prime.
DocSanitize, Paperless and Bound's multiplayer client.
Hannah Morgan Homes — CRM views and analytics dashboard.
DocSanitize — App Router with a fully static export.
3D product and property visuals on Dekor and Prime.
Scroll and timeline animation on client marketing sites.
Dekor, the Al Habibi Bakery site and my web dev coursework.
Page routing on Perfect Shades and Hannah Morgan Homes.
The low-poly highway, cars and lighting in Typencut.
Matrixii redraws every video frame as falling characters.
Typencut's engine sounds and fifteen music tracks, all synthesised in code.
Live webcam input and video export with sound in Matrixii.
HomingPigeon, LeadPulse, the stroke prediction model.
Dekor's payment flow and Bound's real-time game server.
REST routing and middleware on Dekor.
Real-time lobbies and game state for Bound.
Certified by LinkedIn Learning; consumed in the Trivia app.
Dekor's product catalogue and order store.
Relational listings data for Prime Real Estate.
Paperless keeps every invoice on-device — no server at all.
HomingPigeon's local campaign and contact database.
pdf-lib and pdf.js: redaction, signing and rendering in DocSanitize; invoices in Paperless.
Schema design and querying across coursework and projects.
Thousands of concurrent requests in GeoHarvest and LeadPulse.
Pulling company names, phones and LinkedIn links off home pages in LeadPulse.
Excel import and export across GeoHarvest and LeadPulse.
The custom installers for GeoHarvest and LeadPulse.
Ships HomingPigeon, GeoHarvest and LeadPulse as Windows apps.
Cleaning and feature engineering for the stroke dataset.
RandomForestClassifier trained and tuned on Kaggle.
Certified at the GDG Bath Spa UAE agents workshop.
Agent workflows and prompt design in day-to-day builds.
Real-time face detection driving the laser turret.
Matplotlib model reports and p5.js chart sketches.
GeoHarvest scores every lead against your ideal customer.
Trivia app and the SuperCar wiki app.
Android fundamentals and the SuperCar app's core.
Activities, fragments, lifecycle and Material UI.
Primary mobile environment.
Build configuration and dependency management.
Arduino firmware for servo control and sensor reads.
FFmpeg, Tesseract OCR and HEIC decoding in the browser for DocSanitize.
Face-tracking turret plus six sensor and circuit builds.
HomingPigeon's multi-threaded desktop interface.
CAD and printed parts for the turret housing.
SPF, DKIM and DMARC checking built into HomingPigeon.
Dragons & Knights, built and shipped solo to itch.io.
Gameplay, physics and animation scripting in Unity.
Hallways — branching horror with multiple endings.
Ten Creative Coding sketches, from pixel filters to an asteroid shooter.
Pacing, feedback loops and difficulty curves.
Layout and flow before any code gets written.
Asset production, retouching and brand work.
Version control across every project listed here.
Build tooling for Paperless, Bound and Hannah Morgan Homes.
Unit and browser tests running in CI on DocSanitize and Paperless.
Hosting for DocSanitize, Paperless, Dekor, Prime and this site.
The whole visual language of this site.
Offline test suites for HomingPigeon, GeoHarvest and LeadPulse.
Tests and release builds on every push across my recent repos.
/// THE STACK IS NEVER FINISHED
Building multi-step agents that call real tools and recover from their own mistakes, starting from the Google Agent Development Kit workshop at Bath Spa UAE.
Going deeper than a single classifier — feature engineering, model evaluation that survives contact with messy data, and explaining results to people who don't read confusion matrices.
The gap between "it works on my machine" and "it works for ten thousand people": caching, queues, failure modes and the boring infrastructure that keeps a product up.
Certificates, coursework and the jobs that paid for the learning.
OPEN THE LOGS