Web applications
Usually Next.js, React and TypeScript. Server-rendered, accessible, and quick on an average phone rather than only on a fast laptop.
Fullstack development by someone whose other job is finding bugs. I know what badly built software looks like from the inside, because I spend my working life taking it apart.
Plenty of this work is a defined slice: an API, a frontend, a feature someone needs finished.
Usually Next.js, React and TypeScript. Server-rendered, accessible, and quick on an average phone rather than only on a fast laptop.
Node.js services and REST APIs with sensible error handling and enough logging to work out what went wrong at three in the morning.
Components built once and reused, so the fifth page looks like the first and adding the sixth doesn't mean starting over.
Payment providers, booking systems, CRMs. The work is rarely the happy path; it's what happens when the other service is slow, down, or returns something unexpected.
Picking up a project someone else started. Where it's worth it, I'll add tests around what's there before changing it, so you find out immediately if I break something.
Tests that run on every merge. This is my main line of work, so it's built in from the start rather than promised and skipped.
Bug fixes, dependency updates and the steady trickle of small features. Useful if you have a site nobody currently looks after.
Long projects go wrong quietly. Short cycles with something real to look at mean you find out early if we're building the wrong thing, while it's still cheap to change.
We work out what you actually need, which is often smaller than the initial idea. I'll write down what's in and what isn't.
How I'd build it and what it costs. If something looks risky I'll say so here, not later.
Work goes live to a test environment as it's finished, so you review real software rather than a status update.
The same testing I'd sell you on its own: regression, accessibility, error handling, and the paths that only break under load.
Deployed, documented and explained. Then I stay reachable for the first weeks of real traffic, which is when the real bugs appear.
Projects start with a written scope and an estimate. What's included and what it costs are agreed before any work begins, so nothing on the invoice comes as a surprise.
A defined feature, a prototype, or a site that needs rebuilding.
A full application or a significant rebuild.
A set number of hours a month for teams who need steady progress.
That might be a whole build, or a defined piece of a bigger one. If what you need really takes a team of five, I'll tell you early.
Fast enough to put in front of customers, built well enough that you're not rewriting it the month it starts working.
Hand me a well-defined slice and I'll deliver it to your standards, in your repo, through your review process.
The developer left, updates stopped, and every change now feels risky. Usually that means putting some tests around it first, then starting to move it forward again.
Tell me what you're trying to make and what's constraining you. I'll come back with how I'd build it and what it would take.
Start a project