contact
I'm not looking for work, but I'll hear out the right thing. Email is the reliable one — the rest of the accounts below get read eventually, which is a different promise.
what I'd take on
Full-stack product work in TypeScript — Next.js and React on the front, Node behind it, Postgres under that. The version of this I'm best at is the one where I own both halves and the seam between them, which is how the auctions system below worked.
The work I'm drawn to is the kind described on the about page: systems where being wrong is expensive and quiet. If your problem is a schema, a provisioning path or something that has to survive being unattended at 3am, that's the territory.
what I'd pass on
- Frontend-only builds from someone else's designs, where I don't own the backend. I'm more use when both halves are mine.
- Rust or C++ for money. I'm learning both in public and say so on the about page; you shouldn't be the one funding that.
- Anything that needs a team's throughput. I'm one person, and a deadline that assumes otherwise will find that out late.
paid work so far
Short list, and deliberately not dressed up as a CV. Most of what I've built is on the projects page instead — it's more work, and more honest about which of it was mine.
Auctions system, art gallery
2024–25Subcontracted, and the one I'd point at first. Owned it end to end — React on the front, Django REST behind it, and the stack calls were mine to make rather than handed down. Shipped, without my name in the footer.
Booking site, dog groomer
2024Next.js and Prisma, finished and never deployed — the client stopped paying before it went up. Listed because leaving it out would make the other two look like the whole story.
Site for a YouTuber
2019PHP with a bit of JavaScript on top: last five uploads and whether the stream was live, pulled off the API. The first thing anyone paid me for, and it looked like it. It's here for the date more than the work.
if you're emailing about work
None of this is required — it just saves us three emails finding out whether there's anything here.
- What you're building, in the plainest terms you've got.
- Whether there's an existing codebase or this starts empty.
- The real deadline, if there is one, rather than the comfortable one.
- A budget range. I'd rather find out now that we're far apart.
elsewhere
Same handle almost everywhere, with one typo's worth of exception on X. I work under the handle rather than a legal name — happy to sort that out privately once a conversation is actually going somewhere.