
The Bike Shed
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.
Latest episodes

Oct 15, 2024 • 35min
444: From Solutions To Patterns
Explore the shift from problem-solving to pattern recognition in software development. Discover how embracing heuristics can empower junior developers and enhance code quality. The hosts tackle challenges in mastering abstraction and the importance of thoughtful code reviews. They share personal insights on fostering open communication and avoiding pattern misuse. This conversation highlights the journey to becoming a more intuitive and effective developer, offering valuable strategies for navigating the complexities of coding.

Oct 8, 2024 • 32min
443: Rails World and Open Source with Stefanni Brasil
In this engaging conversation, Stefanni Brasil, Senior Developer at Thoughtbot and core maintainer of faker-ruby, shares her insights from the Rails World conference in Toronto. She emphasizes the importance of community in tech and the thrilling innovations expected in Rails 8, particularly around accessibility. Stefanni discusses her passion for open source and her initiatives to educate others, including an upcoming open-source summit set for October 2024. With a focus on both Mac and Windows compatibility in Ruby on Rails, she invites developers to connect and collaborate.

8 snips
Oct 1, 2024 • 42min
442: Paradigms - What is a Program?
Stephanie, an expert from Planet Argon, shares insights from their 2024 Ruby on Rails survey and her journey with Ruby. The discussion covers the nuances of programming paradigms: procedural, object-oriented, and functional. Listeners learn how different paradigms influence coding approaches, the significance of pure functions, and the balance of flexibility in data schemas. Joël shares his scripting style, and they explore how evolving learning methods impact developers in the Ruby community. Tune in for a deep dive into coding culture and practices!

Sep 24, 2024 • 40min
441: The Pickaxe Book with Noel Rappin
Noel Rappin, an author and Ruby programming expert, dives into his latest work, The Pickaxe Book, which updates the classic text for modern developers. He shares his journey fueled by his views on static typing in Ruby and addresses the community's debate on the topic. Noel discusses the responsibilities of technical authors and the evolution of the 'Pickaxe' within a changing landscape. He also reflects on feedback from his opinionated blogs and the unique challenges of onboarding new Ruby developers.

8 snips
Sep 17, 2024 • 43min
440: When we stray from Rails defaults
Joël, a seasoned software developer, and Stephanie, an expert in Rails conventions, delve into when it's necessary to diverge from Rails defaults. They discuss the complexities of customizing Rails and the benefits of using dry-rb objects in projects. Stephanie shares her insights on leveraging callbacks effectively, while Joël reflects on a large-scale refactoring initiative and lessons learned from legacy code issues. The duo also examines the tradeoffs of different testing frameworks and the importance of the ActiveModel ecosystem for better code development.

Sep 10, 2024 • 34min
439: Async Ruby & Rails with Trevor Turk
How can asynchronous programming transform your Ruby on Rails applications? Today, Stephanie sits down with Hello Weather co-creator Trevor Turk to unpack asynchronous programming in Ruby on Rails. Trevor Turk is a seasoned software developer known for his work on Hello Weather, a minimalist weather app that delivers essential weather data quickly and precisely. He’s also the creator of Weather Machine, an advanced weather data platform designed to serve reliable and highly accurate forecasts via API. With a background that includes work at innovative tech companies, Trevor brings years of experience in developing intuitive, user-friendly digital tools. Trevor talks about the focus of his API work, the complexity of web-based apps, and what makes Hello Weather unique. He explains the fundamentals of asynchronous programming within the Ruby on Rails framework and why it is an approach all programmers should consider. Explore the nuances of programming for different data sources, how he leverages fibers and threads for the Hello Weather platform, and why asynchronous programming is not a silver bullet for application development. Discover how to start using asynchronous methods, the various asynchronous tools available in Ruby, and why experimenting with concurrent programming is essential. Join us to gain insights into why including asynchronous tools is vital for the Ruby on Rails ecosystem, improving platforms through open-source development, how to help improve the adoption of asynchronous tools in Ruby, and more. Tune in now!
Key Points From This Episode:
Introduction to Turk and his background in Ruby on Rails.
Details about his companies Hello Weather and Weather Machine.
The innovative features that the Hello Weather platform offers.
Hear how Hello Weather transitioned from a web-based to an application.
Why he needed to alter his programming approach to scale the company.
How he came across the concept of asynchronous programming.
Discover how using fibers is different from using threads in Ruby.
Find out about the different use cases of asynchronous programming.
Learn about the benefits of implementing concurrent programming.
Trevor shares the challenges of working with different versions of Ruby.
His role in enhancing asynchronous methods within the Ruby framework.
Common misconceptions of working with Ruby on Rails.
Final takeaways for those interested in asynchronous programming.
Links Mentioned in Today’s Episode:
Trevor Turk on LinkedIn
Trevor Turk on X
Trevor Turk on Threads
Hello Weather
Weather Machine
GitHub | async gem
GitHub | falcon gem
'Async Ruby on Rails'
load_async
Episode 437: Contributing to Open Source in the Midst of Daily Work with Steve Polito
GitHub | Action Cable server adapter
ActiveRecord connection checkout caching
Ruby on Rails
The Bike Shed
The Bike Shed
Joël Quenneville on LinkedIn
Support The Bike ShedSupport The Bike Shed

Sep 3, 2024 • 49min
438: Writing abstractions in tests
Stepha, a skilled tech storyteller, dives into the intriguing parallels between writing abstractions in tests and crafting compelling narratives. She and Joël discuss the delicate balance needed in both fields to avoid overwhelming the audience or leaving them bewildered. They explore motivations for using abstractions, from enhancing readability to simplifying test purposes. The conversation also covers the impact of custom matchers and shared examples in tests, highlighting the trade-offs that come with each approach for clearer, more effective testing.

Aug 27, 2024 • 35min
437: Contributing to Open Source in the Midst of Daily Work with Steve Polito
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 Polito to discuss practical strategies for making meaningful contributions to the open-source community, even when your schedule is packed. Steve is a developer with extensive experience in the open-source world seamlessly. He’s known for his ability to integrate open-source contributions into his daily workflow, all while maintaining high productivity in his professional role. In our conversation, we explore balancing professional responsibilities with open-source contributions. Steve walks us through his process, from the importance of keeping notes to leveraging Rails issue templates. Discover strategies for contributing to open-source work during work hours, the benefits of utilizing existing processes, and why extending the success of your work to the larger developer community is essential. Join us to hear recommendations for handling pull requests with Ruby on Rails, tips for using reproduction scripts, why you should release reports early and often, and much more. Tune in and learn how to seamlessly integrate open-source contributions into your daily workflow with Steve Polito!
Key Points From This Episode:
Joël and Steve catch up and share what they are currently working on.
Transitioning synchronous processing in a web request to the background.
An update on Steve’s “building in public” approach and its reception at thoughtbot.
How Steve chooses to document and track his development process.
Find out how he uses templates to enhance and increase productivity.
Why open-source work does not need to be done during your free time.
Ways you can contribute to open-source projects during normal work hours.
The benefits of sharing troubleshooting solutions with the open-source community.
Pull request lessons from his time working with Ruby on Rails.
Reasons why issues have a lower barrier to entry with Ruby on Rails.
His unique approach of using issues, pull requests, and suspenders.
Identifying aspects of everyday work that are suitable for open-source projects.
Links Mentioned in Today’s Episode:
Steve Polito
Steve Polito on X
Episode 351: Learning in Public
Rails issue templates
Suspenders
Mermaid
Ruby on Rails
WorkOS
thoughtbot
Joel Quenneville on LinkedIn
Support The Bike Shed

Aug 13, 2024 • 43min
436: Creating Conditions For Your Best Work with Steph Viccari
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-host of The Bike Shed and Senior Developer at thoughtbot, to unpack the steps for creating work conditions that enhance productivity. In this conversation, we delve into her unique communication style and approach to optimizing productivity within a team. She explains why she decided to hang up her consulting hat and join the product team at Cisco Meraki, her new role there, and how her consulting skills benefit her new position. Tuning in, you’ll discover the key to empathetic communication, how to unblock yourself, tips to help you navigate different communication styles, and why you should advocate for your needs. Stephanie also shares strategies for effective communication and recommendations for managing ‘deep work’ when your time is limited. Gain valuable insights into how to uncover what makes your skillset unique, why it takes a team to manage complex software, benchmarking performance, keeping motivated during stressful times, and more. To learn how to create the conditions for your best work and unlock your full potential as a developer, don’t miss this episode with Stephanie Viccari!
Key Points From This Episode:
Catch up with Stephanie: what she’s been up to since leaving thoughtbot.
How she mastered optimizing workflows and enhancing productivity.
Similarities and differences between working as a consultant versus on a product team.
Ways Stephanie’s mindset shifted from individual thinking to team-oriented strategies.
Nuances of advocating for changes as a consultant versus within a product team.
What software developers need to achieve their best work.
The role of trust between managers and developers in effective problem-solving.
Tips and recommendations for identifying and delivering your best work.
Practical advice for doing your best work, even when you feel demotivated.
Why it's important not to steal from tomorrow's productivity.
Links Mentioned in Today’s Episode:
Stephanie Viccari
Stephanie Viccari on LinkedIn
Stephanie Viccari on X
Stephanie Viccari on GitHub
Cisco Meraki
thoughtbot
Stephanie Viccari’s The Bike Shed’s Episodes
‘Generative AI is not going to build your engineering team for you’
Joel Quenneville on LinkedIn
Support The Bike Shed

Jul 30, 2024 • 29min
435: Cohesive Code with Jared Norman
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 specializes in building e-commerce applications in Ruby on Rails. This episode follows two recent talks at RailsConf and covers a theme that emerged from both of them: coupling and cohesion. Tuning in, you’ll gain insights on how to create more cohesive components to allow for change and improve your understanding of value objects, systems, and more. You’ll also hear about navigating the complexity of domain-driven design and learn how to gauge if your code is easy to understand through a simple rule of thumb. We discuss what it might look like to improve the cohesion of individual objects, identify your systems’ seams to create simplicity, and the liminal space between inheritance and composition and the role of decorators in moving through it. Join us today to hear all this and more!
Key Points From This Episode:
Introducing Jared Norman recent speaker at RailsConf and Ruby on Rails specialist.
Jared’s interests outside of coding: cycling.
Themes that emerged from Jared and Stephanie’s talks: coupling and cohesion.
A rule of thumb for achieving high cohesion.
How value objects tie into the idea of cohesion.
Creating more cohesive components in order to have code and systems that are easier to change.
The relationships between objects in increasing cohesion and how complex nestings of objects can hinder this.
Rearranging systems in order to find seams and create cohesion.
Simplifying code in order to facilitate it working independently to support functionality.
Improving systems by identifying opportunities for decoupling and other relationships.
Inheritance, composition, and decorators and the liminal space between.
The complexity of domain-driven design.
A rule that indicates when a system is easy to understand.
Links Mentioned in Today’s Episode:
Jared Norman
Jared Norman on X
The Most Useful Design Pattern
Dead Code
So Writing Tests Feel Painful. What Now?
Dungeons & Dragons & Rails by Joël Quenneville
Building Reusable Object-Oriented Systems: Composition
Debugging at the Boundaries
Working Effectively with Legacy Code
Growing Object-Oriented Software Guided by Tests
What’s in a Name
Joel Quenneville on LinkedIn
Support The Bike Shed