Freelance, full-stack software development — from a simple website to a full custom system. Each capability below is delivered end to end, from a first spec conversation to something running live in production.
Any kind of website, built by an engineer rather than a template — business sites, landing pages, online stores and web apps. Fast, responsive, SEO-ready, and yours to own.
Server-side systems built on ASP.NET Core — the engine behind a booking flow, a marketplace, or an internal tool. Built for correctness under load, not just for a demo.
Interfaces for the people who use the system every day — internal teams, customers, or admins. Built to stay fast as the data grows, not just at demo scale.
The layer everything else depends on. Schema design and query performance done right the first time, or fixed when an existing database is buckling under real traffic.
The whole Shopify build from one engineer — a store designed and built to sell, plus the custom apps, admin panels and integrations that themes alone can't do.
Getting two systems that were never meant to talk to each other to actually work together reliably — payments, bookings, supplier feeds, or internal services.
My flagship build, already shipped: a live multi-GDS travel platform. Flight, hotel, tour and appointment booking with real-time search, payments, refunds, supplier integration and an admin panel your team can run.
Travel portals wired straight into Amadeus, Sabre and Travelport. A B2B portal for your agent network or a B2C site for travellers — live flight & hotel search, agent wallets, markup, payments and an admin panel. Built on a live multi-GDS platform.
Software is never really "done" — it's maintained. Ongoing coverage for systems already in production, plus the deployment work to get a new one live safely.
Every service above is delivered under one of these models — scope, price and timeline agreed up front, in writing, before any work starts.
For a clearly defined deliverable — a website, a Shopify app, a booking flow, a specific integration. We agree the scope, price and timeline in advance, so you know exactly what you're getting and what it costs before anything begins. Payment is milestone-based, released stage by stage as work is delivered and approved — never a large sum upfront.
For ongoing work that doesn't fit a single deliverable — a steady stream of features, maintenance, performance work and support on a system already in production. You get a predictable monthly cost and a developer who already knows your codebase, instead of re-explaining it to someone new every time something needs doing.
For an existing system that's slow, unstable or half-finished. I start with a paid audit — a clear, honest report on what's wrong and what it takes to fix it — before committing to changes. That way you get an independent read on the state of things first, with no obligation to continue.
Every service above ships with these as standard — not paid add-ons.
More on pricing, payments, timelines and ownership is on the FAQ page.
Describe the problem, not the solution — we'll map it to the right service.