Skip to content
[ whoami ]

I started as theperson who broke it.

Eleven years later most of what I know came from being on call for my own mistakes. That is the whole method: read first, ship something small, stay long enough to fix it.

// the desk, most mornings — Lisbon, GMT+0

eleven years, two clients at a time

[ principles ]

Four things I will argue about.

Held long enough to have cost me work, which is the only test that counts.

01 / read_first

The first week produces no code.

I read the repository, run the build on a cold machine and write down what I find. Clients hate this for about four days and then quote the document back to me for a year.

02 / boring_wins

Boring infrastructure is a feature.

Three years on call for a payments API taught me what an interesting architecture costs at four in the morning. I will always argue for the dull option that a stranger can debug.

03 / access_is_spec

Accessibility is not a phase two.

Keyboard order and focus states are part of the component, not a ticket for later. Retrofitting a checkout for an audit costs roughly six times what building it right cost.

04 / leave_a_maintainer

Success is not needing me again.

Every engagement ends with a walkthrough recording and somebody on your team who can change the thing I built. tsflow has three maintainers now and none of them is me.

[ log --reverse ]

The commit history.

Eleven years, five things worth keeping. Drag the rail.

2014

First production deploy

A bike-share app in Porto. It stayed up all weekend, which felt like a miracle at the time.
2017

Senior, and the pager

Took on-call for a payments API doing 40 million requests a day. Learned what boring infrastructure is worth.
2019

Open-sourced tsflow

A typed state machine for React forms. Six thousand stars and, eventually, a maintainer who is not me.
2022

First conference talk

Thirty minutes on incremental type migration, in Berlin, after eleven months of rehearsing it.
2025

Went independent

Two clients, a four-day week, and the same editor config I have carried since the beginning.
[ currently ]

Where things stand.

Four days a week on a payments platform in Lisbon, one day for whoever is paying for it. When that day is booked out I say so here rather than in an email three weeks later.

section-tech-webdesign-4
[ Facts ]

What's actually true right now

Payments platform at a fintech, four days a week

Two contract projects a year. Next opening in October.

Thirty-minute calls most Thursday afternoons, no charge.