Websites
Responsive, accessible websites built around clear information architecture, strong performance and maintainable implementation.
Full-Stack Web Development
I build fast, accessible and maintainable websites, web applications and digital products — combining thoughtful interfaces with dependable full-stack engineering.
Engineering principle
Small layers. Clear responsibilities.
Interface
Semantic HTML, responsive layouts and focused interactions.
Application
Server-side logic with explicit boundaries and predictable behaviour.
Data & delivery
Persistence, testing, security and deployment treated as part of the product.
01 / Development
The strongest web products treat the interface, application logic, data and infrastructure as parts of the same system.
Responsive, accessible websites built around clear information architecture, strong performance and maintainable implementation.
Authenticated areas, dashboards, client workspaces and data-backed workflows where the browser is part of a larger application.
Application logic, persistence, authentication, validation and integrations built around explicit responsibilities rather than unnecessary complexity.
Extending, restructuring and improving existing applications when the product has outgrown its original implementation.
02 / Engineering principles
I favour straightforward architecture, server-rendered interfaces and small layers that are easy to understand, test and change.
Performance
Keep browser work deliberate, minimise unnecessary JavaScript and make the server do the work it is good at.
Maintainability
Clear boundaries and boring, understandable code beat clever abstractions that make tomorrow's change harder.
Security
Authentication, CSRF protection, secure sessions, validation and defensive HTTP behaviour belong in the architecture from the beginning.
03 / Technology
Technology is chosen to support the product rather than become the product.
Go
Application layer
HTTP services, business logic, middleware and server-side rendering.
HTMX
Interaction layer
Focused dynamic interactions without turning every page into a JavaScript application.
SQLite / SQL
Persistence
Straightforward relational data with explicit queries and migrations.
HTML / CSS
Interface foundation
Semantic markup, responsive layouts and accessible browser-native behaviour.
04 / Selected work
This portfolio combines a public website with a private operational workspace, authentication, persistence, publishing and deployment.
A public portfolio and private workspace built as one coherent system, including authentication, clients, projects, contracts, publishing and application security.
Read the case study
Application architecture
One product. Multiple layers.
Public pages and private operations share the same application while keeping responsibilities clearly separated.
Interface
Server-rendered UI
Application
Go services
Persistence
SQLite
Security
Sessions + CSRF
05 / Process
Development starts with understanding what the application actually needs to achieve, then choosing the simplest architecture that can support it reliably.
Clarify users, workflows, constraints and the outcome the product needs to support.
Define the interface, data model and application boundaries before complexity starts accumulating.
Implement the product incrementally with testing, accessibility and security considered throughout.
Deploy, measure the real behaviour and improve the system based on evidence rather than assumptions.
06 / Start a project
If you're planning a website, web application or custom digital product, tell me what the system needs to do and where the current approach is getting in the way.