Notes from the Lab
Technical documentation, engineering decisions, and reflections on building systems that work. Writing as a tool for thinking.
The Prompt Was Never the Problem
Friends and family kept asking me for AI tips. After enough conversations the pattern was obvious: almost nobody was stuck on prompting. They were stuck on describing what they actually wanted.
Debugging a Proxmox RCU Stall: The Cause Was Not the NIC
The server went unreachable every few hours and needed a physical reboot. I had just replaced the network card, so obviously that was the culprit. It wasn't.
Why Build a Homelab in 2026
The cloud gives you scale. A homelab gives you the courage to destroy and rebuild without fear of a surprise bill — and that difference changes how you learn.
Multi-Tenancy in B2B SaaS: Trade-offs and the Model I Chose
Multi-tenancy is the most irreversible architectural decision in a B2B SaaS — and most teams make it implicitly, mid-sprint, the moment they realize they need to isolate customer data.
Choosing Rails for a Compliance Product
One developer, eighteen weeks, a B2B compliance product. The wrong stack decision can double the effort without you noticing until week twelve.
Why I Write ADRs Before Writing Code
Code captures what you built. An ADR captures why you built it that way — and the why is the first thing to disappear as a project ages.
The Staff Architect Skill: Designing Products With AI
Most teams use AI to write code faster. I use it to avoid making bad architectural decisions at 11pm under sprint pressure.
Cursor Rules: Persistent Context for Your AI Agent
You reconfigure the agent for every new conversation because it remembers nothing. That's a design problem, not an inevitable limitation.
Compound Engineering: The Loop That Turns Experience Into Assets
Plan, Work, Review — every engineer does that. The fourth step is what separates people who accumulate knowledge from people who redo the same work indefinitely.
Why Every Repo Should Have a docs/solutions Folder
A developer joining six months later doesn't need the changelog. They need to know why the decision was made and what almost went wrong. One folder, versioned with the code, captures exactly that.
Zettelkasten for Engineers: Why and How I Use It
Technical knowledge decays. What you mastered about PostgreSQL row-level security in 2024 is unreachable by 2026 unless it's indexed and connected. Zettelkasten is not an organizing system — it's a thinking system.
Designing Reliable 3D Printed Parts
Lessons from hundreds of print hours on how material choice, orientation, and tolerancing determine whether a part survives real-world use or fails on day one.
Why Systems Thinking Matters in Software Architecture
Software isn't a collection of features. It's a system of dependencies, feedback loops, and failure modes. How thinking in systems changes the way you build.