
Pokédex
Gotta catch 'em all — a sleek, interactive Pokédex that lets you browse, search, and discover your favorite Pokémon.
- Vue
Full-stack developer · Christchurch, NZ
I design and build thoughtful digital products — from concept to deployment. Focused on clean code, great user experiences, and shipping things that matter.
I'm a full-stack developer who loves turning ideas into real, working products. With experience spanning frontend interfaces, backend systems, and everything in between, I focus on writing clean, maintainable code that solves real problems.
I care deeply about the craft of software — the architecture, the user experience, and the small details that make a product feel polished. Whether it's building a new feature from scratch or improving an existing system, I bring a product-minded approach to everything I work on.
When I'm not coding, you'll find me exploring new technologies or thinking about how to build things that genuinely help people.
Node.js · Vue.js · TypeScript · PostgreSQL · Bitbucket · Claude Code · Three.js
Node.js · Vue.js · TypeScript · Jest · PostgreSQL · Bitbucket
Node.js · Vue.js · GraphQL · Kubernetes · Terraform · Helm · SQL
Node.js · Vue.js · Nuxt.js · Strapi
Node.js · MongoDB · Docker · RabbitMQ · Kubernetes
Node.js · Angular · MS SQL
C# · ASP.NET · JavaScript · Crystal Reports · MS SQL Server
Tap a project to see it in action.Hover over a project to see it in action — click to visit the site.

Gotta catch 'em all — a sleek, interactive Pokédex that lets you browse, search, and discover your favorite Pokémon.

A weather dashboard built with React 19 and TypeScript. Search any city worldwide for current conditions and a three-day forecast, with the interface theming itself to the weather.
Have a project in mind? Let's talk.
I'm always open to discussing new opportunities and interesting ideas.