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.
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
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 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
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