Blog
Every bug, build note, and half-finished theory that made it past the daily log and into something worth reading properly.
Two `if`s, One Already-Freed Node
My delete_node printed the right list on every run I tried by hand. AddressSanitizer disagreed — and it was right, for a reason plain output could never have shown me.
The Six-Hour UART Framing Bug
Every byte arrived correctly. The frames still fell apart under load — because the bug wasn't in the bytes, it was in the silence between them.
The BST Deletion Bug That Took Three Days
A one-line assumption about parent pointers cost me three days — and taught me more about iterative BST deletion than any tutorial.
The Off-By-One That Made My Ring Buffer Lie About Being Empty
A fixed-size circular buffer has exactly one hard part: telling 'empty' apart from 'full.' I found out the hard way which one I'd gotten wrong.
The Same Precedence Mistake, Four Times, Two Months Apart
I made the same operator-precedence mistake four separate times over six weeks. This isn't a story about learning a rule — it's about admitting the rule alone was never going to be enough.
Two Typos, Two Compiler Errors, One Variadic Function
My first submission had two separate compiler errors in four lines, and both were arguments I'd already been warned about once before. Apparently once wasn't enough.