How to Make Software That Doesn't Need You

By Johnny Marler

Modern software is measured by its activity, commits, releases, velocity. By that standard the healthiest thing I’ve ever built looks dead: a native Windows app with hundreds of weekly users that I haven’t updated, or gotten a bug report about, in over three months, built and maintained solo. That quiet wasn’t luck or neglect; it was a decision made over and over to take the harder low-level path instead of the convenient abstraction. Hand-rolled Win32 instead of a framework, three screen-capture backends I own end-to-end instead of a library I’d inherit the bugs from. Every abstraction tower I declined to climb is one that can’t churn its API, break underneath me, or page me at 3am over someone else’s bug. I’ll walk through the real engineering and argue that native code with few dependencies and no layer you don’t understand has a bug surface that shrinks until the software goes quiet. Creating low-maintenance software can be counter-intuitive, but it isn’t an accident. I’ll take you through what techniques you can use to make software that doesn’t need you as well.