Skip to content
Artwork for Dead Code

Dead Code

Jared Norman

The software industry has a short memory. It warps good ideas, quickly obfuscating their context and intent. Dead Code seeks to extract the good ideas from the chaos of modern software development.

Hosted on Acast. See acast.com/privacy for more information.

Play
  • 24 episodes
  • fortnightly
  • Avg 39 min
  • English
Counted on this page — what you have heard stays on this device, so it is not something the list can be paged by.
  • #56
    Nov 18, 2025 · 1 hr 10 min

    Ground Zero-Cost Bindings (with Josh Vlk)

    In this Dead Code episode, Jared and ReScript contributor Josh Vlk explain why ReScript is a strongly typed, sound language for web development that compiles to JavaScript, offers first-class React support, and favors a “one right way” approach (built-in formatter, no linters) over TypeScript’s configurable sprawl. They trace its evolution from Reason/BuckleScript to today’s standalone ReScript, with v12 shedding legacy OCaml baggage, adding a rewritten Rust compiler for major speed, native monorepo support, zero-cost JS bindings, and automated upgrade fixes. The pair highlight how variant types and exhaustive pattern matching naturally model complex business logic and make refactors safe and fast, often resulting in less code and fewer bugs. Adoption can be incremental—drop a rescript.json, compile alongside TS/JS, and start with a small component or state reducer. Jared closes by urging developers to try it, noting ReScript’s consistency may also make it especially friendly for AI-assisted coding. Links: ReScript TypeScript ReasonML BuckleScript OCaml Rust “ReScript Has Come a Long Way — Maybe It’s Time to Switch from TypeScript” by Josh Vlk “Domain Driven Design Made Functional” by Scott Wlaschin (F# / functional programming concepts) ReScript Forums ReScript Docs ReScript Packages on npm – Community bindings and libraries Josh Vlk on Bluesky Josh’s website Dead Code Podcast Links: Mastodon X Jared’s Links: Mastodon X twitch.tv/jardonamron Jared’s Newsletter & Website Episode Transcript Hosted on Acast. See acast.com/privacy for more information.

  • #55
    Nov 4, 2025 · 49 min

    Brut-al Death (with David Bryant Copeland)

    In this episode, Dave Copeland discusses Brut, his Ruby web framework built atop Sinatra that prioritizes “simple over easy” design principles. Brut replaces traditional MVC with pages, forms, and handlers, uses Flex for HTML generation, Sequel for database access, and lightweight tools like BrutCSS and BrutJS for styling and interactivity, emphasizing direct alignment with web standards. It eliminates free-form parameter hashes by injecting structured objects, mirrors HTML for form validations, and defaults to a strict, Postgres-only setup with non-nullable fields, required foreign keys, and built-in observability through OpenTelemetry and a strict Content Security Policy. Dave and Jared also discuss modern browser-based CSRF protections, the philosophy behind Brut’s defaults, and how Dave aims to refine it toward a 1.0 release with real-world apps and clear migration paths for Rails developers, positioning Brut as a lightweight, standards-aligned alternative within the Ruby ecosystem. Links: Brut Sinatra Hanami Sequel Tachyons Tailwind CSS OpenTelemetry PostgreSQL MDN Web Docs Elektron Digitakt Ableton Live ActiveRecord CoffeeScript Content Security Policy (CSP) Rich Hickey – “Simple Made Easy” talk Burg.rb Dead Code Podcast Links: Mastodon X Jared’s Links: Mastodon X twitch.tv/jardonamron Jared’s Newsletter & Website Episode Transcript Hosted on Acast. See acast.com/privacy for more information.

  • #54
    Oct 21, 2025 · 35 min

    God Class Funeral (with Adam Tornhill)

    Jared talks with Adam Tornhill, founder of CodeScene, about the psychology of programming and how understanding human cognitive limits leads to better software. Adam explains that since working memory can only juggle a few items at once, developers must rely on chunking and good abstractions to manage complexity. His Code Health metric, based on detecting “ugliness” like long functions and low cohesion, shows that healthy code enables teams to deliver features up to ten times faster with far fewer defects. They discuss how God classes become coordination bottlenecks, how behavioral code analysis reveals hotspots where improvement matters most, and why learning different programming paradigms sharpens thinking. Adam emphasizes that writing readable, well-named, modular code benefits both humans and AI tools—because clarity, consistency, and thoughtful naming make code easier to understand, maintain, and extend. Links: CodeScene Your Code as a Crime Scene Working Memory God Class / God Object Domain-Specific Languages (DSLs) Dead Code Podcast Links: Mastodon X Jared’s Links: Mastodon X twitch.tv/jardonamron Jared’s Newsletter & Website Episode Transcript Hosted on Acast. See acast.com/privacy for more information.

  • #53
    Oct 7, 2025 · 31 min

    Deserial Killer (with Matt Schwager)

    Jared sits down with Trail of Bits security engineer Matt Schwager to discuss the persistent security risks of Ruby’s Marshal library. Matt explains that while Marshal (and Python’s Pickle) makes serialization simple and fast for tasks like caching, its “serialize anything” design has led to over a decade of recurring vulnerabilities. Despite repeated patches, new bugs and exploitation gadgets keep surfacing, often hidden in defaults or legacy code, as seen in Rails caching and RubyGems.org. Matt argues that this reflects a fundamental trade-off between ergonomics and security, suggesting alternatives like JSON are safer, though less convenient. He highlights mitigation strategies such as documentation, static analysis, and fuzzing with his tool Ruzzy, while also pointing to broader Ruby risks like eval misuse, SSRF, and supply chain issues. Jared reflects on the cultural tension in Ruby between ease of use and security, wondering if safer defaults could help developers avoid these common pitfalls. Links: Trail of Bits Blog Ruby Marshal documentation Python Pickle documentation JSON YAML TOML MessagePack Rails Caching Guide RubyGems.org RubyGems source on GitHub Ruzzy on GitHub AFL on GitHub Semgrep Registry Black Hat USA 2017 Talk Dead Code Podcast Links: Mastodon X Jared’s Links: Mastodon X twitch.tv/jardonamron Jared’s Newsletter & Website Episode Transcript Hosted on Acast. See acast.com/privacy for more information.

Showing 21–24 of 24 episodes