Share

cover art for Tech Death (with Robby Russell)

Dead Code

Tech Death (with Robby Russell)

Ep. 3

In this episode of the Dead Code podcast, host Jared Norman interviews Robby Russell, the CEO of Planet Argon and creator of Oh My Zsh, who shares insights from his extensive experience in software development, particularly Ruby on Rails. Robby discusses the challenges of software maintenance and technical debt, emphasizing the importance of understanding and managing different types of debt within teams. He advocates for building simpler, more maintainable systems, taking ownership of the codebase, and integrating maintenance work into regular workflows through effective communication and documentation.


Links:


Robby’s TikTok

Robby’s LinkedIn

Robby’s X

Oh My Zsh

Planet Argon

Maintainable Software Podcast

Michael Feathers' book "Working Effectively with Legacy Code"

Ward Cunningham and the concept of Technical Debt

RailsConf

Ruby on Rails

Refinery CMS

Solidus

Spree

Martin Fowler's book "Refactoring"

John Osterhout's book "A Philosophy of Software Design"

Rails World 2024


Dead Code on Mastodon

Dead Code on X

Jared on Mastodon

Jared on X


Episode Transcript

More episodes

View all episodes

  • 25. Event Horizon (with Ismael Celis)

    34:25||Ep. 25
    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 microservices. He highlights his experimentation with event sourcing in Ruby, aiming to combine its simplicity with Ruby’s expressiveness, and mentions existing tools like Rails Event Store, Sequence, and Eventide. Offering practical advice, Ismael suggests starting small with simple Ruby scripts to grasp the concept before adopting established libraries. The episode underscores the potential for event sourcing to streamline debugging and enhance adaptability in dynamic systems.Links:Ismael Celis on TwitterIsmael Celis on GitHubIsmael’s WebsiteRails Event StoreEventide DocumentationDead Code Podcast Links:MastodonXJared’s Links:MastodonXtwitch.tv/jardonamronEpisode Transcript
  • 24. For Whom The Compiler Tolls (with Felienne Hermans)

    29:23||Ep. 24
    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 emphasizes the value of user-centered design in making programming more approachable and impactful. The conversation explores the exclusionary culture in programming, such as dismissing spreadsheets and front-end work as “not real coding,” and proposes reimagining programming languages to focus on collaboration, user experience, and joy rather than gatekeeping and status. Felienne calls for a cultural shift to prioritize inclusivity and creativity, showcasing how tools like Hedy can inspire and empower diverse communities.Links:The Hedy Programming LanguageA Case for Feminism in Programming Language DesignFelienne Hermans’s Personal WebsiteProgramming Language Conference: SPLASHElm Programming LanguageEdgar Dijkstra’s EWDsRuby Programming LanguageRust Programming LanguageDead Code Podcast Links:MastodonXJared’s Links:MastodonXtwitch.tv/jardonamronEpisode Transcript
  • 23. Violent Sleep of Concurrency (with JP Camara)

    41:15||Ep. 23
    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 model with JavaScript's explicit async/await syntax, emphasizing Ruby's reduced cognitive overhead. JP also shares his experience contributing to Ruby's M:N thread scheduler for macOS, advocating for developers to rely on vetted concurrency tools like concurrent-ruby and async instead of manually managing threads. He concludes by stressing the importance of avoiding global state, breaking tasks into smaller pieces, and approaching concurrency with a thoughtful mindset.Links:WealthboxJP Camara's BlogRubyConfSidekiqPuma Web ServerHoneybadgerNew RelicJP's Ruby Concurrency SeriesWhat Color is Your Function?Async GemConcurrent RubyMeshuggah – Violent Sleep of ReasonDead Code Podcast Links:MastodonXJared’s Links:MastodonXtwitch.tv/jardonamronEpisode Transcript
  • ‘Twas The Night Before Christmas

    01:42|
    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:MastodonXJared’s Links:MastodonXtwitch.tv/jardonamronEpisode Transcript
  • 22. Why and Why Now? (with Rebecca Murphey)

    29:57||Ep. 22
    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 trimming unnecessary details, to improve technical communication. The conversation also explores how AI tools like ChatGPT are reshaping written communication, the shifting role of junior engineers in a more constrained industry, and the need to understand broader business contexts. The episode underscores that strong communication is as vital as coding skills for thriving in today’s tech landscape.Links:Rebecca Murphey on LinkedInDead Code Podcast Links:MastodonXJared’s Links:MastodonXtwitch.tv/jardonamronEpisode Transcript
  • 21. Advent of Weird Ruby Code

    31:37||Ep. 21
    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 writing unconventional code. Jared highlights his focus on creativity over competition, streaming his solutions on Twitch, while the guests explore how Advent of Code inspires learning outside their day-to-day work.Links:Advent of CodeJared's Twitch StreamSuper GoodProject EulerLeetCodeTRICK (The Ruby International Obfuscated Code Competition)Dead Code Podcast Links:MastodonXJared’s Links:MastodonXEpisode Transcript
  • 20. Predatory Infrastructure (with Noah Gibbs)

    47:40||Ep. 20
    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 innovation, stifling creativity with rigid business structures. Highlighting parallels between programming and traditional art education, he advocates focusing on skill and craft instead of monetary incentives. Jared reflects on how these ideas challenge his perspective as a software company owner, urging listeners to consciously define their motivations and reclaim programming as a creative pursuit. The episode, produced by Mandy Moore, invites developers to rethink their relationship with their craft and the systems shaping their work.Links:Codefol.ioDead Code Podcast Links:MastodonXJared’s Links:MastodonXEpisode Transcript
  • 19. RubyConf Post-Mortem

    17:27||Ep. 19
    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 language and Nick Means’ keynote on AI and aviation. Looking ahead, Jared announced plans for RailsConf 2025 in Philadelphia, the Advent of Code livestreams, and his new newsletter for behind-the-scenes updates. Links:RubyConfRailsConfStoryGraphAdvent of CodeSign up for Jared’s NewsletterDead Code Podcast Links:MastodonXJared’s Links:MastodonXEpisode Transcript
  • 18. Symphony of Automation (with Aji Slater)

    30:13||Ep. 18
    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 steps or copy commands, developers can progressively automate, building efficiencies that enhance productivity and prevent burnout. Aji also emphasizes sharing these incremental improvements across teams, so everyone benefits from the refined workflows without repeating the same manual work.Links:Tightly Coupled Book ClubDead Code Podcast Links:MastodonXJared’s Links:MastodonXEpisode Transcript