Deep down, the goal is always the same: to build honest, meaningful products.
When I say slow I'm not talking about building slowly. I'm talking about using the pause as a tool, the one that separates the moment when something works from the moment when you ask yourself whether things shouldn't be some other way.
Today we can iterate on code, or on a specific screen or component, in far more agile ways. Each iteration is just that, a tool for thinking. But judgment can't be accelerated the same way; it remains a particular way of looking, of noticing the detail that isn't visible at first glance and only appears once someone uses the thing every day.
When I look at a problem up close, then step away for a while and come back to it, the solution often becomes obvious. It was always there, waiting to be discovered. It's not magic, it's distance. Haste works fine for solving what was already evident, but sometimes, by moving fast, you can miss the solution the problem was waiting for.
For that to happen we have to give ourselves over to the problem with openness and humility, without going out to find the solution we had already decided on beforehand. Letting ourselves be surprised, even challenged, by a solution that isn't the one we expected to find.
01. What it exists for
Adding new features is always tempting, but before doing it, it's worth asking what the thing exists for. It's not enough for something to work; it has to earn a place in someone's life. Otherwise it's implementation time, maintenance, and cognitive load spent in vain.
The question isn't whether something works, but whether it deserves to exist. When the answer is doubtful, it's better to let it wait a while. Time is a good ingredient for creation.
02. Clearing the obvious to make room
It's contradictory but necessary: the obvious and the imminent should be solved fast, gotten out of the way as soon as possible. To make room for what's still missing.
Sometimes you have to run, and there's no way around it. What I'm writing here isn't meant to romanticize the pause, but to leave space for the detail to appear: the noticing, the care, the craft in design. Slowness can turn into paralysis, and that's worse than haste. When the problem is clear, there's no excuse for lingering.
03. Intention shows in the change
Code generation doesn't replace judgment; it makes it more necessary. Each iteration with a model is a way of thinking out loud: I try a direction, see what comes back, adjust. The decision of why this solution and not another is still judgment and sensibility.
When I review a piece of delivered code, I try to read it the way you'd read an argument: each change has to hold up and build on the one before it. If that sequence isn't clear yet, it's not time to ship.
04. Clarity as aesthetics
I don't think beauty is decoration. Beautiful is what shows its structure without lying: an interface that doesn't confuse, an endpoint you understand just by reading its name, a button that isn't there just because. The elegant.
Often, for a good solution to emerge, you have to create and destroy several times before reaching it. That's why I usually think about products subtractively; simplicity evokes a special form of the beautiful.
Removing things is also a design decision. Every element that stays has to justify why I didn't take it out.
05. Care is proven, not declared
Care isn't in saying that you care. It's in the defaults you choose, in the error message that explains instead of blaming, in the documentation that doesn't leave the other person lost.
What's useful fits into someone else's routine without demanding anything extra. It's there when they need it and disappears when they don't.
It also shows up when nobody's watching and you still go back to check that edge that doesn't quite close, because you know that at some point someone will notice it.

Over time I learned that running helps when the problem is new and it's still not clear where to come at it from. But as soon as the problem starts to know me, it's better to slow down. Automating the repetitive so I can give my time to what requires decision.
Add with enthusiasm and remove with care, add with care and remove with enthusiasm. It's a virtuous cycle and a way of being. The product is never finished; there will always be one more possible improvement, and accepting that isn't a defeat, it's part of the craft.
If we look closely, what we make ends up showing, sooner or later, whether it was made with attention or just to get it out the door.
