The blog.
Notes from my work as a product engineer: building interfaces people enjoy, shipping with coding agents, and the tools I build for myself along the way. A new post every week or two.

Review is the job now
When agents write most of the first drafts, the scarce skill is judging code, not typing it. How I review code I didn't write: triage, a full-diff read, Claude's first pass, a cold second opinion, and a loop that learns from every human comment.
All posts
6 more
A menu bar that knows about my meetings
A personal tool that touches my calendar deserves the same care as a product feature. How my menu bar keeps important meetings visible while I'm in focus mode, and keeps private titles off a shared screen.

Release pipelines that make shipping boring
From building on a laptop and dragging files onto a server to a pipeline nobody has to think about: why automating releases changes how a team behaves, and how to introduce it without formal authority.

Plans before code
Every task my coding agents pick up starts read-only, with a written Definition of Done and a plan. What goes into one, what reviewing it catches, and how the process scales from a copy fix to a risky change.

From guesswork to evidence
Product analytics is a way to answer questions, not a way to collect data. How I take a team from opinions to evidence: start from decisions, keep the vocabulary small, close the loop, and design for privacy from day one.

Home Assistant, from user to contributor
I've run Home Assistant since 2018, improving my setup a little at a time. In 2025 I started contributing to its frontend, and reviewers I'd never met taught me about consistency, scope and evidence.

My setup, and how I got here
From agency work in Barcelona to leading the Experience Team at InSpace: how each job shaped the machine, desktop, terminal and coding-agent cockpit I work in today, and why it keeps changing.
No posts on that topic yet.