October 8, 2026
Where to place the cursor?
Well, quite a bit has changed in the seven months since I wrote Optimize for Humans. Its key takeaway was that AI is no excuse to abandon readable code, good abstractions, and especially the people who understand how software works. Looking back, I realize I was more attached to the idea of software development as a craft than I cared ...
Read more
Read more
April 16, 2026
You were a slave to The Machine long before AI
Something's rotten in humanity's mindset and it's probably been there since forever: the willingness to submit to stupid quantitative objectives, or comply with garbage rules just to move on without questioning if the system is rigged at the core. It's never been so true now that AI is here and is reshaping the world we live in. And as...
Read more
Read more
March 1, 2026
Optimize for Humans
There's a growing temptation in the industry to treat AI as an excuse to abandon the practices that made software development good in the first place. Good abstractions, conceptual compression of complexity, clean architecture. The reasoning goes: "We have AI now, so we don't need to make code readable or maintainable. The AI will figu...
Read more
Read more
April 17, 2025
You might not need JavaScript
Five years ago, I set myself a challenge: create a simple social network that would function without JavaScript. It was a radical choice, but one driven by a few key reasons. 1. At the time, most web apps were SPAs, built entirely in JavaScript, as if it were the only way to make a modern app. I had been working on React frontends for ...
Read more
Read more
March 4, 2021
Programmatic
Try it, boot it, start it, load it, break it, crash it, wait, restart it Search it, read it, cut it, paste it, write it, save it, refactor it Loop it, map it, mute it, strip it, scan it, change it, quick commit it Fetch it, pull it, merge it, touch it, blame it, push it, quick rebase it Test it, build it, run it, fail it, fix it, pass ...
Read more
Read more