Share
Dead Code
Master of Generators (with Garrett Dimon)
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 workflow that benefits entire teams. Garrett also talks about writing a book on the topic of making generators more accessible and highlights how they can be customized for various needs, offering significant productivity gains for developers. The episode emphasizes the enduring value of Rails generators in improving development processes and project structure.
Links:
Dead Code Podcast Links:
Jared’s Links:
More episodes
View all episodes
18. Symphony of Automation (with Aji Slater)
30:13||Ep. 18In 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 Transcript17. Everything is an Experiment (with Jessica Kerr)
33:00||Ep. 17In 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. At Honeycomb, she practices a holistic approach to experimentation, viewing each system and team as a “symmathesy”—a mutual learning environment where insights flow between developers and the software. Jessica emphasizes that continuous improvement relies on knowledge sharing and storytelling within teams, urging developers to approach retrospectives as genuine feedback loops to refine processes, connect with teammates, and foster growth.Links:Jessica's Website – Jessica’s personal website, where she shares her blog and more about her work.Symmathesy Talk at RubyConf – Jessica's talk about symmathesy from RubyConfDiana Montalion's Book on Systems Thinking: Learning Systems ThinkingGraceful.Dev – Jessica's platform for short educational videos.Jessitron’s TwitterJessitron’s MastodonJessitron’s InstagramHoneycomb.io Agile ManifestoDead Code Podcast Links:MastodonXJared’s Links:MastodonXEpisode Transcript16. Postgres and Destroy (with Andrew Atkinson)
45:32||Ep. 16In 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 operations for simplified upserts, and new returning clauses. Andrew’s book is designed for application developers seeking to optimize performance and security beyond ORM abstractions, with practical examples to help them harness Postgres’s full potential. Jared and Andrew agree that Postgres’s robust tools can elevate an application’s reliability, especially in high-demand scenarios like e-commerce, encouraging developers to explore its depth.Links:Andrew Atkinson’s BlogAndrew’s Book, High Performance Postgres For RailsPostgres 17 Release NotesScenic Gem (for managing database views in Rails)JSON Path Syntax (for querying JSON data in Postgres)pgvector extension for Postgres (for AI and vector search applications)TimescaleDB Extension (for time series data)Citus Extension (for distributed Postgres workloads)Dead Code Podcast Links:MastodonXJared’s Links:MastodonXEpisode Transcript15. Twitching Hour (with Rachael Wright-Munn)
33:49||Ep. 15In 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 community building, and engaging in structured projects like Hacktoberfest. The discussion highlights the value of maintaining a visible presence in the tech community, whether through streaming, open-source contributions, or other public-facing efforts, as a way to retain knowledge and showcase work, even across job changes.Links:ChaelCodesRuby SocialHacktoberfestDev.toGitLabOBS StudioRegex CrosswordStreamlabs OBSCode Thesaurus GitHub RepositoryDead Code Podcast Links:MastodonXJared’s Links:MastodonXEpisode Transcript13. Hammer Smashed Argument (with Coraline Ada Ehmke)
30:35||Ep. 13In this episode, Jared speaks with Coraline Ada Ehmke, a veteran software developer and creator of the Contributor Covenant and Hippocratic License, about the ethics of open-source software. Coraline discusses common justifications developers use to avoid accountability for the potential harm their software may cause, such as the "freedom zero" argument advocating for unrestricted use of software and the belief that access to the source code ensures ethical behavior. She critiques these views, emphasizing that developers must consider the societal impact of their work and set clear ethical boundaries. Coraline encourages the use of a "negative roadmap" to define what developers refuse to build, urging them to think critically about the harm their technology may enable. The episode concludes with Coraline promoting her work with the Organization for Ethical Source and her upcoming book, which explores responsible tech practices.Links:Coraline Ada EhmkeContributor CovenantHippocratic LicenseOrganization for Ethical SourceRailsConfMadison RubyRichard StallmanUnited Nations Universal Declaration of Human RightsDead Code Podcast Links:MastodonXJared’s Links:MastodonXEpisode Transcript12. Benevolent Dictatorship (with Mat, Noah, Sofia, and Chris)
47:00||Ep. 12In this episode, host Jared Norman and SuperGood teammates and guests Mat Harvard, Sofia Besenski, Noah Silvera, and Chris Todorov recap their experiences at Rails World 2024. They discuss the unique venue in Toronto, key takeaways from David Heinemeier Hansson's keynote on making Rails more accessible, and the shift towards on-prem solutions over services like Heroku. The panel highlights technical talks on scaling Postgres, Shopify’s automated Rails upgrade process, and debates on Kamal 2.0’s proxy features. They also explore Rails’ future direction, technical debt management, and the Rails boot process.Links:Rails WorldHerokuAWS EC2Kamal 2.0PostgreSQLRailsTest DoubleHotwireRuby on RailsPrismLet’s EncryptDead Code Podcast Links:MastodonXJared’s Links:MastodonXEpisode Transcript11. Fear-Driven Development (with J. B. Rainsberger)
46:25||Ep. 11In this episode of Dead Code, J.B. Rainsberger discusses the pitfalls of integrated tests, calling them a "scam" due to their tendency to complicate rather than solve testing problems. He advocates for writing smaller, more focused tests, like unit tests, to simplify debugging and avoid tangled code. J.B. emphasizes that test-driven development (TDD) should be flexible, guiding developers to test based on what they're afraid might break, rather than following rigid rules. He introduces the concept of four stages of TDD, where developers evolve from focusing on bug prevention to refining their approach based on experience, adapting their testing strategy to different contexts while maintaining the core principle of starting with a failing test.Links:J.B. Rainsberger's websiteJ.B.'s technical blog: The Code WhispererJ.B.'s broader development blog: Blog by JBrainsMatteo Vaccari’s article: How I Learned to Love Mock ObjectsGrowing Object-Oriented Software, Guided by Tests by Steve Freeman and Nat PryceTest-Driven Development: By Example by Kent BeckRSpec for Rails Rails Testing DocumentationExtreme ProgrammingDead Code Podcast Links:MastodonXJared’s Links:MastodonXEpisode Transcript10. Pondering the Prism (with Kevin Newton)
29:10||Ep. 10In this episode of Dead Code, Jared interviews Kevin Newton, Staff Software Engineer at Shopify, about his work on Ruby's new parser, Prism. Kevin explains how Prism was created to address the limitations of Ruby's original parser by providing a portable, error-tolerant solution that unifies the ecosystem, replacing multiple outdated parsers used across different tools. They discuss the challenges of parsing Ruby's complex syntax, including quirky features like heredocs and regular expressions, and how Prism was designed for better control and performance. Kevin emphasizes the community-driven effort behind the project, making it more accessible to contributors, and shares how Prism will advance Ruby tooling in future releases.Links:Kevin Newton's blogKevin Newton's GitHubKevin Newton on Twitter (X)Crafting InterpretersThe Dragon BookPrism ParserRuby LSPShopifyRails World ConferenceESLintDead Code Podcast Links:MastodonXJared’s Links:MastodonXEpisode Transcript