
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.

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.

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.

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

Dual-Writes and the Outbox Pattern
The transactional outbox stores business data and pending events in one transaction, then publishes the events asynchronously.

Cooperation Without Dependency
Europe and other democracies need sovereign digital infrastructure that can withstand geopolitical disruption while remaining interoperable.

2025 - Retrospective
In 2025, I returned to photography and Unity, worked with event-driven systems at scale, and learned to tune out more noise.

Distributed Tracing in Go
OpenTelemetry, Jaeger, and context propagation reveal where requests travel and stall across distributed Go services.