MediumNine Months, Two Phantom Problems, and a Decision to Finally Ship | by Andrea Beggiato | Medium
Sitemap
Andrea Beggiato

Andrea Beggiato

Member-only story

Nine Months, Two Phantom Problems, and a Decision to Finally Ship

6 min readMar 19, 2026

--

Devlog #0.5

Press enter or click to view image in full size

“The perfect is the enemy of the good. But perfectionism dressed up as rigor? That’s the enemy of ever shipping anything at all.”

Other Articles in the Series

My last commit to this project was nine months ago.

Not because life got in the way — though it did, I became a dad in the meantime, which helps explain the nine months. But the honest reason I stopped was because I became convinced that my ECS had a fundamental correctness bug. A double-borrow iterator invalidation: if you iterated over the world with a query and, inside the filter closure, called world.get_component(), you'd have two simultaneous borrows of the same data. Rust's borrow checker would miss it. Silent data corruption. Wrong counts. Unpredictable behavior.

Nine months later, I opened it again. What I found surprised me.

The Bug That Wasn’t

--

--