







A reference manual for people who design and build software.
Principles for crafting software
My principles for deciding what to work on and how to build it.

Docs as Code: The Best Guide for Technical Writers
Recently, my work has involved writing a lot of documentation and. Doing this has introduced me to...

Tending Your Software Garden
Software: do you write it like a book, grow it like a plant, accrete it like a pearl, or construct it like a building? As Steve McConnell notes in Code Complete 2, there’s no shortage of software development metaphors: A confusing abundance of metaphors has grown up around software

Eight Habits of Expert Software Designers: An Illustrated Guide
The best designers employ specific habits, learned practices, and observed principles when they work. Here are a few of them.


A pocket full of personal software - Bailey's Retrospective
A year-ish spent building software I want, the way I want with *in a low voice* llms
Building personal tools by programming

You can't design software you don't work on
Only the engineers who work on a large software system can meaningfully participate in the design process. That’s because you cannot do good software design without an intimate understanding of the concrete details of the system. In other words, generic software design advice is typically useless for most practical software design problems.

Live Coding: A User's Manual
Live Coding: A User's Manual, published by MIT Press

values based software talks
Talk #3 Files, algorithms, media, software as lived practice, and personal software
Documenting Software Architecture
Documenting Software Architecture When we need to explain to someone else (new developer, product owner, investor, …) how the application works, we need documentation. But what documentation option…

userinterface.wiki
A living manual for better interfaces. Learn design principles, motion, typography, and more.

R. S. Doiel, Software Engineer/Analyst — Robert's ramblings
By R. S. Doiel, 2026-02-21 (revised: 2026-03-03, epilogue added 2026-03-27)
Software Design is Knowledge Building
The product of software development is not code but a mental model, a theory: a specific way of explaining the world.
