On writing software
There's a specific moment every programmer knows. You run the code and it does the thing. Not approximately — exactly. The machine did what you told it to, completely, correctly.
That's it. That's the whole feeling.
People try to dress it up, but it's just that: something worked. And somehow, after years of it, it still doesn't get old.
Why I build
I didn't start because I had a grand vision. I started because I wanted to understand how things worked. First HTML, then JavaScript, then the feeling of a server responding to a request you wrote. Each layer revealed another one beneath it.
The interesting thing about software is how honest it is. It does exactly what you tell it. The bug is never the computer's fault. That's annoying at 2am, but clarifying in the long run — the discipline of it changes how you think about everything else.
The craft part
Good software has a shape you can feel. Not just that it works, but that it would work — that the structure is right, the abstractions are at the right level, the code reads like it was always going to be this way.
That's what I'm after when I build. Not the minimum thing that ships, but the thing that someone else could look at six months later and understand immediately.
// This is the whole API. One function, clear intent.
function getPost(slug: string): Post | null
Simple interfaces are hard. They require knowing what you're actually doing.
What's next
More building. There's a 3D world on this site now — go play it. And more writing here as I find things worth saying.