Code and craft

Programmer

Building robust web applications and systems with modern tools and technologies.

Languages and tools

My core stack is PHP, SQL and vanilla JavaScript on the web, with C#, Python and GDScript for desktop, tooling and game work. Select a technology to see the projects where I have used it.

PHP
Main server-side language. Proficient with OOP, MVC frameworks and RESTful APIs.
See projects using this technology →
HTML / CSS
Building responsive, accessible web interfaces with semantic markup and modern CSS.
See projects using this technology →
JavaScript
Client-side scripting for interactive user interfaces, modern frameworks and progressive enhancement.
See projects using this technology →
SQL
Relational database design, querying and optimisation across MySQL, SQLite and PostgreSQL.
See projects using this technology →
C#
Object-oriented development with .NET for desktop and web application development.
See projects using this technology →
TypeScript
Typed superset of JavaScript for building scalable applications with enhanced tooling and modern framework support.
See projects using this technology →
React
A JavaScript library for building user interfaces with reusable components, state management, and a large ecosystem.
See projects using this technology →
Node.js
Server-side JavaScript runtime for building scalable network applications and backend services.
See projects using this technology →
Git
Distributed version control system for tracking changes, collaboration, and source code management.
See projects using this technology →
Python
A versatile, high-level programming language used for scripting, automation, backend development and data processing.
See projects using this technology →
Docker
Containerisation platform for building, shipping and running applications in isolated, reproducible environments.
See projects using this technology →
Linux & Windows
Proficient with both Linux and Windows server environments, shell scripting, deployment and system administration.
See projects using this technology →
GDScript
Game scripting with Godot 4 and GDScript for 3D game development.
See projects using this technology →

Selected work

These projects show the range of what I build, from full-stack business applications to browser games and desktop plugins.

How I work

How I build

I favour clear architecture, small composable modules and code that the next person can read. Good software is not only about getting a feature working; it is about keeping it working as requirements change.

  • Agreeing requirements, constraints and acceptance criteria before code is written
  • Secure defaults: prepared statements, CSRF tokens, password hashing and strict input validation
  • Automated tests and repeatable deployments for anything long-lived
  • Documentation and comments kept close to the code they describe
Security-first development

Security is part of the design, not a final checklist. I review data flows, authentication and authorisation early, then test the result rather than assuming it is safe.

  • Threat modelling for new features and changes to existing ones
  • Input validation, output encoding and least-privilege database access
  • Secure session handling and protection against CSRF and clickjacking
  • Dependency checks and a clear upgrade path for frameworks and libraries
Ways of working

I work remotely with clients and teams, and I am comfortable taking a project from an early idea through to deployment and support. I can join an existing codebase, review it and make practical improvements without rewriting everything for the sake of it.

  • Discovery, scoping and written estimates
  • Regular progress updates and milestone reviews
  • Code reviews, mentoring and documentation
  • Handover and support options after launch