about

I build web stuff

~ digital craftsmenship in the age of AI

I use web fundamentals to craft custom web experiences using vanilla HTML, CSS and Javascript.

Dad Husband Brother Son Cousin Uncle
01 / toolkit

tech stack

"Hand-crafted HTML, CSS and JS is still good work, if you can find it."

Frontend

js html css jquery gsap ts php

Backend

node npm git/hub rest mongo

Accessibility

ux ui a11y i18n wcag

Design

gimp wireframeing prototyping pencil + paper

Frameworks

vue vite nuxt pinia vitest

Platforms

wordpress webflow shopify

// This is my preferred stack but can adapt to any stack

02 / agent

agentic stack

"Privacy, sovereignty, autonomy."

Model
qwen open‑weight models
Harness
pi opencode cmux
Runtime
llama.cpp local inference local storage

TL;DR

Memorising syntax is losing its core value. In the modern landscape, true engineering value lies in the ability to architect with competence & creativity — separating sandcastles from pyramids.

// I use a local agent for daily driving and SOTA models for heavy lifting

03 / experience

recent roles

Jan 2026 — Mar 2026

Software Developer

localagentic
Independent R&D

Built an offline-first agentic workflow on llama.cpp and Qwen, run on local hardware harnessed with Pi. Owning (& understanding) the full stack — model, harness, runtime, memory — and systematically tested quantisation and context/memory combinations to find the configuration that got the most out of fully offline inference, with no API dependency.

local inference quantisation end-to-end
Mar 2024 — Dec 2025

Software Developer

frontendautomation
@ VShred

Owned the AI-automation layer behind CRO — implementing n8n workflows that delivered conversion data straight into ad telemetry and split-test analysis, replacing manual reporting. Built and maintained the CRO template system that downstream campaigns were run on.

ai automation n8n cro
Jul 2023 — Dec 2023

Software Developer

frontendcomponents
@ Metabolic

Built Vue and vanilla-JS versions of the same components side by side, working with the UX team to turn creative concepts into functional interfaces and proving out where a framework earned its weight versus where the platform alone did the job.

vue vanilla js components
Jun 2022 — Apr 2023

Software Developer

frontendperformance
@ Signpost (Inside Guide)

Led the modernisation of Inside Guide's frontend with a hard focus on mobile web performance — Core Web Vitals specifically. Alongside that, delivered feature enhancements and maintenance for ooba, an accommodation portal within the same agency.

core web vitals mobile perf wordpress
Jan 2022 — Jun 2022

Software Developer

frontendwordpress
@ LightSpeed

Frontend upgrades, feature enhancements and ongoing maintenance for a distributed remote team working exclusively in the Wordpress ecosystem. Introduced Sass and modern build tooling into the development workflow.

wordpress sass build tooling
Jun 2020 — Jun 2021

Software Developer

frontendbackenddesign
@ Media Monkeys

Took a set of static screens and led their migration into a semi-functional PWA, owning the system end to end — UX proposals, technical documentation and ongoing maintenance — while mentoring junior developers on the team.

mentoring migration pwa
Mar 2020 — May 2020

Software Developer

frontendux/ui
@ SMSPortal

Improved the cohesiveness of SMSPortal's core client-facing application — built on a JAM-adjacent stack using MDB's Vue implementation. Developed high-fidelity prototypes to demonstrate UX improvements alongside ongoing system maintenance.

vue prototyping ux
Jun 2018 — Dec 2018

Software Developer

frontendux
@ CMA

Retrofitted uniformity across the user experience of CMA's market analysis application. The bulk of the engagement was spent building working prototypes to showcase potential UX and UI improvements before committing to implementation.

ux prototyping jquery modernisation
Jan 2018 — Jun 2018

Software Developer

frontendprototyping
@ Imagemakers

Built custom JavaScript and Wordpress templates using Vue/Nuxt talking to a headless Wordpress CMS. Used analytics and user feedback to prototype layouts, forms and navigation elements, then composed approved components into full templates against the visual strategy.

vue nuxt headless cms prototyping
Sep 2017 — Dec 2018

Software Developer

lecturermentoring
@ CodeSpace (contracted via Life Choices)

Taught HTML, CSS and JavaScript fundamentals to new developers, deliberately pairing technical skill with the soft skills most development environments leave out — equipping each cohort to actually survive their first year in the industry.

mentoring web fundamentals
Jun 2016 — Jun 2017

Software Developer

frontendbackenddesign
@ Unboxed

Frontend maintenance and style-guide work on Sanlam's Online Investing portal, including customisation for its white-labelled version. Also provided CSS and JS support for Augmento on a custom Ruby on Rails stack. Team managed remotely from London.

ruby on rails sass style guides
Jan 2016 — May 2016

Software Developer

frontenddesign
@ Project One Love

Custom design and development from scratch — coded entirely by hand and still holding up well years on. An early proof that building for longevity rather than trend is always the right call.

custom design vanilla js
Aug 2014 — Dec 2015

Software Developer

frontendux
@ LightSpeed

Responsible for UX across a client portfolio in the hospitality industry for this distributed Wordpress team — covering feature enhancements and frontend maintenance across a range of client sites.

wordpress hospitality ux
drag, scroll, or use the arrows
04 / building · researching · learning

currently into

research

Tiny Recursive Models

Samsung SAIL Montreal's work on small models that use recursive architecture to punch well above their weight. The case that how you build a model matters more than how big it is.

research

1-bit Ternary Models

Extreme quantisation as a design choice, not just a compression trick. If weights can be −1, 0 or +1 and still reason well, the implications for local inference and edge deployment are significant.

thinking

Recursive Language Models

Recursive reasoning shifts the bottleneck from “how much you memorized” to “how hard you can think”. The industry optimised for scale because scale is easy to parallelise. Depth is harder to engineer — but infinitely more powerful.

drag, scroll, or use the arrows