IT consulting & web development
Building web products, and running what's underneath them.
I have over two years of production PayloadCMS behind me across a wide range of products, TypeScript and Next.js end to end, and a working knowledge of the Linux, self-hosting and NixOS layer that keeps it all online. I slot into an existing team without a month of onboarding.
What I do
Services
PayloadCMS and Next.js product work, embedded engineering inside an existing team, the Linux and NixOS layer underneath, and architecture review when the question is a decision rather than a build.
What gets built
PayloadCMS development
Over two years of professional PayloadCMS work across a wide range of products: content modelling, access control, custom admin UI, plugins, and migrations off a CMS that has been outgrown.
Details 02Next.js & TypeScript product work
Application work in TypeScript and Next.js — greenfield App Router builds, rescue work on a codebase that has stopped being fun, typed API boundaries with tRPC or gRPC, installable PWAs, and Core Web Vitals that hold up.
Details 03Linux, self-hosting & NixOS
The layer under the application: reproducible NixOS hosts, self-hosted services owned outright, and build environments that behave the same on every machine.
DetailsHow it gets scoped
Embedded engineering
A senior engineer dropped into an existing team for a defined stretch — quick to fit into the process already in place, communicating in writing, and useful in the first week rather than the second month.
Details 02Architecture & technical review
Short, sharp engagements where the deliverable is a decision: a written second opinion on an architecture, an API design read, or technical due diligence on a codebase before money moves.
DetailsEvidence
Four problems, and what they turned on.
Anonymised notes from recent engagements — an expression-based rule engine with the model moved out of the request path, CSV import at a few million records, versioned PayloadCMS plugins, and a build where the requirements never stopped moving.
- 01 An AI-written rule engine that still answers deterministically When a model is too slow or too non-deterministic for the request path, have it produce an artefact rather than an answer.
- 02 A CSV import built for a few million rows Validate at the boundary and stream through it, and the size of the input stops being a question about correctness.
- 03 Protocol plumbing, implemented once and versioned A versioned package with real release discipline is what turns shared code from a liability into infrastructure.
- 04 Shipping while the requirements kept moving When requirements cannot be pinned down, the mistake is not the plan — it is treating planning as a phase that ends.
How the work gets done
The typing got cheap. Judgement did not.
Most of what separates a good engineer from an expensive one is no longer typing speed. It is knowing what to build, what to verify, and how to say so clearly while there is still time to change course.
AI-assisted, reviewed line by line
Large language models write a good share of my first drafts. What ships is the part I have reviewed and can defend line by line. The speed is real; the shortcuts are not.
Fundamentals under the framework
Frameworks turn over every other year. HTTP semantics, caching, the request lifecycle and auth flows do not. Knowing what the network is actually doing is what turns a mysterious performance problem into a tractable one.
Communication as a deliverable
You get short written updates, pull requests small enough to review properly, and an early “this will not work” instead of a late surprise. Reliability is mostly a matter of saying things on time.
The bigger picture, deliberately
A ticket is usually a symptom. I would rather ask what the system wants to look like before adding a fourth special case to it — and push back when the cheap fix is the expensive one.
Working set
The tools in reach
- TypeScript
- Next.js
- React
- PayloadCMS
- Node.js
- tRPC
- gRPC
- REST
- Tailwind CSS
- shadcn/ui
- Figma
- PWAs
- PostgreSQL
- MongoDB
- Hugo
- Linux
- NixOS
- Nix flakes
- systemd
- Docker
- Caddy
- nginx
- Git
- GitHub Actions
Why Nixperts
The name is three words at once.
- *nix
- The Unix family — Linux, the BSDs, and the free software culture that grew up around them.
- Nix
- The package manager, the language and the operating system. Reproducible or it does not count.
- experts
- The only part of the name that has to be earned rather than chosen.
Free and open source components are what make a service outlast the company that built it: readable, auditable, movable, and with no renewal date. The Unix habit of small parts with clear seams is also the fastest route to a codebase somebody else can maintain.
Read the long versionWho you're hiring
About
I run a one-person IT consultancy for web development and the infrastructure under it — PayloadCMS as the deep specialism, AI-assisted delivery as the working method, and communication treated as part of the job.
More about meNeed a pair of hands that doesn't need onboarding?
Describe what you are building and where it currently hurts. You will get a straight answer — including when I am not the right fit.