Notes from the workshop
Short pieces on building products, the tools I use, and what I learn along the way.
- 1 min read
What I learned from a bad week
A week where almost nothing went right, and what stayed with me when the week ended.
- 1 min read
Why my settings page has six things
A short defence of a settings page that does not grow.
- 1 min read
A thing I was wrong about
An opinion I held for years, what changed it, and what the change cost me.
- 1 min read
The tools I uninstall every quarter
A short ritual that has kept my laptop, and my attention, in shape.
- 1 min read
Default values I changed
A short list of defaults that did more work than any feature I built.
- 1 min read
Tradeoffs I made in February
A short audit of three explicit tradeoffs and what they cost.
- 1 min read
What I tell people when they ask what I do
A short sentence I have iterated on for two years.
- 1 min read
When I open the debugger
A short rule about when to step through code versus when to read it.
- 1 min read
One number that surprised me
A metric I had not been tracking, that turned out to predict more than the ones I had been.
- 1 min read
Words I removed from the UI
A short audit of the vocabulary that made the product feel less like itself.
- 1 min read
Building in Estonian
Why I write my product in two languages, and what the Estonian version teaches me about the English one.
- 1 min read
My git rebase rules
A short list that has kept the history of my projects readable for a year.
- 1 min read
The button that didn't exist
How three users tried to click a thing that was not there, and what I built instead.
- 1 min read
The newsletter I cancelled
A small, polite, ongoing transaction I had agreed to, and what I noticed when I ended it.
- 1 min read
A walking pace I learned
A small adjustment to how I move on an afternoon walk that changed what happens in my head.
- 1 min read
Why I keep a CHANGELOG.md, alone
A file for an audience of one, and why it has become the most useful file in the repo.
- 1 min read
One signup field is enough
What happened the week I cut my signup from five fields to one.
- 1 min read
The advice I stopped giving
A short list of things I used to repeat in advising calls, and what changed my mind.
- 1 min read
The morning I stopped checking email first
One swap, no app to install, and the most under-discussed productivity win I have ever made.
- 1 min read
When I write a test and when I don't
Three rules I follow, two I have softened, and one I refuse to bend on.
- 1 min read
A year of saying no
An audit of what I declined, what it cost me, and what it bought back.
- 1 min read
The animation I removed
Why a 120ms ease that I had been proud of had to come out.
- 1 min read
One environment variable per concern
A small rule that has kept my config files honest for a year.
- 1 min read
What I eat when I'm shipping
Three meals, one rule, and why I stopped pretending I would cook on launch week.
- 1 min read
Books I returned to in March
Three I kept rereading instead of starting new ones, and what they had in common.
- 1 min read
Why I send no welcome email
A small product decision that took a year to fully accept.
- 1 min read
A bug I left in for two months
Why the right time to fix it was the second I noticed, and what I am telling myself next time.
- 1 min read
The advisor I fired was me
On noticing when the voice giving you advice is the one that needs the most.
- 1 min read
Talking to one user a week
Not a strategy, a small habit, but the one that has reshaped the product more than anything else.
- 1 min read
When I start over vs when I refactor
A test I run on myself before I commit to either path.
- 1 min read
The empty state I argued with myself about
Two weeks, three drafts, and what the right answer ended up being.
- 1 min read
Why I don't use AI in production code (yet)
What I let an assistant do, what I do not, and the line that has not moved in a year.
- 1 min read
Closing the founder check
How I get to the end of a working day without dragging it into the next one.
- 1 min read
Onboarding I rebuilt three times
The same flow, three increasingly small versions, and what each one taught me.
- 1 min read
Reading code in the morning
A habit borrowed from a senior engineer that quietly changed how I work.
- 1 min read
The week I shipped nothing
What I did instead, and why the week was not wasted.
- 1 min read
Three meetings I always say no to
A short rule that has saved me about a day a week.
- 1 min read
Why I keep three GitHub repos open
How a small constraint on open tabs shaped what I actually finish.
- 1 min read
The shell aliases I actually use
A short audit of which shell aliases survived a year, and which I deleted on purpose.
- 1 min read
What I do before I open my laptop
A short routine that keeps the first hour of the day mine.
- 1 min read
What I track and what I don't
A short list of the metrics I keep close, the ones I deliberately ignore, and the test I use to decide.
- 1 min read
Features I deleted this quarter
A short audit of what came out of the product, what stayed in, and what I learned about the difference.
- 1 min read
What I tell every founder call
A short list of things I find myself repeating across advising conversations.
- 1 min read
Building ClubFriends from zero
Notes on starting a consumer social product alone — the constraints I picked, what I am avoiding, and the small loops I run every week.
- 1 min read
Two cities, one keyboard
What changes and what stays the same when you split a working life between two cities.
- 1 min read
The week I stopped reading the timeline
What I did instead, and which inputs I actually missed.
- 1 min read
The quiet stack
Why I keep choosing boring tools for new projects, and the short list I default to in 2026.
- 1 min read
Soft launching to nobody
On shipping a product to a quiet audience first, and why the silence is the point.
- 1 min read
The cost of half-finished tools
Notes on cleaning up the personal AI tooling drawer that grew sideways for a year.
- 1 min read
My notes app is a folder
After a year of bouncing between note apps, I came back to a folder of plain Markdown files.