







A blog about software craft and quality
We mourn our craft
I didn’t ask for this and neither did you. I didn’t ask for a robot to consume every blog post and piece of code I ever wrote and parrot it back so that some hack could make money off o…
Software Should Be Allowed to Be Weird - Ewan’s Blog
A fairly large amount of the software I write would probably die in a corporate planning meeting. There would be questions about the target audience, the bu…
The Era of Software Quality, or the Era of Ostriches?
Humans are bad at writing secure code, and GNOME developers are no exception. GNOME is primarily written using unsafe programming languages where simple mistakes in our code lead to devastating...
Why craft-lovers are losing their craft
Les Orchard made a quiet observation recently that I haven't been able to shake. Before LLM coding assistants arrived, the split between developers was…
Dependency Cultures - Richard Feldman | SSW 2026
Notes on software quality
“The absence of problems” is the best definition I can come up with for quality.
Don't Take the Black Pill - Andrew Kelley | SSW 2026
Open Forks of Boring Apps With Authority - Woodys Rows
The Atmosphere can win by becoming the foundation for software people already need to use because of real-world relationships.

The Missing Middle of Open Source
Why serious, maintainer-driven projects struggle to sustain themselves—and what it will take to fix it.

psf (@psf@oldbytes.space)
In their article ["Malleable Software"](https://www.inkandswitch.com/essay/malleable-software), Ink & Switch list various ways that modern software applications fail to serve the user: - Software is too rigid: users can’t tailor it to suit their workflow, except by entering the role of programmers. - Software applications are overspecialized "avocado slicers", not general tools like "knives", so their lack of tailorability is keenly felt. - Software doesn’t provide a reasonable learning curve from beginner to expert; in other words, time spent learning an application doesn’t unlock tailorability, instead the end user must learn an unrelated skill like a markup/scripting language or even the tool’s implementation language. - Software applications are increasingly siloed, so sharing data between apps, let alone orchestrating cross-app workflows, is overly difficult. These are real problems. From what I can tell, Ink & Switch are software researchers, and view the problems from a highly technical perspective, focusing on novel infrastructure that enables end-user programmability. They pose questions such as "how do we ease users into programming?" and "instead of shipping a dead, static binary, can we ship a living image containing programming tools allowing it to be modified in arbitrary ways while still running?" These ideas are technologically exquisite, but they fail to provide a gentle learning curve. (cont'd) 🧵
Software engineering under the spotlight
Think of a tech company as a giant, dimly-lit factory. Work goes on throughout the factory as components shuffle back and forth, and finished products get steadily carted away, but the coordination and efficiency of each section is fairly low. Some parts of the factory get jammed up and don’t do anything for days. Other parts are manically producing broken components which are thrown away unused. However, the factory manager - i.e. the tech company CEO - has one tool to combat this problem. That tool is the spotlight.

“Policy Without Tools Is Just Poetry” - AT Protocol
Juliet Shen from ROOST joins the show to talk through the Coop 1.0 release, what open-source trust and safety unlocks for new builders, and where AI actually belongs in moderation

How building an HTML-first site doubled our users overnight
My client was a utility company, and they had a big problem...

How building an HTML-first site doubled our users overnight
My client was a utility company, and they had a big problem...

The peril of laziness lost | The Observation Deck
In his classic Programming Perl — affectionately known to a generation of technologists as "the Camel Book" — Larry Wall famously wrote of the three virtues of a programmer as laziness, impatience, and hubris: If we’re going to talk about good software design, we have to talk about Laziness, Impatience, and Hubris, the basis of good software design. We’ve all fallen into the trap of using cut-and-paste when we should have defined a higher-level abstraction, if only just a loop or subroutine. To be sure, some folks have gone to the opposite extreme of defining ever-growing mounds of higher level abstractions when they should have used cut-and-paste. Generally, though, most of us need to think about using more abstraction rather than less.