Share
Dead Code
Pondering the Prism (with Kevin Newton)
In 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:
Dead Code Podcast Links:
Jared’s Links:
More episodes
View all episodes
11. 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 Transcript9. Supercritical Gem (with Stefanni Brasil)
38:19||Ep. 9In this episode of the Dead Code Podcast, Jared Norman talks with Stefanni Brasil, a Senior Software Developer at thoughtbot and co-founder of hexdevs, about career growth, open source, and mentorship in tech. Stefanni shares her non-traditional path into software development and her passion for helping mid-level developers advance through her program "Get to Senior," which addresses both technical and non-technical skills. They discuss the challenges of career progression, the importance of understanding company promotion dynamics, and the need for developers to focus on leadership and communication skills. Stefanni also highlights the ethical concerns surrounding open-source contributions, advocating for companies to financially support the projects they benefit from. The conversation ends with a reflection on the role of AI, productivity, and the value of sharing knowledge publicly to strengthen the tech community.Links:Stefanni Brasil's BloghexdevsFaker Library (GitHub Repository)Rails World ConferenceRuby on Rails CommunityGitHub CopilotTideliftChaelCodes (Rachel's Social Media)The Survey MentionedDead Code Podcast Links:MastodonXJared’s Links:MastodonXEpisode Transcript8. Triplicate Multi-Nested Ternary (with Hilary Stohs-Krause)
35:03||Ep. 8Hilary Stohs-Krause and Jared discuss the importance of applying accessibility principles to coding environments, emphasizing how it benefits both developers and end-users. Hilary, a senior software engineer, shares insights from her talk at Madison Ruby, highlighting how small changes, like using descriptive variable names, avoiding acronyms, and incorporating linters, make code more readable and maintainable. These practices not only support programmers with disabilities, such as ADHD or vision impairments, but also improve the overall coding experience for all developers. Hilary argues that creating accessible code benefits everyone by reducing cognitive load, improving communication, and fostering more inclusive workplaces, even though such practices are often deprioritized in fast-paced, capitalist environments.Links:Stack Overflow Survey of DevelopersMadison Ruby ConferenceRed CanaryRuby on RailsRuboCopHAML-LintADA (Americans with Disabilities ActDyslexia in ProgrammersADHD in ProgrammersPlain Language Writing GuidelinesGo Programming LanguageFactoryBotDead Code Podcast Links:MastodonXJared’s Links:MastodonXEpisode Transcript7. Purely Functional Ideas (with Harmony)
36:45||Ep. 7In this episode of "Dead Code," Jared and Harmony, a self-taught programmer with extensive experience in Ruby, explore the benefits of experimenting with unconventional programming languages. They discuss Fennel, a Lisp that compiles to Lua, highlighting its simplicity and versatility for applications like game modding. Jared shares his experience with ReScript, a language in the ML family that compiles to JavaScript, emphasizing its strong type system and seamless integration with React. They also delve into Uiua, a stack-based array language with a unique symbol-rich syntax, which Harmony finds ideal for tackling complex mathematical programming challenges. The episode emphasizes how these esoteric languages can broaden a programmer's perspective and problem-solving approach.Links:Fennel LanguageLua Programming LanguageReScript LanguageOCamlStandard ML DocumentationUiua LanguageAPL Language Conway’s Game of Life Interactive SimulatorAdvent of CodeProject EulerReact.jsFennel VS Code ExtensionReScript VS Code ExtensionUiua VS Code SupportEmacs Fennel ModeEmacs ReScript SupportDead Code Podcast Links:MastodonXJared’s Links:MastodonXEpisode Transcript6. All Those Letters That You Do (with Jim Remsik)
32:09||Ep. 6In this episode of "Dead Code," host Jared Norman interviews Jim Remsik, a Ruby developer and founder of the consultancy Flagrant. Jim shares his journey from .NET to Ruby on Rails, reflecting on the early days of the Ruby community and the impact of its vibrant, collaborative environment on his career. He discusses the importance of mentorship and nurturing junior developers, stressing the need for more opportunities within the Ruby community to help them grow into senior roles. Jim also talks about his passion for organizing events like Madison + Ruby, which recently returned after a hiatus, highlighting how conferences and meetups play a vital role in building connections and strengthening the community. The conversation underscores the value of stepping up to contribute to programming communities, whether through organizing, speaking, or participating in events.Links:Jim Remsik on LinkedInFlagrant ConsultancyMadison + Ruby ConferenceRuby on RailsRubyConfSolidusTuring SchoolHoneybadgerAppSignalDead Code Podcast Links:MastodonXJared’s Links:MastodonXEpisode Transcript5. Entangled Mess of Vines (with Stephanie Minn and Joel Quenneville)
37:26||Ep. 5In this episode of the Dead Code podcast, Jared welcomes RailsConf speakers Joël Quenneville and Stephanie Minn, both from thoughtbot and co-hosts of The Bike Shed podcast. Stephanie discusses her talk on the stages of change model, initially about codebase changes but ultimately focusing on adopting testing practices, highlighting the evolution of her topic and the importance of addressing test pain. Joël introduces Hotwire and Turbo through building an interactive Dungeons & Dragons character sheet in Rails, emphasizing decoupling code and progressively enhancing applications without JavaScript. The conversation delves into managing coupling and cohesion in software development, the benefits of visualizing code structure, and using tests as tools for gathering information and improving code quality, with practical insights and reflections on enhancing the development process.Links:The Bike Shed PodcastthoughtbotRailsConfRubyConf HotwireTurboDead Code on MastodonDead Code on XJared on MastodonJared on XTranscript4. Supplemental Oxygen (with Senem Soy and Alistair Norman)
32:31||Ep. 4In this episode of the Dead Code Podcast, Jared interviews his brother Alistair Norman and colleague Senem Soy about their experiences with conference talks. Alistair recently spoke at RailsConf in Detroit on mentorship and pair programming, choosing the topic for its broad relevance and personal interest. He prepared for the talk by biking 750 kilometers from Toronto to Detroit, which, while mentally relaxing, left him less time to finalize his presentation. Senem, gearing up for her first talk at Madison Ruby, discusses how her passion for paragliding influences her problem-solving in programming, focusing on mental training and stress management. Both highlight the importance of choosing engaging topics and thorough preparation to reduce stress and enhance the delivery of their talks.Links:RailsConfMadison RubyAlistair on StravaSenem on StravaDead Code on MastodonDead Code on XJared on MastodonJared on XTranscript3. Tech Death (with Robby Russell)
49:10||Ep. 3In 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 TikTokRobby’s LinkedInRobby’s XOh My ZshPlanet ArgonMaintainable Software PodcastMichael Feathers' book "Working Effectively with Legacy Code"Ward Cunningham and the concept of Technical DebtRailsConfRuby on RailsRefinery CMSSolidus SpreeMartin Fowler's book "Refactoring"John Osterhout's book "A Philosophy of Software Design"Rails World 2024Dead Code on MastodonDead Code on XJared on MastodonJared on XEpisode Transcript