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.
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more
Short-Form Summary: In this episode of Dead Code , host Jared chats with Noel Rappin, Staff Engineer at Chime and co-author of the updated Programming Ruby (“The Pickaxe Book”), about revitalizing Ruby’s most iconic reference. Rappin explains that despite claims Ruby is “dead,” it’s still widely used by startups and major companies like GitHub and Shopify. He took on the update to bridge the gap between Ruby 2.0 and 3.3, modernizing the book to reflect new features like pattern matching and chan...
In this episode of Dead Code , Jared is joined by Lucian and returning guest Joel to debate a classic Ruby dilemma: whether to access instance variables directly or use getter methods. Lucian advocates for getters, especially in large, fast-changing codebases, arguing they help catch subtle bugs and improve maintainability, as well as insights drawn from his time at Cookpad and the Short Ruby newsletter. Joel, while appreciating the clarity and performance of direct access, introduces his gem st...
In this episode of Dead Code, Jared interviews Heydon Pickering about his satirical strategy to sabotage AI web crawlers by generating nonsense versions of his blog posts. Using Eleventy and JS DOM, Heydon replaces keywords in his content with absurd alternatives from a static lexicon, creating grammatically broken, jargon-filled text that wastes crawler resources without harming his SEO. Frustrated by how LLMs scrape web content without consent, he frames his approach as both a protest and a cr...
In this episode of Dead Code, Jared talks with Stevan about building reliable distributed systems using Erlang-inspired design patterns. Stevan shares how his background in functional programming and formal verification led him to simulation testing—a deterministic approach to testing distributed systems that avoids the flakiness of traditional CI environments. He emphasizes that Erlang’s true innovation lies not in lightweight processes, but in its structured behaviors (like gen_server and supe...
Jared interviews Carson Gross, creator of HTMX, discussing Locality of Behavior (LoB) as an alternative principle to Separation of Concerns (SoC) in web development. Carson explains how HTMX leverages hypermedia for simpler, more maintainable front-ends, critiquing traditional approaches that lead to "spooky action at a distance." They explore trade-offs with principles like DRY and the importance of pragmatic software design, advocating for deeper modules and simpler APIs.
In this episode of Dead Code, Jared chats with Nora, a Rust contributor, about operator precedence and the trade-offs between code clarity and conciseness across programming languages. Nora, inspired by her blog post “ Don’t Play the Precedence Game,” explains how languages like C and Rust handle operator order differently, particularly around equality and bitwise operations, which can lead to subtle, hard-to-spot bugs. She advocates for using parentheses generously to make intent explicit, even...
In this episode of Dead Code, Jared speaks with software engineer Nicole Tietz-Sokolskaya about the ethical complexities of large language models (LLMs). Nicole shares her mixed experiences with LLMs—finding brief personal value but little long-term usefulness in her work—and critiques their environmental impact, reliance on questionable training data, and potential to concentrate power among major tech companies. She raises concerns about consent, bias, and the quality of generated code, while ...
In this episode of Dead Code, Jared talks with Kevlin Henney about the importance of immutability in software development, particularly as a strategy for reducing bugs related to state and concurrency. Kevlin explains that while many programming languages default to mutable state, treating state change as a privilege—not a right—can lead to more maintainable, less error-prone code. He discusses how immutability strengthens encapsulation, simplifies reasoning about systems, and avoids issues like...
In this episode of Dead Code, journalist Joan Westenberg joins host Jared to explore the political and ethical consequences of our tech choices, advocating for decentralized, open-source platforms over corporate-controlled ecosystems like Google and Meta. Joan shares her path from tech journalism to founding The Index, a reader-supported publication free from ads and investor influence, driven by a DIY punk ethos inspired by bands like Fugazi. She critiques the monopolization of the internet, th...
In this episode of Dead Code, host Jared Norman speaks with Jean Boussier, a key contributor to the Ruby community and Shopify engineer, about the challenges of concurrency in Ruby, particularly the Global VM Lock (GVL). Jean explains that while the GVL was originally implemented to simplify Ruby’s design, it now limits parallel execution, sparking debate on whether it should be removed. He argues that many Ruby applications are more CPU-bound than previously thought and suggests improving Ruby’...
In this episode of Dead Code, Jared interviews James Gayfer about data modeling and the challenges of structuring databases effectively. James, who prefers raw SQL over ORMs, explains how many database models merely mirror table structures, leading to inefficient APIs and excessive data fetching. He discusses the concept of complete versus incomplete data models, emphasizing that completeness depends on an application’s needs at a given time. They explore trade-offs between overly simplistic mod...
In this episode of Dead Code, Jared explores the world of roguelike game development with guests Mark R. Johnson and Darren Grey from Roguelike Radio, discussing the history, appeal, and technical challenges of the genre. They dive into the upcoming Seven-Day Roguelike Challenge, where developers create a game in a week, emphasizing the importance of procedural generation, permadeath, and strategic mastery. The conversation covers how roguelikes have evolved from classic ASCII-based dungeon craw...
In this episode of Dead Code, Jared interviews Tim Riley about Hanami, an alternative Ruby web framework that prioritizes separation of concerns, modular components, and maintainability over Rails’ monolithic approach. Tim explains how Hanami’s repository pattern for database interactions reduces unintended ripple effects, while its built-in dependency injection improves testability and scalability. He shares the evolution of Hanami, its integration with dry-rb and ROM, and the project’s commitm...
In this Dead Code podcast episode, Cyrus Omar and Andrew Blinn discuss Hazel, an innovative programming language and editor designed to handle incomplete programs by providing continuous feedback and partial code execution, similar to dynamic languages, while maintaining a robust type system. Hazel’s unique graphical editor allows domain-specific visual representations, such as sliders for integers and playing cards for data manipulation, making programming more intuitive and tactile. The team h...
In this episode of Dead Code, Jared interviews Ingy döt Net, co-creator of YAML, about its origins, unexpected rise in popularity—especially within the Ruby community—and its evolution into a widely used configuration language. Ingy shares insights into YAMLScript, a new programming language he developed to address YAML’s limitations, enabling more powerful configuration and data transformation through a Lisp-like approach. By leveraging Clojure and GraalVM, YAMLScript offers cross-language comp...
In this episode of Dead Code, Jared interviews software engineer Joel Drapper about his open-source projects in the Ruby ecosystem. They discuss Phlex, a view framework that allows developers to build HTML components using pure Ruby, eliminating the need for templating languages like ERB. Joel also introduces Literal, a library for reducing boilerplate in object creation with built-in type validation, and Quickdraw, an experimental test runner optimized for multi-core execution. The conversation...
In this Dead Code episode, host Jared interviews Karl Oscar Weber about revitalizing Camping, a minimalist Ruby web framework originally created by “Why the Lucky Stiff.” Karl shares his 14-year programming journey, his passion for Ruby, and the challenges of modernizing Camping while preserving its compact, esoteric design under five kilobytes. He introduces updates like plugins (“Camping Gear”) and compatibility with newer Ruby features, emphasizing Camping’s educational value and simplicity. ...
In this episode of Dead Code, Jared Norman hosts Ruby developer and consultant Ismael Celis to discuss event sourcing—a data storage model that records historical events to derive the current state of an application, offering benefits like accurate audit trails and reduced complexity. Ismael explains how event sourcing contrasts with traditional CRUD systems by focusing on a flat sequence of events rather than intricate relational models, making it particularly useful in e-commerce and microserv...
In this episode of Dead Code, Jared Norman interviews Felienne Hermans, creator of the Hedy programming language and author of “A Case for Feminism in Programming Language Design.” Felienne discusses her experiences of alienation in the programming language design community and critiques its prioritization of mathematical rigor and technical difficulty over accessibility and inclusivity. Highlighting Hedy, a simplified, multilingual language designed for beginners and non-English speakers, she e...
In this Dead Code episode, host Jared Norman interviews JP Camara, Principal Software Engineer at Wealthbox, about Ruby concurrency. JP explains that Ruby applications are inherently multithreaded, even when developers assume otherwise, highlighting how background threads from libraries like Sidekiq or monitoring tools can introduce concurrency issues. He discusses the Ruby community's progress in thread safety, driven by tools like Puma and Sidekiq, and contrasts Ruby's "colorless" concurrency ...
In this whimsical holiday-themed episode of the Dead Code podcast, Jared dives into the much-anticipated release of Ruby 3.4, framing the technical updates in a festive, poetic rendition of 'Twas the Night Before Christmas. Listeners are treated to a charming narrative where Ruby's creator, "Saint Matz," embodies a coding Santa Claus, delivering these updates to the community with flair. Dead Code Podcast Links: Mastodon X Jared’s Links: Mastodon X twitch.tv/jardonamron Episode Transcript Hosted...
In this episode of Dead Code, Jared speaks with Rebecca Murphey, Field CTO at Swarmia, about the critical importance of written communication in engineering organizations. Rebecca shares insights from her experiences at Indeed and Stripe, emphasizing how clear, concise, and audience-focused communication can drive alignment, mitigate risks, and advance careers. She discusses frameworks like SCQA (Situation, Complication, Question, Answer) and practical strategies, including critical reading and ...
In this episode of Dead Code, Jared Norman and guests Andrew, Sofia, and Senem discuss their experiences with Advent of Code, an annual programming challenge with Christmas-themed puzzles. They share how the challenge fosters creativity, improves coding skills, and allows for unique problem-solving approaches, particularly using Ruby’s powerful tools like Tally and each_cons. The group reflects on their goals, from practicing domain-driven design and test-driven development to simply having fun ...
In this episode of Dead Code, Jared Norman and guest Noah Gibbs, author of Rebuilding Rails and Mastering Software Technique , discuss programming as an art form rather than purely a business or engineering practice. They explore how programming, much like traditional art, thrives on creativity and self-expression, with languages like Ruby enabling this through flexibility and elegance, even at the cost of performance. Noah critiques the modern tech ecosystem for prioritizing profit over innovat...
In this episode of Dead Code , host Jared Norman shares highlights from RubyConf in Chicago, reflecting on its exceptional programming and his personal connection to the venue, dating back to RailsConf 2014. Memorable talks included Matz’s keynote on Ruby's future, Aaron Patterson’s optimization insights, Enrique Mogollan’s exploration of Ruby's boundaries, and Yusuke Endoh’s innovative code-as-art presentation. Jared also discussed standout moments like Tom Enebo’s talk on the Piet programming ...
In this Dead Code episode, Jared Norman hosts Aji Slater, Development Team Lead at thoughtbot, to discuss “incremental automation,” a concept that advocates for gradually automating tasks by refining them with small steps rather than investing large amounts of time upfront. Aji explains that capturing each step of repetitive tasks enables developers to tweak processes over time, which reduces friction and saves effort without disrupting workflows. Starting with “do-nothing scripts” that print st...
In this Dead Code episode, Jessica Kerr (Jessitron) joins host Jared Norman to explore the evolving nature of experimentation and learning in software development. Jessica reflects on her shift from valuing software’s determinism to embracing the unpredictability of distributed systems and human factors. She explains that traditional scientific methods, like A/B testing, often fall short in complex, socio-technical environments, where dynamic learning and observing real-world impacts are crucial...
In this episode of Dead Code, host Jared Norman talks with Andrew Atkinson, author of High Performance Postgres For Rails , about the benefits and recent updates to Postgres. Andrew shares why he prefers Postgres for its reliability, extensibility, and independence from corporate control, making it ideal for applications with complex or fluctuating data needs. They delve into Postgres 17’s new features, like JSONB functions for querying JSON as if it were relational data, improved MERGE operatio...
In this Dead Code podcast episode, Jared Norman interviews Chael Wright-Munn (ChaelCodes) about the benefits of working openly through activities like live streaming and contributing to open-source projects. Chael emphasizes how creating a "library of examples" through public coding can enhance a developer’s skills, build their professional network, and preserve their achievements beyond their current job. She offers practical advice on starting a stream, such as using OBS software, focusing on ...
In this episode of Dead Code, host Jared Norman interviews Garrett Dimon about the benefits of using Rails generators for automating tasks and maintaining consistency in Rails applications. Garrett, a seasoned developer, shares how he transitioned to Ruby and Rails and delved deep into using generators to simplify repetitive tasks, automate file creation, and adhere to Rails conventions. He discusses the advantages of generators, such as reducing errors, saving time, and creating a streamlined w...