The Bike Shed
Episodes
-
442: Paradigms - What is a Program?
October 1st, 2024 | 42 mins 22 secs
-
441: The Pickaxe Book with Noel Rappin
September 24th, 2024 | 39 mins 44 secs
-
440: When we stray from Rails defaults
September 17th, 2024 | 42 mins 56 secs
-
439: Async Ruby & Rails with Trevor Turk
September 10th, 2024 | 34 mins 11 secs
-
438: Writing abstractions in tests
September 3rd, 2024 | 49 mins 8 secs
-
437: Contributing to Open Source in the Midst of Daily Work with Steve Polito
August 27th, 2024 | 35 mins 28 secs
-
436: Creating Conditions For Your Best Work with Steph Viccari
August 13th, 2024 | 43 mins 9 secs
-
435: Cohesive Code with Jared Norman
July 30th, 2024 | 28 mins 45 secs
-
434: Git and GitHub Workflows
July 23rd, 2024 | 47 mins 42 secs
-
433: Riffing with Kasper Timm Hansen
July 16th, 2024 | 37 mins 20 secs
-
432: The Semantics and Meaning of Nil
July 9th, 2024 | 38 mins 13 secs
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 discuss the various ways we tend to project extra semantics onto nil and the implications of this before unpacking potential alternatives and trade-offs. Joël and Stephanie highlight some of the key ways programmers project additional meaning onto nil (and why), like when it’s used to create a guest session, and how this can lead to bugs, confusion, and poor user experiences. They discuss solutions to this problem, like introducing objects for improved readability, before taking a closer look at the implications of excessive guard clauses in code.
-
431: Developers Are Professional Question Askers
July 2nd, 2024 | 38 mins 54 secs
Stephanie shares her newfound interest in naming conventions, highlighting a resource called "Classnames" that provides valuable names for programming and design. Joël, in turn, talks about using AI to generate names for D&D characters, emphasizing how AI can help provide inspiration and reasoning behind name suggestions. Then, they shift to Joël's interest in Roman history, where he discusses a blog by a Roman historian that explores distinctions between state and non-state peoples in the ancient Mediterranean.
Together, the hosts delve into the importance of asking questions as consultants and developers to understand workflows, question assumptions, and build trust for better onboarding. Stephanie categorizes questions by engagement stages and their social and technical aspects, while Joël highlights how questioning reveals implicit assumptions and speeds up learning. They stress maintaining a curious mindset, using questions during PR reviews, and working with junior developers to foster collaboration. They conclude with advice on documenting answers and using questions for continuous improvement and effective decision-making in development teams.
-
430: Test Suite Pain & Anti-Patterns
June 25th, 2024 | 40 mins 57 secs
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 encouraging his colleagues at thoughtbot to participate, while Stephanie is excited about the conference being held in her hometown of Chicago!
The conversation shifts to Stephanie's recent work, including completing a significant client project and her upcoming two-week refactoring assignment. She shares her enthusiasm for refactoring code to improve its structure and stability, even when it's not her own. Joël and Stephanie also discuss the everyday challenges of maintaining a test suite, such as slowness, flakiness, and excessive database requests. They discuss strategies to balance the test pyramid and adequately test critical paths.
Finally, Joël emphasizes the importance of separating side effects from business logic to enhance testability and reduce complexity, and Stephanie highlights the need to address testing pain points and ensure tests add real value to the codebase.
-
429: Transforming Experience Into Growth
June 18th, 2024 | 43 mins 38 secs
Stephanie has a newfound interest in urban foraging for serviceberries in Chicago. Joël discusses how he uses AI tools like ChatGPT to generate creative Dungeons & Dragons character concepts and backstories, which sparks a broader conversation with Stephanie about AI's role in enhancing the creative process.
Together, the hosts delve into professional growth and experience, specifically how to leverage everyday work to foster growth as a software developer. They discuss the importance of self-reflection, note-taking, and synthesizing information to enhance learning and professional development. Stephanie shares her strategies for capturing weekly learnings, while Joël talks about his experiences using tools like Obsidian's mind maps to process and synthesize new information. This leads to a broader conversation on the value of active learning and how structured reflection can turn routine work experiences into meaningful professional growth.
-
428: Ruminating on Ruby Enumerators
June 11th, 2024 | 35 mins 44 secs
Joël explains his note-taking system, which he uses to capture his beliefs and thoughts about software development. Stephanie recalls feedback from her recent RailsConf talk, where her confidence stemmed from deeply believing in her material despite limited rehearsal. This leads to a conversation about the value of mental models in building a comprehensive understanding of a topic, which can foster confidence and adaptability during presentations and discussions.
The episode then shifts focus to the practical application of enumerators in Ruby, exploring various mental models to understand their functionality better. Joël introduces several metaphors, such as enumerators as cursors, lazy collections, and sequence generators, which help demystify their use cases.
-
427: RailsConf Recap and Conversing About Coupling
May 28th, 2024 | 37 mins 3 secs
Joël and Stephanie discuss RailsConf! Joël introduced Turbo features using a "Dungeons & Dragons & Rails" theme, performing as a D&D character to make his talk interactive. Stephanie addressed test pain by connecting it to code coupling. They emphasize continuous improvement as speakers and developers and encourage trying new approaches in talks and code design.