Software Engineering
I build and maintain modern web applications, working across interfaces, APIs, shared components and the systems that hold everything together.
- React
- Next.js
- TypeScript
- APIs
- Design Systems
Software engineer Creative developer Lecturer
I build digital things worth using.
The useful part
I build digital products that work properly, feel natural to use and leave a lasting impression.
I work where engineering, creative development and design thinking meet — then explain the complicated parts in normal language.
Different modes, same work
I build and maintain modern web applications, working across interfaces, APIs, shared components and the systems that hold everything together.
I like the parts of the web where engineering and design stop being separate disciplines. Motion, interaction, unusual layouts and small details matter when they make an experience better.
I've spent years building for the web, from bespoke applications to content-heavy platforms, commerce and custom publishing systems.
I run my own independent digital studio, taking projects from an initial conversation through design, development, infrastructure and launch.
I've taught and mentored people who needed technology to make sense, not simply sound impressive. Teaching changed the way I approach development too. If an idea cannot be explained clearly, it probably is not clear enough yet.
Building something is only useful if you can actually ship it. I've worked across deployment, hosting, domains, DNS, cloud infrastructure, migrations, performance and the less glamorous pieces required to make software exist reliably in the real world.
Experience without the CV
Places I’ve worked, taught, built and collaborated.



Range, not a checklist
A changing toolkit, chosen for the problem.
A practical system, not a collection of badges.
Behind the interface
Front end is home turf, but I enjoy following a feature beyond the browser — shaping an API, modelling data and making sure the useful part survives deployment.
I’m not precious about a stack. I like understanding the whole request and getting involved wherever the problem actually lives.
Server-side logic, integrations, authentication and APIs that give the interface something useful to talk to.
Relational or document-shaped, cached or queued — choosing structures that stay understandable as a product grows.
Containers, edge functions and cloud infrastructure that move work from a local machine into the real world.
A useful tendency
I take complicated ideas, find the useful part and turn it into something people enjoy using.
That’s usually software.
Sometimes it’s something considerably stranger.
Start a conversation
Good ideas, difficult problems and work that deserves more than an off-the-shelf solution are always worth a conversation.
[email protected]