Work
what I'm for hire to do
Available for contract work. Backend systems in Go and Node, Postgres data models that hold up once there's real data in them, and getting half-finished codebases into a state you can put in front of customers. Remote, French and English, one to three days a week.
More and more of that last part is code that was generated rather than written. It usually works, right up until the second user or the first bad input — auth that checks the token but never who it belongs to, a schema missing the one unique constraint that mattered, migrations nobody planned for because there was nothing to migrate yet. That isn't an argument against generating it. It's just the part that still needs someone who'll be around when it breaks.
EDUCAM
freelance backend · 2023 — now
Three years on the same migration: a hundred thousand-odd records — people, companies,
and the business data tying the two together — coming out of a legacy ERP and into
something maintainable. Go services do the transformation, the validation and the
integrity checks; Postgres holds whatever comes out the other side.
The number worth quoting isn’t the record count, it’s zero. No data lost, across every
phase so far. That’s the only line a migration is really graded on, and you get to it by
moving in pieces small enough to reverse and reconciling both sides after each one. The
boring version takes longer and it’s the one that works.
Downtown Park
built it, run it · 2026 — now
A park night runs noon to noon, so a van rolling through the gate at two in the morning
belongs to the night before. Get that wrong and the guest books a date that doesn’t
exist while the arrivals list quietly runs a day out. It’s worked out on the guest’s own
device, which is also how the server gets away with never knowing anybody’s timezone.
The rest of it is the booking and operations app for a campervan park in Palmela,
live and taking real bookings. Before it, availability
lived in a WhatsApp thread the owners scrolled back through every morning. Vue 3 on
Cloudflare Pages Functions, with KV as the only datastore — no SQL, nothing rented from
anyone, a hosting bill that rounds to zero. Mobile first on both sides, because the guest
is standing at the gate holding a phone and so is whoever has to answer them. A separate
worker watches the regional event calendar and suggests moving prices for the busy
weekends; it only ever suggests.
There was a full WhatsApp Cloud API integration too, finished and working end to end.
Meta wanted business verification for it, and that stopped being worth it for a park
taking a few bookings a day, so it came out of main and went to sit on a branch. Removing
a feature that works is a cheaper decision than maintaining one nobody asked for.
TokenTech
co-founder · 2022 — 2023
A web3 agency I co-founded. Smart contracts and the interfaces that sit on top of them —
Solidity and Hardhat on one side, Vue and web3.js on the other. Marketplaces, launches,
and the occasional thing that had no business being on-chain at all.
The contract is the easy half. The hard half is a mint page that survives its own launch
day, and a contract nobody can quietly drain six months later. Most of the job is
declining to ship the clever version.
42
student, then staff · Paris 2014–2018 · Lisbon 2021–2022
A school with no teachers and no lectures. You get a subject, a deadline, and a room
full of people equally lost. I did the curriculum in C — a raytracer, a Core War VM
and the assembler to feed it, a shell, a fractal explorer, philosophers deadlocking
forever over dinner.
Then in 2021 I went to Lisbon to help open a new campus, which turned out to be an
entirely different job: racking and imaging the machines, running the IT, and writing
the internal tooling — including a Postgres-backed dashboard so staff could see what
was actually happening on the floor.
Going through it teaches you to build without being told how. Building it teaches you
what that costs to run.
Get in touch
Taking contract work · 1–3 days a week
The useful first email is three lines: what the stack is, when you need someone, and roughly what the budget looks like. That's enough for me to tell you straight away whether I'm the right person, which saves us both a round trip.
Things that move. No purpose beyond looking at them.
- Flowink dragged through a noise field
- Try Anglea star that keeps falling into itself