The Bike Shed cover image

The Bike Shed

Latest episodes

undefined
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.
undefined
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
undefined
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.
undefined
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
undefined
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
undefined
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
undefined
Jul 23, 2024 • 48min

434: Git and GitHub Workflows

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 to help them frame their proposals for success. After learning about the importance of finding your audience and angle of approach for your CFP, we dive into today's main topic – our Git and GitHub workflows. Joel and Stephanie walk us through their current workflows before exploring the differences between main branch and future branch commits. Then, we explore commits editing and why it's okay to make mistakes, commit messages versus GitHub pull requests (PR), what you need to know if you're new to Git, and what you need to understand about PR sizes and Git merge strategies. To end, Joel shares the commit messages that satisfy him the most, and we discover how to make one's life easier when reviewing PRs. Key Points From This Episode: Our CFP framework of questions to help you build a winning proposal. Why it's important to understand who your audience is and who you're speaking to. Ascertaining your angle of approach - how will you tell your story? The ins and outs of Stephanie's current work life. How discipline and particularly, self-discipline relate to our Git and GitHub workflows. Understanding Joel and Stephanie's workflows - how they're similar and how they differ. The differences between main branch and future branch commits. Editing commits and editing commits history, and why it's okay to make mistakes. Commit messages versus GitHub pull requests (PR). Some advice and strategies for those who are new to Git. Discussing Git merge strategies, PR sizes, and online changes. Joel details the types of commit messages that he finds most satisfying. How to make your life easier when reviewing PRs. Links Mentioned in Today’s Episode: RubyConf Rubric 'Working Iteratively’ Good Commit Messages Shotgun Surgery 'Episode 401: Making the Right Thing Easy’ Joel Quenneville on X Joel Quenneville on LinkedIn Support The Bike ShedSupport The Bike Shed
undefined
Jul 16, 2024 • 37min

433: Riffing with Kasper Timm Hansen

Join Kasper Timm Hansen, long-time Ruby developer and former Rails core team member, as he discusses his 'riffing' approach to code development. Learn about improvisation in coding, domain modeling, collaboration enhancement, and the value of exploring alternative solutions. Dive into the magic of riffing and enhance your coding skills with Kasper!
undefined
Jul 9, 2024 • 38min

432: The Semantics and Meaning of Nil

Hosts Joël and Stephanie discuss the implications of projecting extra meanings onto nil in programming, leading to bugs and confusion. They explore solutions like introducing objects for readability and caution against overloading nil with additional semantics. Examples include managing nil values effectively in code and modeling a card deck. The episode highlights the pitfalls of using nullable Booleans and emphasizes using nil only for truly optional data.
undefined
Jul 2, 2024 • 39min

431: Developers Are Professional Question Askers

Stephanie discusses naming conventions using 'Classnames' for design. Joël talks about AI for D&D names and his interest in Roman history. They stress the importance of asking questions in development for workflow understanding, trust building, and collaboration with juniors. They delve into questioning assumptions, maintaining a curious mindset, and using questions during PR reviews for continuous improvement.

Get the Snipd
podcast app

Unlock the knowledge in podcasts with the podcast player of the future.
App store bannerPlay store banner

AI-powered
podcast player

Listen to all your favourite podcasts with AI-powered features

Discover
highlights

Listen to the best highlights from the podcasts you love and dive into the full episode

Save any
moment

Hear something you like? Tap your headphones to save it with AI-generated key takeaways

Share
& Export

Send highlights to Twitter, WhatsApp or export them to Notion, Readwise & more

AI-powered
podcast player

Listen to all your favourite podcasts with AI-powered features

Discover
highlights

Listen to the best highlights from the podcasts you love and dive into the full episode