The Bike Shed
Episodes
498: Season 2 Recap
17 Mar 2026
Contributed by Lukas
Our hosts come together to wrap up season 2 and share some of their highlights along the way. Our trio expand and recap on some key topics covered ov...
497: Diagrams we love
10 Mar 2026
Contributed by Lukas
Aji and Joël get into a flow as they discuss the different diagrams that help guide their thought processes when working. Together they compare thei...
496: Test suite performance
03 Mar 2026
Contributed by Lukas
Joël and Sally cover all the bases as they look at improving their test suite performances times. Our hosts lay out some spicy takes on various dif...
495: A shortcut to years of experience
24 Feb 2026
Contributed by Lukas
Sally and Aji flick through thoughtbot’s guide to best practices in a bid to brush up on their coding habits. Our hosts discuss key ideas from th...
494: Primitive Obsession
17 Feb 2026
Contributed by Lukas
Joël and Sally examine the simpler components of programming and why using basic data structures may not always be the best approach to solving a pro...
493: Suspenders with Steve Polito
10 Feb 2026
Contributed by Lukas
Joël talks with guest thoughtbotter Steve Polito about his recent work rewriting Suspenders, an old thoughtbot gem from the 2000s. Steve discusses h...
492: Defining value within your team
03 Feb 2026
Contributed by Lukas
Sally and Aji assess some common metrics for success when working a project and how they may not always provide the clearest picture of how things are...
491: Influences that shaped our thinking
27 Jan 2026
Contributed by Lukas
Joël and Aji reference their personal bibliographies as they compare the different influences that have shaped their programmer world view. Our hos...
490: Large Language Misadventure
20 Jan 2026
Contributed by Lukas
Our hosts discuss the pros of AI and where they find the tool genuinely useful, it’s limitations, downsides and where it’s causing harm, the diffe...
489: What makes a codebase welcoming
13 Jan 2026
Contributed by Lukas
Joël and Sally tidy up the place as they discuss the different ways a new codebase and team can feel welcoming to them. Together they break down the...
488: The Playful Portland Programming Paradigm
06 Jan 2026
Contributed by Lukas
Aji and Joël talk all things hackerthons and why taking the time to have a little having fun with your work every now and then is important for devel...
487: ActiveModel custom attributes
30 Dec 2025
Contributed by Lukas
Joël contributes some thoughts on working with custom attributes as he follows up on last week’s discussion about ActiveModels with Sally. Joël br...
486: ActiveModel Everywhere
23 Dec 2025
Contributed by Lukas
Aji and Sally join forces to discuss the different ways they utilise active models in their workflows. Aji describes a new system for working with ac...
485: HTTP Basic Auth
16 Dec 2025
Contributed by Lukas
Joël and Aji kick off a new season by discussing the best use cases for HTTP basic auth and talking all things security. The pair ask when and why y...
484: The Season 1 Recap
25 Nov 2025
Contributed by Lukas
Our Bike Shed trio check back in with one another to follow up on some topics that caught their attention over the course of season 1. Sally covers...
483: Comparing notes on note-taking
19 Nov 2025
Contributed by Lukas
Joël and Sally compare various note taking styles as they set out to find which ones work best for them. The pair break down the different ways of f...
482: Labels for our job
11 Nov 2025
Contributed by Lukas
Joël and Sally analyse their job titles as they try to figure out exactly which borrowed labels best define their work at thoughtbot. Together they ...
481: Dev Horror Stories
04 Nov 2025
Contributed by Lukas
Joël and Sally grab a flashlight to share some scary dev stories with each other to celebrate spooky season. Sally tales the tale of the missing pro...
480: The President's Doctor with Jared Turner
28 Oct 2025
Contributed by Lukas
Aji gets their priorities straight as they talks with fellow thoughtboter Jared Turner about his recent article titled The President’s Doctor (https...
479: Hardly Strictly Remotely In-Person
21 Oct 2025
Contributed by Lukas
Aji and Sally set out to crack the problems surrounding remote working as they share their thoughts on the various aspect of working from home. Toget...
478: ADHD at work
14 Oct 2025
Contributed by Lukas
Aji and Sally sit down to discuss their struggles with ADHD and the systems they have in place to stay focused at work. They each share the note tak...
477: Change Management
07 Oct 2025
Contributed by Lukas
Time to plan an upgrade as Joël and Aji talk about the hurdles involved with various change management in their projects. The pair lay out some diff...
476: Green Flags for Code
30 Sep 2025
Contributed by Lukas
Joël and Sally sit down to discuss their green and red flags when it comes to PR review. Joël breaks down the different ways humans review code vs A...
475: Invisible Mentorship
23 Sep 2025
Contributed by Lukas
Sally and Aji discuss their experiences with invisible mentorship when it comes to code review. Together they question when is the right time to have...
474: Board games and programming
16 Sep 2025
Contributed by Lukas
It’s board game night at the Bike Shed as Joël and Aji crack out the game pieces to assess how their work as programmers influences strategy when p...
473: Mental models for browsers
09 Sep 2025
Contributed by Lukas
Joël prepares to write his new book by asking Sally some fundamental questions about Web browsers. Together they look to answer the deceptively simp...
472: What is the skill in software development?
02 Sep 2025
Contributed by Lukas
Sally and Joël kick off a new season of the Bike Shed by asking the question, what exactly is it that we as developers even do around here? Together...
471: New Hosts Join the Show
26 Aug 2025
Contributed by Lukas
Joël is joined by some familiar faces in today’s episode of the Bike Shed to help reveal some exciting changes to the show as he asks his new co-ho...
470: All about queues with Adam McCrea
19 Aug 2025
Contributed by Lukas
Joël talks with Adam McCrea, founder of Judoscale (https://judoscale.com/), about the best ways to manage your queues and autoscaling. Adam discusse...
469: How are we using AI? with Jimmy Thigpen
12 Aug 2025
Contributed by Lukas
Joël and fellow thoughtbotter Jimmy Thigpen assess their AI workflows and question whether LLM partners really are as helpful as they claim to be. J...
468: RailsConf Recap with Tess Griffin
22 Jul 2025
Contributed by Lukas
Joël sits down with Tess Griffin as they take a moment to recap the very last RailsConf together. The pair discuss their favourite moments from fina...
467: How to get the most out of attending a conference with Matheus Richard
01 Jul 2025
Contributed by Lukas
Joël continues his preparations for the last RailsConf as he talks with Matheus about how to make the most of your time at the conference. Hear thei...
466: All about keynotes with Aji Slater
24 Jun 2025
Contributed by Lukas
As the final RailsConf draws near Joël and Aji Slater sit down to discuss its varied and interesting history of keynote presentations. The pair remi...
465: What is quality software with Elaina Natario
27 May 2025
Contributed by Lukas
Elaina Natario returns to talk with Joël about what makes good quality product design and the priorities that shape development. The pair discuss th...
464: Modelling the stars with Rémy Hannequin
20 May 2025
Contributed by Lukas
Joël and Rémy draw inspiration from the stars as they discuss Rémy’s new open source Ruby gem, Astonoby (https://github.com/rhannequin/astronoby)...
463: All about modals with Elaina Natario
13 May 2025
Contributed by Lukas
Joël strikes up a dialogue with fellow thoughtboter Elaina Natario about the various use cases of modals. Together they discuss their pros and cons, ...
462: Decomposition as a key developer skill with Steve Polito
06 May 2025
Contributed by Lukas
Joë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 wo...
461: Writing new vs existing code with Sara Jackson
29 Apr 2025
Contributed by Lukas
Joël talks with fellow thoughtboter Sara about the different ways developers can help one another across the various stages of an app’s lifecycle. ...
460: Programer Productivity with Valerie Burzynski
22 Apr 2025
Contributed by Lukas
Start 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 ...
459: Paper Data Structures with Sally Hall
15 Apr 2025
Contributed by Lukas
Joël and thoughtbot colleague Sally Hall set out to find an answer to the question, what exactly are the differences between paper data structures an...
458: Learning Typescript with Aji Slater
08 Apr 2025
Contributed by Lukas
Joël and fellow thoughtboter Aji Slater examine the unfamiliar world of Typescript (https://www.typescriptlang.org/) and various ways of working with...
457: Time Zones with Sally Hall
18 Mar 2025
Contributed by Lukas
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...
456: Typescript with Jimmy Thigpen
25 Feb 2025
Contributed by Lukas
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 d...
455: Noisy Animals Kata with Fritz Meissner
18 Feb 2025
Contributed by Lukas
Joël talks with fellow thoughtboter Fritz Meissner about the thinking process behind his latest kata project and the vast world of coding problems. F...
454: Workshop design with Aji Slater
04 Feb 2025
Contributed by Lukas
Joël is joined by fellow thoughtboter Aji Slater as they discuss their previous experiences in designing content for workshops. Learn how to best str...
453: The Bike Shed Wrapped 2024
31 Dec 2024
Contributed by Lukas
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 w...
452: Hotwire Essentials with Steve Polito
24 Dec 2024
Contributed by Lukas
Stephanie is joined by follow thoughtbot-er Steve Polito as they discuss his latest GitHub resource, Botcasts (https://github.com/thoughtbot/botcasts)...
451: Making Time for and Managing Focus
17 Dec 2024
Contributed by Lukas
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...
450: Javascript-Driven Development?
10 Dec 2024
Contributed by Lukas
Joël and Stephanie go back to fundamentals as they pick apart some recent conversations they’ve been having around the office. Together they discu...
449: Evergreen skills for new-ish developers
03 Dec 2024
Contributed by Lukas
One 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 ...
448: Other Uses for Tests
26 Nov 2024
Contributed by Lukas
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 devel...
447: How to (not) implement impersonation
19 Nov 2024
Contributed by Lukas
For developers, impersonation can be a powerful tool, but with great power comes great responsibility. In today’s episode, hosts Stephanie and Joël...
446: All about rewrites
12 Nov 2024
Contributed by Lukas
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 d...
445: Working Iteratively
29 Oct 2024
Contributed by Lukas
Does having smaller, more frequent iterations help to ease your cognitive load? During this episode, we discuss the benefits and challenges of working...
444: From Solutions To Patterns
15 Oct 2024
Contributed by Lukas
What’s the difference between solving problems and recognizing patterns, and why does it matter for developers? In this episode, Stephanie and Joël...
443: Rails World and Open Source with Stefanni Brasil
08 Oct 2024
Contributed by Lukas
Learning from other developers is an important ingredient to your success. During this episode, Joël Quenneville is joined by Stefanni Brasil, Senior...
442: Paradigms - What is a Program?
01 Oct 2024
Contributed by Lukas
What is a program? Your answer to this question will determine the paradigm through which you view programming. During this episode, you’ll come to ...
441: The Pickaxe Book with Noel Rappin
24 Sep 2024
Contributed by Lukas
For a long time, Programming Ruby was the authority in the developing world. Now, a much-needed update has been published. During this conversation, w...
440: When we stray from Rails defaults
17 Sep 2024
Contributed by Lukas
When does it make sense to step away from Rails conventions? What are the limits of convention over configuration? While Rails conventions provide a s...
439: Async Ruby & Rails with Trevor Turk
10 Sep 2024
Contributed by Lukas
How can asynchronous programming transform your Ruby on Rails applications? Today, Stephanie sits down with Hello Weather co-creator Trevor Turk to un...
438: Writing abstractions in tests
03 Sep 2024
Contributed by Lukas
Writing abstractions in tests can be surprisingly similar to storytelling. The most masterful stories are those where the author has stripped away all...
437: Contributing to Open Source in the Midst of Daily Work with Steve Polito
27 Aug 2024
Contributed by Lukas
Are you passionate about open source but struggling to find time amidst your daily work? Today on the podcast, Joël Quenneville sits down with Steve ...
436: Creating Conditions For Your Best Work with Steph Viccari
13 Aug 2024
Contributed by Lukas
How can we optimize our time and environment to do our best work as developers? In today’s episode, we are joined by Stephanie Viccari, former co-ho...
435: Cohesive Code with Jared Norman
30 Jul 2024
Contributed by Lukas
How easy is it for a layperson to understand your systems? Jared Norman is a software consultant, speaker, and host of the Dead Code Podcast who speci...
434: Git and GitHub Workflows
23 Jul 2024
Contributed by Lukas
It's Calls for Proposals (CFP) season, and in the process of helping our friends and colleagues flesh out their CFPs, we came up with a few questions ...
433: Riffing with Kasper Timm Hansen
16 Jul 2024
Contributed by Lukas
Have you ever wondered how improvisation can revolutionize coding? In today’s episode, Stephanie sits down with Kasper Timm Hansen to discuss his in...
432: The Semantics and Meaning of Nil
09 Jul 2024
Contributed by Lukas
The term ‘nil’ refers to the absence of value, but we often imbue it with much more meaning than just that. Today, hosts Joël and Stephanie discu...
431: Developers Are Professional Question Askers
02 Jul 2024
Contributed by Lukas
Stephanie shares her newfound interest in naming conventions, highlighting a resource called "Classnames" that provides valuable names for programming...
430: Test Suite Pain & Anti-Patterns
25 Jun 2024
Contributed by Lukas
Stephanie and Joël discuss the recent announcement of the call for proposals for RubyConf in November. Joël is working on his proposals and encourag...
429: Transforming Experience Into Growth
18 Jun 2024
Contributed by Lukas
Stephanie has a newfound interest in urban foraging for serviceberries in Chicago. Joël discusses how he uses AI tools like ChatGPT to generate creat...
428: Ruminating on Ruby Enumerators
11 Jun 2024
Contributed by Lukas
Joël explains his note-taking system, which he uses to capture his beliefs and thoughts about software development. Stephanie recalls feedback from h...
427: RailsConf Recap and Conversing About Coupling
28 May 2024
Contributed by Lukas
Joël and Stephanie talk RailsConf! (https://railsconf.org/). Joël shares how he performed as a D&D character, Glittersense the gnome, to make his Tu...
426: Bringing "Our Selves" to Work
14 May 2024
Contributed by Lukas
Joël shares his preparations for his RailsConf talk, which is D&D-themed and centered around a gnome character named Glittersense. Stephanie expresse...
425: Modeling Associations in Rails
07 May 2024
Contributed by Lukas
Stephanie shares an intriguing discovery about the origins of design patterns in software, tracing them back to architect Christopher Alexander's idea...
424: The Spectrum of Automated Processes for Your Dev Team
30 Apr 2024
Contributed by Lukas
Joël shares his experience with the dry-rb suite of gems, focusing on how he's been using contracts to validate input data. Stephanie relates to Joë...
423: Cognitive Strategies for Coders
16 Apr 2024
Contributed by Lukas
Stephanie is back with a book recommendation: "Thinking in Systems" by Donella Meadows. This book has helped to bolster her understanding of complex s...
422: Listener Topics Grab Bag
09 Apr 2024
Contributed by Lukas
Joël conducted a thoughtbot mini-workshop on query plans, which Stephanie found highly effective due to its interactive format. They then discuss the...
421: The Idealistic vs. Pragmatic Programmer
02 Apr 2024
Contributed by Lukas
Stephanie revisits the concept of "spiking"—a phase of exploration to determine the feasibility of a technical implementation or to address unknowns...
420: Test Database Woes
26 Mar 2024
Contributed by Lukas
Joël shares his recent project challenge with Tailwind CSS, where classes weren't generating as expected due to the dynamic nature of Tailwind's CSS ...
419: What's New in Your World? (Extended Edition)
19 Mar 2024
Contributed by Lukas
Stephanie introduces her ideal setup for enjoying coffee on a bike ride. Joël describes his afternoon tea ritual. Exciting news from the hosts: both ...
418: Mental Models For Reduce Functions
12 Mar 2024
Contributed by Lukas
Joël talks about his difficulties optimizing queries in ActiveRecord, especially with complex scopes and unions, resulting in slow queries. He emphas...
417: Module Docs
05 Mar 2024
Contributed by Lukas
Stephanie shares about her vacation at Disney World, particularly emphasizing the technological advancements in the park's mobile app that made her vi...
416: Multi-Dimensional Numbers
27 Feb 2024
Contributed by Lukas
Joël discusses the challenges he encountered while optimizing slow SQL queries in a non-Rails application. Stephanie shares her experience with canar...
415: Codebase Calibration
06 Feb 2024
Contributed by Lukas
Stephanie has a delightful and cute Ruby thing to share: Honeybadger, the error monitoring service, has created exceptionalcreatures.com, where they'v...
414: Spike Tasks
30 Jan 2024
Contributed by Lukas
Joël shares his recent experience with Turbo, a JavaScript framework that simplifies adding interactivity to websites without extensive JavaScript co...
413: Developer Tales of Package Management
23 Jan 2024
Contributed by Lukas
Stephanie shares her task of retiring a small, internally-used link-shortening app. She describes the process as both celebratory and a bit mournful. ...
412: Vertical Slices
16 Jan 2024
Contributed by Lukas
Joël shares a unique, time-specific bug he encountered, which causes a page to crash only in January. This bug has been fixed in previous years, only...
411: Celebrating and Recapping 2023!
19 Dec 2023
Contributed by Lukas
Stephanie is hosting a holiday cookie swap. Joël talks about participating in thoughtbot's end-of-the-year hackathon, Ralphapalooza. We had a great ...
410: All About Documentation
12 Dec 2023
Contributed by Lukas
Joël shares his experiences with handling JSON in a Postgres database. He talks about his challenges with ActiveRecord and JSONB columns, particularl...
409: Support & Maintenance and Rotating Developers
05 Dec 2023
Contributed by Lukas
Stephanie recommends "Blue Eye Samurai" and a new ceramic pot (donabe) for cooking. Joël talks about the joy of holding a warm beverage in a unique m...
408: Work Device Management
28 Nov 2023
Contributed by Lukas
Joël recaps his time at RubyConf! He shares insights from his talk about different aspects of time in software development, emphasizing the interacti...
407: Tech Opinions Online with Edward Loveall
21 Nov 2023
Contributed by Lukas
Stephanie interviews Edward Loveall, a former thoughtbotter, now software developer at Relevant Healthcare. Part of their discussion centers around E...
406: Working Solo
14 Nov 2023
Contributed by Lukas
Joël got to do some pretty fancy single sign-on work. And when it came time to commit, he documented the ridiculous number of redirects to give peopl...
405: Retro: Sandi Metz Rules
07 Nov 2023
Contributed by Lukas
Stephanie discovered a new book: The Staff Engineer's Path! Joël's got some D&D goodness. Together, they revisit a decade-old blog post initially pu...
404: Estimation
17 Oct 2023
Contributed by Lukas
Joël was selected to speak at RubyConf in San Diego! After spending a month testing out living in Upstate New York, Stephanie is back in Chicago. Ste...
403: Productivity Tricks
26 Sep 2023
Contributed by Lukas
Stephanie is engrossed in Kent Beck's Substack newsletter, which she appreciates for its "working thoughts" format. Unlike traditional media that unde...
402: Musings on Mentorship
19 Sep 2023
Contributed by Lukas
Joël describes an old-school object orientation exercise that involves circling nouns in a business problem description. The purpose is determining w...
401: Making the Right Thing Easy
12 Sep 2023
Contributed by Lukas
Stephanie has another debugging mystery to share. Earlier this year, Joël mentioned that he was experimenting with a bookmark manager to keep track o...
400: How To Search
05 Sep 2023
Contributed by Lukas
Joël shares he has been getting more into long-form reading. Stephanie talks about the challenges she faced in a new project that required integratin...
399: Scaling Code Ownership and Accountability
29 Aug 2023
Contributed by Lukas
Stephanie experienced bike camping. Joël describes his experience during a week when he's in between projects. Stephanie and Joël discuss the conce...