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.
…
continue reading
On The Bike Shed, hosts Joël Quenneville and Stephanie Minn discuss development experiences and challenges at thoughtbot with Ruby, Rails, JavaScript, and whatever else is drawing their attention, admiration, or ire this week.
…
continue reading
In this episode of Dead Code, Jared chats with Scott Werner, CEO of Sublayer, about his experimental AI web framework, Monkey’s Paw—a Ruby-based tool that uses natural language prompts to generate web pages, embracing LLM “hallucinations” as a creative feature rather than a flaw. Designed to bring back the playful spirit of early Web 2.0, Monkey’s …
…
continue reading
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 S…
…
continue reading

1
465: What is quality software with Elaina Natario
37:52
37:52
Play later
Play later
Lists
Like
Liked
37:52Elaina Natario returns to talk with Joël about what makes good quality product design and the priorities that shape development. The pair discuss the importance of certain elements such as security and accessibility, maintaining certain standards throughout development, as well as judging the practical applications of prototypes within a project an…
…
continue reading

1
Undefined and Unforgiven (with Joel Drapper and Lucian Ghinda)
43:59
43:59
Play later
Play later
Lists
Like
Liked
43:59In 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…
…
continue reading

1
464: Modelling the stars with Rémy Hannequin
42:59
42:59
Play later
Play later
Lists
Like
Liked
42:59Joël and Rémy draw inspiration from the stars as they discuss Rémy’s new open source Ruby gem, Astonoby. Rémy reveals the challenges he faced in taking on this project, the scientific translation work that went into making it accessible for everyone, as well as the key lessons he learnt from modelling the cosmos. — The Sponsor for this episode has …
…
continue reading

1
Poisoning the Well (with Heydon Pickering)
37:34
37:34
Play later
Play later
Lists
Like
Liked
37:34In 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 c…
…
continue reading

1
463: All about modals with Elaina Natario
36:42
36:42
Play later
Play later
Lists
Like
Liked
36:42Joël strikes up a dialogue with fellow thoughtboter Elaina Natario about the various use cases of modals. Together they discuss their pros and cons, the dos and don’ts, their functionality and accessibility to the end user as well as the subtle differences you'll notice when compared to dialogs. — The Sponsor for this episode has been Judoscale - A…
…
continue reading
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 …
…
continue reading

1
462: Decomposition as a key developer skill with Steve Polito
42:18
42:18
Play later
Play later
Lists
Like
Liked
42:18Joël and Steve sit down to discuss the ins and outs of decomposition within their respective workflows and how they use it to their advantage when working on certain projects. Together they look at working with vertical slices over other decomposition methods, when and how to break down code as efficiently as possible, and Joël lays out his three k…
…
continue reading

1
Brutality of Behaviour (with Carson Gross)
45:58
45:58
Play later
Play later
Lists
Like
Liked
45:58In this episode of Dead Code, Jared interviews Carson Gross, creator of HTMX, about the principle of Locality of Behavior (LoB) and its role in web development. Carson explains that HTMX enhances HTML rather than replacing it like modern JavaScript frameworks, offering a simpler, hypermedia-driven approach ideal for use cases like e-commerce. He cr…
…
continue reading

1
461: Writing new vs existing code with Sara Jackson
42:20
42:20
Play later
Play later
Lists
Like
Liked
42:20Joël talks with fellow thoughtboter Sara about the different ways developers can help one another across the various stages of an app’s lifecycle. They highlight the importance of utilising notes early on to clarify your work for others who may need it later down the line, how tooling can aid with this at all stages of development, and what lessons…
…
continue reading
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 equal…
…
continue reading

1
460: Programer Productivity with Valerie Burzynski
36:10
36:10
Play later
Play later
Lists
Like
Liked
36:10Start taking notes in this episode as Joël and Valerie discuss the different ways in which they structure their note taking systems to improve their workflows. Together they cover the best ways to get started with serious note taking, how to best map out your thoughts so they make the most sense when you come back round to them, as well as examinin…
…
continue reading

1
Cursed Return (with Nicole Tietz-Sokolskaya)
32:14
32:14
Play later
Play later
Lists
Like
Liked
32:14In 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 d…
…
continue reading

1
459: Paper Data Structures with Sally Hall
42:20
42:20
Play later
Play later
Lists
Like
Liked
42:20Joël and thoughtbot colleague Sally Hall set out to find an answer to the question, what exactly are the differences between paper data structures and digitals ones? They compare the different ways humans store and access data, from rolodexs to the dewey decimal system, browsing a system vs searching it, and how the digital age has changed the way …
…
continue reading
Joël and fellow thoughtboter Aji Slater examine the unfamiliar world of Typescript and various ways of working within it’s system. They lay out the pros and cons of Typescript over other environments such as Ruby and Elm and discuss their experience of adopting LLM partners to assist in their workflows. Using ChatGPT and Claude to verify code and t…
…
continue reading
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 ma…
…
continue reading

1
Pattern Imprisonment (with Joan Westenberg)
40:50
40:50
Play later
Play later
Lists
Like
Liked
40:50In 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 publicatio…
…
continue reading

1
Ordinary Corrupt Memory Love (with Jean Boussier (byroot))
33:25
33:25
Play later
Play later
Lists
Like
Liked
33:25In 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…
…
continue reading
Joël enlists the help of thoughtbot colleague Sally Hall as they dive into the complex world of time zones, daylight savings, measurements and coding. Together they discuss their struggles with daylight savings throwing off their recent project reporting, the constant struggles of writing for different time zones and why writing your own code is ne…
…
continue reading
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 incomple…
…
continue reading
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 …
…
continue reading

1
Lethal Dependency Injection (with Tim Riley)
45:50
45:50
Play later
Play later
Lists
Like
Liked
45:50In 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 depend…
…
continue reading
Joël turns to fellow thoughtboter Jimmy Thigpen as he looks to expand his knowledge about the wide world of Typescripts. Together they discuss the differences between Typescript and other common systems such as Elm and Javascript, how to best handle their edge cases and error flags, as well as the benefits of using Zod as your typescript library. —…
…
continue reading

1
Hole-y Diver (with Cyrus Omar and Andrew Blinn)
36:46
36:46
Play later
Play later
Lists
Like
Liked
36:46In 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 v…
…
continue reading

1
455: Noisy Animals Kata with Fritz Meissner
46:06
46:06
Play later
Play later
Lists
Like
Liked
46:06Joël talks with fellow thoughtboter Fritz Meissner about the thinking process behind his latest kata project and the vast world of coding problems. Fritz explains why he developed the noisy animals kata and how it helped to better understand and streamline his code, the best ways to break down conditionals and how to clean them up efficiently withi…
…
continue reading

1
Yet Another Podcast Episode (with Ingy döt Net)
35:34
35:34
Play later
Play later
Lists
Like
Liked
35:34In 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…
…
continue reading
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 boilerp…
…
continue reading
Joël is joined by fellow thoughtboter Aji Slater as they discuss their previous experiences in designing content for workshops. Learn how to best structure your workshop for an audience, the benefits of a workshop over a talk and vice versa, as well as how to tackle the different hurdles your audience might face when working through your presentati…
…
continue reading
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…
…
continue reading
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 CR…
…
continue reading

1
For Whom The Compiler Tolls (with Felienne Hermans)
29:23
29:23
Play later
Play later
Lists
Like
Liked
29:23In 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 diffic…
…
continue reading

1
Violent Sleep of Concurrency (with JP Camara)
41:15
41:15
Play later
Play later
Lists
Like
Liked
41:15In 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 iss…
…
continue reading
Happy New Year from The Bike Shed! Tune in to the one wrapped edition that really matters this holiday season, The Bike Shed Wrapped! Recap the year with Joël and Stephanie as they reminisce over their favourite moments of 2024. The pair discuss ways they’ve stepped outside their comfort zone to gain a different perspective on their work, the growt…
…
continue reading
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 th…
…
continue reading

1
452: Hotwire Essentials with Steve Polito
28:47
28:47
Play later
Play later
Lists
Like
Liked
28:47Stephanie is joined by follow thoughtbot-er Steve Polito as they discuss his latest GitHub resource, Botcasts. Find out why Steve was so keen to make the app, what he learnt about Hotwire in the process and why he thinks you should stop listening to the show in your current pod-catcher and pick it up in Botcasts instead! -- Try building Botcasts fo…
…
continue reading
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 adv…
…
continue reading
It’s officially the holidays at the Bike Shed! Defrag your hard drives and take a break with Joël and Stephanie as they breakdown different ways to manage your focus during the day. The pair discuss separating coding time from thinking time when working, the pros and cons of blocking out time for different tasks and clever ways to move seamlessly f…
…
continue reading
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 too…
…
continue reading
Joël and Stephanie go back to fundamentals as they pick apart some recent conversations they’ve been having around the office. Together they discuss the advantages of GraphQL over a REST API, how they utilise JSONB over a regular column or table, and the use-cases for and against a frontend framework like React. But what’s the theme that ties all t…
…
continue reading

1
Predatory Infrastructure (with Noah Gibbs)
47:40
47:40
Play later
Play later
Lists
Like
Liked
47:40In 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 …
…
continue reading

1
449: Evergreen skills for new-ish developers
37:41
37:41
Play later
Play later
Lists
Like
Liked
37:41One of the most challenging things about starting out as a developer is how much you need to master all at once. And with so much to learn, it can be difficult for experts to guide fresh developers and advise them on where to focus first. Luckily, some skills will always be useful, no matter what language you’re coding in. In today’s episode, Steph…
…
continue reading
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 bou…
…
continue reading
How can tests serve beyond just catching bugs in code? In this episode, Stephanie and Joël dive into the various roles that tests can play in a developer's toolkit. Covering all the fundamentals, from aiding knowledge transfer and documentation to ensuring accountability in code reviews, they explore the unexpected ways that tests support developer…
…
continue reading
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 developer…
…
continue reading

1
447: How to (not) implement impersonation
37:39
37:39
Play later
Play later
Lists
Like
Liked
37:39For developers, impersonation can be a powerful tool, but with great power comes great responsibility. In today’s episode, hosts Stephanie and Joël explore the complexities of implementing impersonation features in software development, giving you the ability to take over someone’s account and act as the user. They delve into the pros and cons of i…
…
continue reading

1
Everything is an Experiment (with Jessica Kerr)
33:00
33:00
Play later
Play later
Lists
Like
Liked
33:00In 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 met…
…
continue reading
When is it time for a rewrite? How do you justify it? If you’re tasked with one, how do you approach it? In today’s episode of The Bike Shed, we dive into the tough question of software rewrites, sharing firsthand experiences that reveal why these projects are often more complicated and risky than they first appear. We unpack critical factors that …
…
continue reading

1
Postgres and Destroy (with Andrew Atkinson)
45:32
45:32
Play later
Play later
Lists
Like
Liked
45:32In 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 …
…
continue reading

1
Twitching Hour (with Rachael Wright-Munn)
33:49
33:49
Play later
Play later
Lists
Like
Liked
33:49In 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…
…
continue reading