Developer Voices
Developer Voices

Making Software Crash Before It Breaks (with Isaac Van Doren)

June 19, 2025

AI Summary

5 min read

Isaac Van Doren opens with a concrete example of why software reliability matters: his grandmother was locked out of her medical records portal for months because a buggy username-change flow broke, and nobody was surprised. "That's just how software works," he says. His central thesis is that bugs are inevitable, but the timing of their discovery determines how much they hurt. The goal is to pull the feedback loop as far left as possible — from users complaining, to production pages, to QA, to compile-time errors — and to use a layered set of techniques to catch what each layer misses.

The case for running assertions in production

Van Doren argues that assertions — deliberately placed "little bombs" in your code that crash a request if an impossible condition occurs — are an underused technique for catching bugs early. His golden rule: if an assertion fails, it must mean there is a bug. That rules out using assertions for validating external input (that's normal error handling) and instead reserves them for internal invariants: conditions that should never be false if the code is correct.

Continue reading the full summary in the app — free to try.

Read Full Summary →

Free • No credit card required

What you'll learn

  • 1 (00:00) **Introduction: The Pain of Late Bug Discovery** - Chris Jenkins frames the episode's central thesis: bug pain is proportional to how late it's discovered, from user complaints to compile-time errors.
  • 2 (03:25) **Guest Introduction: Isaac's Motivation for Reliability** - Isaac explains why he cares so much about software reliability at a young age, citing everyday broken software as unacceptable.
  • 3 (07:20) **Beyond Testing: The Case for Assertions** - Isaac introduces assertions as a key technique for reliability, arguing that testing alone is insufficient.
  • 4 (12:26) **Implementing Assertions in Production** - Isaac describes how he introduced assertions at work, including the decision to build a custom invariant violation error instead of using Java's built-in assertions.
  • 5 (14:44) **Assertions in Action: Catching a Real Bug** - Isaac shares a concrete success story: an assertion he wrote uncovered a three-to-four-year-old payment bug affecting 500 users.
  • 6 (16:56) **Assertions vs. Type Systems: Complementary Tools** - Chris challenges Isaac by suggesting runtime assertions are a "poor man's type system," prompting a nuanced defense.
  • 7 (20:31) **Granular Failure and Monitoring** - Isaac explains how to make assertions safe in a web server context: only the failing request gets a 500 error, not the whole server.

+ Full timestamped outline available in the app

Show Notes

At 23, Isaac is already jaded about software reliability - and frankly, he's got good reason to be. When your grandmother can't access her medical records because a username change broke the entire system, when bugs routinely make people's lives harder, you start to wonder: why do we just accept that software is broken most of the time?

Isaac's answer isn't just better testing - it's a whole toolkit of techniques working together. He's advocating for scattering "little bombs" throughout your code via runtime assertions, adding in the right amount of static typing, building feedback loops that page you when invariants break, and running nightly SQL queries to catch the bugs that slip through everything else. All building what he sees as a pyramid of software reliability.

Weaving into that, we also dive into the Roc programming language, its unique platform architecture that tailors development to specific domains. Software reliability isn’t just about the end user experience - Roc feeds in the idea we can make reliability easier by tailoring the language domain to the problem at hand.

–

Isaac’s Homepage: https://isaacvando.com/

Episode on Property Testing: https://youtu.be/wHJZ0icwSkc

Property Testing Walkthrough: https://youtu.be/4bpc8NpNHRc

Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices

Support Developer Voices on YouTube: https://www.youtube.com/@developervoices/join

Isaac on LinkedIn: https://www.linkedin.com/in/isaacvando/

Kris on Bluesky: https://bsky.app/profile/krisajenkins.bsky.social

Kris on Mastodon: http://mastodon.social/@krisajenkins

Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/

Developer Voices

More from this podcast

Developer Voices →