Five Years of Trying to Add Recursion to lychee
Recursion has been lychee’s longest-standing open issue. It’s been sitting there, unresolved, for over five years now.
If you haven’t come across it before, lychee is a fast, async link checker written in Rust (BTW).
I started it in 2020 because I got bored at home. By now, around 40k GitHub reposit…
More »
Hosting My Own Newsletter
I had a newsletter on this blog for years, but I didn’t send a single email for a long time.
This is the story of how I finally got it back up and running, and what I learned along the way.
A quick note up front, because this caused some confusion: by “hosting my own” I mean I don’t use a newsletter…
More »
On Taste
I’ve been refining this blog’s design for two decades now.
With each new version, I get a little better at knowing what I want.
Turns out, my designs tend to get simpler with time.
At this point, it’s all typography and negative space.
I got better at knowing what I value and what I can take away.
U…
More »
Now's The Time To Start That Blog
I was listening to a podcast recently where someone pointed out something curious: machines have been better at playing chess than humans for three decades now, and nobody cares.
People still watch human chess players.
If anything, chess is experiencing a renaissance.
I don’t know anyone who wants t…
More »
Building Up And Sanding Down
Over the years, I’ve gravitated toward two complementary ways to build robust software systems: building up and sanding down.
Building up means starting with a tiny core and gradually adding functionality.
Sanding down means starting with a very rough idea and refining it over time.
Neither approach…
More »
On Choosing Rust
Since my professional writing on Rust has moved to the corrode blog, I can be a bit more casual on here and share some of my personal thoughts on the recent debate around using Rust in established software.
The two projects in question are git (kernel thread, Hacker News Discussion) and the recently…
More »
How To Review Code
I’ve been reviewing other people’s code for a while now, more than two decades to be precise.
Nowadays, I spend around 50-70% of my time reviewing code in some form or another.
It’s what I get paid to do, alongside systems design.
Over time, I learned a thing or two about how to review code effectiv…
More »
Repeat Yourself
One of the most repeated pieces of advice throughout my career in software has been “don’t repeat yourself,” also known as the DRY principle.
For the longest time, I took that at face value, never questioning its validity.
That was until I saw actual experts write code: they copy code all the time1.…
More »
Watching Millionaires
I watched the Champions League final the other day when it struck me:
I’m basically watching millionaires all the time.
The players are millionaires, the coaches are millionaires, the club owners are millionaires. It’s surreal.
This week I watched John Wick Ballerina and, again, there’s Keanu Reeves…
More »
Paolo the Plumber
Paolo was a plumber.
People knew him as a reliable and thorough craftsman.
He fixed the pipes in his small town and made a good living doing so.
One day, his friend Mario told him that he’d bought a plumbing machine.
Paolo was intrigued and asked how it worked.
“It’s magical!” said Mario.
“I show it…
More »