Principal Engineer at Pixelmatters, from Ponte de Lima, Portugal. Same studio since 2018 — started as a front-end developer, somehow ended up principal.
These days I mostly build the machinery the rest of the team works inside, rather than the features that go through it: design systems, front-end architecture, CI, and the AI-native workflows we now code in every day.
- A skill library that guards its own index. Every agent skill says what it owns and what it refuses, plus the rules for writing the next one. No two skills claiming the same job and disagreeing on a Tuesday.
- Plan, critique, then execute. An agent drafts the plan, a second pass argues with it before a single line gets written. Cheapest time to disagree is while nothing exists yet.
- Review that sizes its own depth. The diff gets risk-assessed first, so a copy tweak gets a skim and anything near auth or deploys gets read line by line, with a human's name on it.
- The handover. Dragging all of it out of one team and into every project, then running the sessions where everyone else picks it up.
The decision to ship still stays with a person. That's the one bit that doesn't delegate.
Most of this lives in client repos, so what's public here is a pretty thin slice of it 🙈
- Favycon — throw in one image, get back every favicon size a browser could possibly ask for. Built during the 2020 lockdown and still, by a mile, the most-used thing with my name on it. favycon.vercel.app
- saraiva-dark — a VS Code theme on the Base16 Ocean palette.
- auto-all-contributors — automates crediting contributors, so nobody gets quietly forgotten.
TypeScript, all the way down. React with TanStack Router, Query and Form. Design systems on Radix and shadcn/ui, documented in Storybook. Node, pnpm workspaces, GitHub Actions, Cloudflare Pages. And a soft spot for interfaces that work for everyone.
I applied for my first job specifically to work with one developer at that company. By the time I actually started, they'd been promoted to Project Manager. You win some, you lose some 🤷♂️





