$ ls -t ~/blog
Essays and notes, each with a picture.

The Tower of BabelBruegel, 1563
Code Comprehension in the Age of AI
To keep AI-generated code understandable, make only changes you can explain and maintain a short map of the system's architecture.
20266 posts

The School of Athens · Raphael, 1511
What We Lose When We Build Alone
AI can help one person ship more, but it cannot replace the ideas, feedback, and learning that come from building with a team.

Imprimerie en Lettres, Plate I · Goussier, 1769
Aligning Go struct fields to save memory
Field order creates padding in Go structs; the right tools can find the waste and show how much memory reordering would save.

The Geographer · Vermeer, 1669
Building a Personal Knowledge System with Obsidian
I organize notes in Obsidian with links, Dataview, lightweight structure, and a simple daily workflow.

Woman Writing a Letter, with her Maid · Vermeer, 1670–1671
Dual-Writes and the Outbox Pattern
The transactional outbox stores business data and pending events in one transaction, then publishes the events asynchronously.

Allegory of the First Partition of Poland · Le Mire, 1773
Cooperation Without Dependency
Europe and other democracies need sovereign digital infrastructure that can withstand geopolitical disruption while remaining interoperable.
20254 posts
20243 posts
20235 posts

Fable of the Hare and the Tortoise · Snyders, 17th century
Hasten Slowly in Software Development

Ayame Plays Go with Murasaki Daijin · Kunisada, 1852
Go Interfaces: Five Best-Practices for Enhanced Code Maintainability

Garland of Flowers and Fruit with a Portrait of William III · de Heem, c. 1670
Enhancing Data Access with the Decorator Pattern in Go

Darwin's Finches · Gould, 1845
A Beginner's Guide to Semantic Versioning

Typus Arithmeticae · Reisch, 1503
Understanding Zero Values in Go











