The Bike Shed

Follow The Bike Shed
Share on
Copy link to clipboard

On The Bike Shed, hosts Chris Toomey & Steph Viccari discuss their development experience and challenges at thoughtbot with Ruby, Rails, JavaScript, and whatever else is drawing their attention, admiration, or ire this week.

thoughtbot

Donate to The Bike Shed


    • Nov 19, 2025 LATEST EPISODE
    • weekly NEW EPISODES
    • 39m AVG DURATION
    • 483 EPISODES

    4.9 from 121 ratings Listeners of The Bike Shed that love the show mention: thoughtbot, ruby, rails, fixed, developers, technical, code, programming, development, always interesting, great to hear, i've learned, balance, dive, learn something, discussion, deep, practical, highly recommend, topics.


    Ivy Insights

    The Bike Shed podcast, a side project of Thoughtbot, has exceeded my expectations in terms of production quality and content. With an array of interesting guests and topics, this podcast keeps me engaged and entertained. I particularly appreciate that the hosts source many of their guests internally, as it creates a comfortable environment for deeper discussions. Another standout feature is the fact that they cover various programming ecosystems, not just focusing on one language or framework. This unique approach makes The Bike Shed podcast both informative and enjoyable.

    One of the best aspects of The Bike Shed podcast is the delightful cadence of conversations between hosts Chris and Steph. They manage to provide in-depth insights without overly explaining concepts, striking a perfect balance. Furthermore, the practical issues discussed are relatable and offer valuable solutions for everyday development problems. The diversity of tech thinkers featured on different episodes is both inspirational and educational.

    While there aren't many negative aspects to highlight about this podcast, some listeners may prefer more focused discussions on specific languages or frameworks. Although The Bike Shed covers various ecosystems, the majority of content revolves around Ruby on Rails development. However, considering that the hosts are experienced Rails developers themselves (one even being part of the Rails core team), this specialization can be seen as an advantage rather than a drawback.

    In conclusion, The Bike Shed podcast by Thoughtbot is a unique and enjoyable programming podcast that offers valuable insights into web development and Ruby on Rails development in particular. With its well-produced episodes featuring interesting guests from the tech community, this podcast stands out among others in its genre. Whether you're seeking inspiration or practical solutions to everyday development problems, The Bike Shed delivers both in an engaging manner. I highly recommend giving it a listen!



    Search for episodes from The Bike Shed with a specific topic:

    Latest episodes from The Bike Shed

    483: Comparing notes on note-taking

    Play Episode Listen Later Nov 19, 2025 38:57


    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 formatting their notes and what they're used for, Sally explains her struggles with note taking in general and the work arounds she's found to achieve similar results instead, and Joël provides a small update on his book as he examines the different use cases for all his notes. — Thanks to our sponsors for this episode Judoscale - Autoscale the Right Way (https://judoscale.com/bikeshed) (check the link for your free gift!), and Scout Monitoring (https://www.scoutapm.com/). Read about Joël's note taking in depth through his thoughtbot blog posts - Blog 1 (https://thoughtbot.com/blog/my-note-taking-system-gives-me-constant-content-ideas) - Blog 2 (https://thoughtbot.com/blog/turning-experience-into-growth) Your hosts for this episode have been thoughtbot's own Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/) and Sally Hall (https://www.linkedin.com/in/sallyannahall). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - BlueSky (https://bsky.app/profile/thoughtbot.com) © 2025 thoughtbot, inc.

    482: Labels for our job

    Play Episode Listen Later Nov 11, 2025 43:51


    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 break down the components of commonly used titles such as engineer, architect and consultant to see which element reflects their work best, how they would describe their roles at thoughtbot, which industries they'd draw from if they came up with their own titles, and what does Lil Wayne have to do with all this? — For a deeper dive into today's episode consider checking out Hillel Wayne's post “Are we really engineers?” (https://www.hillelwayne.com/post/are-we-really-engineers/) and Henrik Kniberg's article on Minimal Viable Products (https://blog.crisp.se/2016/01/25/henrikkniberg/making-sense-of-mvp). Thanks to our sponsors for this episode Judoscale - Autoscale the Right Way (https://judoscale.com/bikeshed) (check the link for your free gift!), and Scout Monitoring (https://www.scoutapm.com/). Your hosts for this episode have been thoughtbot's own Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/) and Sally Hall (https://www.linkedin.com/in/sallyannahall). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - BlueSky (https://bsky.app/profile/thoughtbot.com) © 2025 thoughtbot, inc.

    481: Dev Horror Stories

    Play Episode Listen Later Nov 4, 2025 43:22


    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 production database, Joël flees from some corrupted data, and each recall instances of haunted code and heart stopping moments from projects gone wrong. — Thanks to our sponsors for this episode Judoscale - Autoscale the Right Way (https://judoscale.com/bikeshed) (check the link for your free gift!), and Scout Monitoring (https://www.scoutapm.com/). If you're ever in Amsterdam consider checking out Joël's museum recommendation. (https://grachten.museum/en/) Your hosts for this episode have been thoughtbot's own Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/) and Sally Hall (https://www.linkedin.com/in/sallyannahall). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - BlueSky (https://bsky.app/profile/thoughtbot.com) © 2025 thoughtbot, inc.

    480: The President's Doctor with Jared Turner

    Play Episode Listen Later Oct 28, 2025 33:03


    Aji gets his priorities straight as he talks with fellow thoughtboter Jared Turner about his recent article titled The President's Doctor (https://thoughtbot.com/blog/the-presidents-doctor). Jared breaks down the thought process behind the president's doctor and the wasted time we accrue when working on a project, where we can minimise pauses and delays in our workflows, and why watching cat videos while you wait may actually be the most productive thing you can do! — Thanks to our sponsors for this episode Judoscale - Autoscale the Right Way (https://judoscale.com/bikeshed) (check the link for your free gift!), and Scout Monitoring (https://www.scoutapm.com/). Read Jared's article (https://thoughtbot.com/blog/the-presidents-doctor) to get a full breakdown of The President's Doctor theory. Your host for this episode has been Aji Slater (https://www.linkedin.com/in/doodlingdev/) and was joined by fellow thoughtboter Jared Turner (https://www.linkedin.com/in/jaredlt/). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - BlueSky (https://bsky.app/profile/thoughtbot.com) © 2025 thoughtbot, inc.

    479: Hardly Strictly Remotely In-Person

    Play Episode Listen Later Oct 21, 2025 33:42


    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. Together they discuss their time at the recent thoughtbot summit in Amsterdam, how they felt about working in-person again, what they took away from the experience, the best remote solutions they've found to recreate that in-person feeling (https://www.gather.town/), and what friction points about remote working still linger for them both. — Thanks to our sponsors for this episode Judoscale - Autoscale the Right Way (https://judoscale.com/bikeshed) (check the link for your free gift!), and Scout Monitoring (https://www.scoutapm.com/). Sign up for thoughtbot's open summit (https://thoughtbot.com/events/open-summit) at the end of the month. Your hosts for this episode have been thoughtbot's own Sally Hall (https://www.linkedin.com/in/sallyannahall) and Aji Slater (https://www.linkedin.com/in/doodlingdev/) If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - BlueSky (https://bsky.app/profile/thoughtbot.com) © 2025 thoughtbot, inc.

    478: ADHD at work

    Play Episode Listen Later Oct 14, 2025 37:47


    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 taking systems (https://www.goodnotes.com/blog/zettelkasten-method) and tools they use to navigate a normal working day, how they came to fully understand and manage their ADHD, and Sally reminds us all why it's very important to use a slash in your Slack reminders. — This episode of the Bike Shed has been sponsored by Judoscale - Autoscale the Right Way (https://judoscale.com/bikeshed), check the link for your free gift! Try out the reminder app Aji mentioned in this episode (https://www.inyourface.app/) to help keep yourself on track. Your hosts for this episode have been thoughtbot's own Sally Hall (https://www.linkedin.com/in/sallyannahall) and Aji Slater (https://www.linkedin.com/in/doodlingdev/) If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - BlueSky (https://bsky.app/profile/thoughtbot.com) © 2025 thoughtbot, inc.

    477: Change Management

    Play Episode Listen Later Oct 7, 2025 44:25


    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 different approaches to protecting your data when planning a migration, the risks of code and data changes, the elements that will and won't be affect in the process, and Joël gives his experience on a tough migration project and what he learnt from it. — If you've not used Merge before you can learn more about it here (https://api.rubyonrails.org/v8.0.2.1/classes/ActiveRecord/SpawnMethods.html#method-i-merge). Thanks to our sponsors for this episode Judoscale - Autoscale the Right Way (https://judoscale.com/bikeshed) (check the link for your free gift!), and Scout Monitoring (https://www.scoutapm.com/). Your hosts for this episode have been thoughtbot's own Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/) and Aji Slater (https://www.linkedin.com/in/doodlingdev/) If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - BlueSky (https://bsky.app/profile/thoughtbot.com) © 2025 thoughtbot, inc.

    476: Green Flags for Code

    Play Episode Listen Later Sep 30, 2025 36:39


    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 AI, how they both break down large projects into smaller digestible PRs and clarifying your reasoning for certain decisions, as well as discussing the most common red flags they've encountered when looking over code. — Take a break from coding to brush up on your Roman History (https://acoup.blog/2025/07/11/collections-life-work-death-and-the-peasant-part-i-households/). Thanks to our sponsors for this episode Judoscale - Autoscale the Right Way (https://judoscale.com/bikeshed) (check the link for your free gift!), and Scout Monitoring (https://www.scoutapm.com/). Your hosts for this episode have been thoughtbot's own Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/) and Sally Hall (https://www.linkedin.com/in/sallyannahall). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - BlueSky (https://bsky.app/profile/thoughtbot.com) © 2025 thoughtbot, inc.

    475: Invisible Mentorship

    Play Episode Listen Later Sep 23, 2025 38:11


    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 conversations with your team in a bid to chase improvement, the importance of understanding your co-workers perspectives, as well as the best ways to initiate a mentoring moment. — Check out some of the things mentioned in this episode - The Coding Train (https://thecodingtrain.com) - Sarah Mel's Livable Code (https://www.youtube.com/watch?v=lI77oMKr5EY&pp=ygUTc2FyYWggbWVpIHJhaWxzY29uZg==) Thanks to our sponsors for this episode Judoscale - Autoscale the Right Way (https://judoscale.com/bikeshed) (check the link for your free gift!), and Scout Monitoring (https://www.scoutapm.com/). Your hosts for this episode have been thoughtbot's own Sally Hall (https://www.linkedin.com/in/sallyannahall) and Aji Slater (https://www.linkedin.com/in/doodlingdev/) If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - BlueSky (https://bsky.app/profile/thoughtbot.com) © 2025 thoughtbot, inc.

    474: Board games and programming

    Play Episode Listen Later Sep 16, 2025 41:08


    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 playing some of their favourite games. As they make their way round the board they discuss the cycle of setbacks and iteration, finding the optimal solution to a puzzle, as well as the key skills that best links their programming work to board games. — Check out the upcoming conferences mentioned in this episode - XO Ruby (https://www.xoruby.com/)and Rocky Mountain (https://rockymtnruby.dev/) Your hosts for this episode have been thoughtbot's own Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/) and Aji Slater (https://www.linkedin.com/in/doodlingdev/). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - BlueSky (https://bsky.app/profile/thoughtbot.com) © 2025 thoughtbot, inc.

    473: Mental models for browsers

    Play Episode Listen Later Sep 9, 2025 44:12


    Joël prepares to write his new book by asking Sally some fundamental questions about Web browsers. Together they look to answer the deceptively simple question of what is a browser, examining what they are at their core, what they're capable of beyond basic functions, the nuances of programming for the web across different systems and devices on the front and back end (https://radanskoric.com/articles/hotwire-or-frontend-framework), as well as unpacking the surprising benefits of different forms of browsers like the terminal text based platform Lynx (https://lynx.invisible-island.net/). — Thanks to our sponsors for this episode Judoscale - Autoscale the Right Way (https://judoscale.com/bikeshed) (check the link for your free gift!), and Scout Monitoring (https://www.scoutapm.com/). Your hosts for this episode have been thoughtbot's own Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/) and Sally Hall (https://www.linkedin.com/in/sallyannahall). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - BlueSky (https://bsky.app/profile/thoughtbot.com) © 2025 thoughtbot, inc.

    472: What is the skill in software development?

    Play Episode Listen Later Sep 2, 2025 41:26


    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 they discuss their roles as developers, how their workflows and skills have changed over time, the value of context and experience when evaluating different solutions to a problem, why so much of their work revolves around googling error codes, (https://thoughtbot.com/blog/indiana-jones-and-the-crypt-of-cryptic-error-messages) and giving some advice to aspiring junior developers (https://thoughtbot.com/blog/turning-experience-into-growth). — Thanks to our sponsors for this episode Judoscale - Autoscale the Right Way (https://judoscale.com/bikeshed) (check the link for your free gift!), and Scout Monitoring (https://www.scoutapm.com/). Your hosts for this episode have been thoughtbot's own Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/) and Sally Hall (https://www.linkedin.com/in/sallyannahall). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - BlueSky (https://bsky.app/profile/thoughtbot.com) © 2025 thoughtbot, inc.

    471: New Hosts Join the Show

    Play Episode Listen Later Aug 26, 2025 42:12


    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-hosts, what's new in your world? — Thanks to our sponsors for this episode Judoscale - Autoscale the Right Way (https://judoscale.com/bikeshed) (check the link for your free gift!), and Scout Monitoring (https://www.scoutapm.com/). Joining Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/) as your new co-hosts are Aji Slater (https://www.linkedin.com/in/doodlingdev/)and Sally Hall (https://www.linkedin.com/in/sallyannahall). Get to know your hosts a little better by checking out Sally's recent episode on timezones (https://bikeshed.thoughtbot.com/457) or Aji's RailsConf Keynote (https://www.youtube.com/watch?v=2u0ysVA17Os) and handy list of previous keynotes (https://gist.github.com/DoodlingDev/b8a77aad7451b2f5d33c6b82de2e4bce). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - BlueSky (https://bsky.app/profile/thoughtbot.com) © 2025 thoughtbot, inc.

    470: All about queues with Adam McCrea

    Play Episode Listen Later Aug 19, 2025 40:07


    Joël talks with Adam McCrea, founder of Judoscale (https://judoscale.com/), about the best ways to manage your queues and autoscaling. Adam discusses some tough lessons he learnt recently during a technical outage at Judoscale (https://judoscale.com/blog/upscaling-broken-post-mortem), what exactly autoscaling is and how it works, the best signals to assess when working with an autoscaler, and provides some simple tips to better organise your own queues. — You can connect with Adam via LinkedIn (https://www.linkedin.com/in/adamlogic/) or check out the work he does with Judoscale (https://judoscale.com/), who have also sponsored this episode of The Bike Shed. Be sure to claim your free gift (https://judoscale.com/bikeshed) if you haven't already! Thanks to the second sponsor of this episode Scout Monitoring (https://www.scoutapm.com/). Your host for this episode has been thoughtbot's own Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - BlueSky (https://bsky.app/profile/thoughtbot.com) © 2025 thoughtbot, inc.

    469: How are we using AI? with Jimmy Thigpen

    Play Episode Listen Later Aug 12, 2025 38:32


    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. Joël points out the blindspots AI can have when processing certain requests, they each share the ways they utilise AI into their workflow and pros and cons of doing so, as well as looking at some of the areas of improvement they would each like to see made to various AI agents in the future. — Thanks to our sponsors for this episode Judoscale - Autoscale the Right Way (https://judoscale.com/bikeshed) (check the link for your free gift!), and Scout Monitoring (https://www.scoutapm.com/). Your host for this episode has been thoughtbot's own Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/), and you can connect with this week's guest Jimmy Thigpen over on LinkedIn (https://www.linkedin.com/in/thigpenjimmy/). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - BlueSky (https://bsky.app/profile/thoughtbot.com) © 2025 thoughtbot, inc.

    468: RailsConf Recap with Tess Griffin

    Play Episode Listen Later Jul 22, 2025 41:35


    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 final conference, how their love of D&D has crossed over to shape their experiences attending RailsConf, and the future of the show as a whole. — Thanks to our sponsors for this episode Judoscale - Autoscale the Right Way (https://judoscale.com/bikeshed) (check the link for your free gift!), and Scout Monitoring (https://www.scoutapm.com/). Your guest this week was Tess Griffin (https://www.linkedin.com/in/tess-griffin/) and your host for this episode has been thoughtbot's Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - BlueSky (https://bsky.app/profile/thoughtbot.com) © 2025 thoughtbot, inc.

    467: How to get the most out of attending a conference with Matheus Richard

    Play Episode Listen Later Jul 1, 2025 41:20


    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 their tips to connect and communicate with other attendees, the different ways to take notes at the various talks you can attend, what to do when your discussions have a lull, as well as how to draw inspiration from others talks and using it to your advantage. — Don't miss out on the final RailsConf (https://railsconf.org/) which takes place July 8th - July 10th in Philadelphia, PA! Thanks to our sponsors for this episode Judoscale - Autoscale the Right Way (https://judoscale.com/bikeshed) (check the link for your free gift!), and Scout Monitoring (https://www.scoutapm.com/). You can connect with Matheus via LinkedIn (https://www.linkedin.com/in/matheus-richard/), or check out some of the topics he's written about over on his thoughtbot blog (https://thoughtbot.com/blog/authors/matheus-richard). Your host for this episode has been Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - BlueSky (https://bsky.app/profile/thoughtbot.com) © 2025 thoughtbot, inc.

    466: All about keynotes with Aji Slater

    Play Episode Listen Later Jun 24, 2025 43:36


    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 reminisce on their previous trips and talks at RailsConf, share some tips on creating the perfect keynote, as well as discussing the strong community that's rallied behind RailsConf for so many years and how to best connect with others at similar cons as an audience member. — Don't miss out on the final RailsConf (https://railsconf.org/) which takes place July 8th - July 10th in Philadelphia, PA! Get ready for by checking out Aji's recommenced keynotes from previous years 2022 (https://www.youtube.com/watch?v=DzyGdOd_6-Y) - 2017 (https://www.youtube.com/watch?v=V4fnzHxHXMI) Thanks to our sponsors for this episode Judoscale - Autoscale the Right Way (https://judoscale.com/bikeshed) (check the link for your free gift!), and Scout Monitoring (https://www.scoutapm.com/). You can connect with Aji via LinkedIn and GitHub (https://github.com/DoodlingDev), or check out some of the topics he's written about over on his thoughtbot blog You can connect with Aji via LinkedIn and GitHub (https://github.com/DoodlingDev), or check out some of the topics he's written about over on his thoughtbot blog (https://thoughtbot.com/blog/authors/aji-slater). Your host for this episode has been Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - BlueSky (https://bsky.app/profile/thoughtbot.com) © 2025 thoughtbot, inc.

    465: What is quality software with Elaina Natario

    Play Episode Listen Later May 27, 2025 37:52


    Elaina 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 and the broad role they play. — The Sponsor for this episode has been Judoscale - Autoscale the Right Way (https://judoscale.com/bikeshed). Check out the link for your free gift! You can read more about about inaccessable prototypes here (https://localghost.dev/blog/ai-and-the-trouble-with-inaccessible-saas/), or listen to the episode Joël mentioned with Aji about different typescripts here (https://bikeshed.thoughtbot.com/458)! Your guest for this week has been Elaina Natario (https://www.linkedin.com/in/elainanatario/) and you host has been Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - BlueSky (https://bsky.app/profile/thoughtbot.com) © 2025 thoughtbot, inc. — Credit: Ad-read music by joystock.org

    464: Modelling the stars with Rémy Hannequin

    Play Episode Listen Later May 20, 2025 42:59


    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). 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 been Judoscale - Autoscale the Right Way (https://judoscale.com/bikeshed). Check out the link for your free gift! If you're enthusiastic about space and want to try out Rémy's new gem tool, you can find it here (https://github.com/rhannequin/astronoby). Alternatively you can read more about astronomical computing here (https://dev.to/rhannequin/series/17782). Your host for this episode has been thoughtbot's own Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/) and was accompanied by Rémy, who can be found over on LinkedIn (https://www.linkedin.com/in/rhannequin/?locale=en_US), or through social media (https://mastodon.social/@rhannequin@ruby.social) under the handle @rhannequin If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - BlueSky (https://bsky.app/profile/thoughtbot.com) © 2025 thoughtbot, inc. — Credit: Ad-read music by joystock.org

    463: All about modals with Elaina Natario

    Play Episode Listen Later May 13, 2025 36:42


    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, 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 - Autoscale the Right Way (https://judoscale.com/bikeshed). Check out the link for your free gift! Your guest for this week has been Elaina Natario (https://www.linkedin.com/in/elainanatario/) and you host has been Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - BlueSky (https://bsky.app/profile/thoughtbot.com) © 2025 thoughtbot, inc. — Credit: Ad-read music by joystock.org

    462: Decomposition as a key developer skill with Steve Polito

    Play Episode Listen Later May 6, 2025 42:18


    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 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 key principles that help him write code dubbed “The Triangle of Separation”. — The Sponsor for this episode has been Judoscale - Autoscale the Right Way (https://judoscale.com/bikeshed). Check out the link for your free gift! Learn more about Joël's triangle of separation (https://thoughtbot.com/blog/triangle-of-separation) and working with vertical slices (https://thoughtbot.com/blog/break-apart-your-features-into-full-stack-slices)! Your guest this week has been Steve Polito (https://www.linkedin.com/in/steve-polito), and your host for this episode has been thoughtbot's own Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/). You can find Steve's work over on GitHub (https://github.com/stevepolitodesign), or dive into more of his thought processes over on his thoughtbot's blogs (https://thoughtbot.com/blog/authors/steve-polito). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - BlueSky (https://bsky.app/profile/thoughtbot.com) © 2025 thoughtbot, inc. — Credit: Ad-read music by joystock.org (https://joystock.org)

    461: Writing new vs existing code with Sara Jackson

    Play Episode Listen Later Apr 29, 2025 42:20


    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. 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 can be learnt from coding decisions made by someone else. — The Sponsor for this episode has been Judoscale - Autoscale the Right Way (https://judoscale.com/bikeshed). Check out the link for your free gift! Check out Steve Polito's Hotwire essentials project (https://thoughtbot.com/blog/hotwire-essentials-is-here-learn-hotwire-by-building-a-podcast-player), featured in Episode 452 (https://bikeshed.thoughtbot.com/452). Your host for this episode has been Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/) and was accompanied by Sara Jackson (https://www.linkedin.com/in/saraejackson/). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - BlueSky (https://bsky.app/profile/thoughtbot.com) © 2025 thoughtbot, inc. — Credit: Ad-read music by joystock.org (https://joystock.org)

    460: Programer Productivity with Valerie Burzynski

    Play Episode Listen Later Apr 22, 2025 36:10


    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 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 examining the different use cases they have for them both over the course of a working day. — The Sponsor for this episode has been Judoscale - Autoscale the Right Way (https://judoscale.com/bikeshed). Check out the link for your free gift! Take notes like a pro with Obsidian (https://obsidian.md/) and then read what Joël has to say on his own note taking (https://thoughtbot.com/blog/my-note-taking-system-gives-me-constant-content-ideas). Your guest this week has been Valerie Burzynski, (https://www.linkedin.com/in/valerieburzynski/) and your host for this episode has been thoughtbot's own Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - BlueSky (https://bsky.app/profile/thoughtbot.com) © 2025 thoughtbot, inc. — Credit: Ad-read music by joystock.org

    459: Paper Data Structures with Sally Hall

    Play Episode Listen Later Apr 15, 2025 42:20


    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 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 we assess and look at data stored in those systems. — Change your organisational workflow and get yourself a Rolodex! (https://www.rolodex.com/contact-management.html) Find out more about the Dewey Decimal System (https://esu.libguides.com/dewey). Your guest this week has been Sally Hall (linkedin.com/in/sallyannahall), and your host for this episode has been thoughtbot's own Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - BlueSky (https://bsky.app/profile/thoughtbot.com) © 2025 thoughtbot, inc.

    458: Learning Typescript with Aji Slater

    Play Episode Listen Later Apr 8, 2025 42:31


    Joël and fellow thoughtboter Aji Slater examine the unfamiliar world of Typescript (https://www.typescriptlang.org/) 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. Utilising Chat GPT and Claude to verify code and trim down syntax, all while trying to appease the type checker. Discover the little tips, tricks and bad habits they picked up along the way while working with their LLM buddies in an effort to improve efficiency. — Check out Ruby2D (https://www.ruby2d.com) for all your 2D app needs! You can connect with Aji via LinkedIn (https://www.linkedin.com/in/doodlingdev/), or check out some of the topics he's written about over on his thoughtbot blog (https://thoughtbot.com/blog/authors/aji-slater). Your host for this episode has been Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - Bluesky (https://bsky.app/profile/thoughtbot.com) © 2025 thoughtbot, inc.

    457: Time Zones with Sally Hall

    Play Episode Listen Later Mar 18, 2025 46:29


    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 never worth the hassle, and the similar battle of writing for different units of measurement. — Check out the idea behind "If Hemingway Wrote Javascript (https://javascriptweblog.wordpress.com/2015/01/05/if-hemingway-wrote-javascript-explained/)" and how it could help you with your coding. Watch Tom Scott's (https://www.youtube.com/watch?v=-5wpm-gesOY) own slow decent into madness over timezones and coding. Your guest this week has been Sally Hall (https://www.linkedin.com/in/sallyannahall), and your host for this episode has been thoughtbot's own Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - Bluesky (https://bsky.app/profile/thoughtbot.com) © 2025 thoughtbot, inc.

    456: Typescript with Jimmy Thigpen

    Play Episode Listen Later Feb 25, 2025 37:19


    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. — Just starting out in Typescript? Try enabling Strict Mode! (https://www.typescriptlang.org/tsconfig/#strict) Try out Zod for yourself (https://zod-playground.vercel.app/) in their browser playground, or check out Zod's homepage (https://zod.dev/) for more info. If you'd like to contact Jimmy about all things Typescript he can be found over on LinkedIn (https://www.linkedin.com/in/thigpenjimmy/) Your host for this episode has been thoughtbot's own Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - Instagram (https://www.instagram.com/thoughtbot/) © 2025 thoughtbot, inc.

    455: Noisy Animals Kata with Fritz Meissner

    Play Episode Listen Later Feb 18, 2025 46:06


    Joë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 within your workflow, as well as knowing where the limits of improvement are in each project you work on. — Refine your conditional logic technique with a copy of 99 Bottles of OOP (https://sandimetz.com/99bottles) and then test your skills with Fritz's Noisy Animals Kata (https://github.com/thoughtbot/noisy-animals-kata). Compare notes with Joël (https://github.com/JoelQ/noisy-animals-kata) and Fritz (https://github.com/thoughtbot/noisy-animals-kata/blob/fm-refactored-v3/noisy_animal.rb) to see how you stack up once you're done! Listen to Joël's RailsConf talk The Math Every Programmer Needs (https://www.youtube.com/watch?v=wzYYT40T8G8) or check out some previous episodes for a refresher on some of the logic and math topics discussed in this show - Ep 398 (https://bikeshed.thoughtbot.com/398) - Ep 353 (https://bikeshed.thoughtbot.com/353) - Ep 418 (https://bikeshed.thoughtbot.com/418) - Ep 428 (https://bikeshed.thoughtbot.com/428) If you'd like to contact Fritz about his Kata or anything else programming related he can be found via LinkedIn (https://www.linkedin.com/in/fritz-meissner-057a4a6/) Your host for this episode has been thoughtbot's own Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - Instagram (https://www.instagram.com/thoughtbot/) © 2025 thoughtbot, inc.

    454: Workshop design with Aji Slater

    Play Episode Listen Later Feb 4, 2025 37:46


    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 presentation. — Try your hand at Joël's recommendation of visualising your Git Branching (https://learngitbranching.js.org/). You can watch Ali's Enigma Machine workshop here (https://www.youtube.com/watch?v=KrLVIf-pS4g), Or connect with him via LinkedIn (https://www.linkedin.com/in/doodlingdev/) Your host for this episode has been Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - Instagram (https://www.instagram.com/thoughtbot/) © 2025 thoughtbot, inc.

    453: The Bike Shed Wrapped 2024

    Play Episode Listen Later Dec 31, 2024 31:30


    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 growth they've each achieved as a result, and their ambitions for 2025 and beyond. Discover Joël and Stephanie's favourite episodes from the year as well as Joël's favourite blog post of 2024 (https://thoughtbot.com/blog/flesh-out-your-conference-talk-idea-using-a-rubric). — Re-listen to Joël and Stephanie's top four episodes of 2024 432: The Semantics and Meaning of Nil (https://bikeshed.thoughtbot.com/432) 435: Cohesive Code with Jared Norman (https://bikeshed.thoughtbot.com/435) 421: The Idealistic Vs. Pragmatic Programmer (https://bikeshed.thoughtbot.com/421) 441: The Pickaxe Book with Noel Rappin (https://bikeshed.thoughtbot.com/441) Want to hear Joël's gnome voice? Watch his RailsConf Talk! (https://www.youtube.com/watch?v=T7GdshXgQZE) Prefer to hear Stephanie give a talk like a regular human? Watch her RailsConf Talk! (https://www.youtube.com/watch?v=VmWCJFiU1oM) Your hosts for this episode have been thoughtbot's own Stephanie Minn and Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - YouTube (https://www.youtube.com/@thoughtbot/streams) - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - Instagram (https://www.instagram.com/thoughtbot/) © 2024 thoughtbot, inc.

    452: Hotwire Essentials with Steve Polito

    Play Episode Listen Later Dec 24, 2024 28:47


    Stephanie is joined by follow thoughtbot-er Steve Polito as they discuss his latest GitHub resource, Botcasts (https://github.com/thoughtbot/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 for yourself over on Github (https://github.com/thoughtbot/botcasts)! Your host for this episode has been thoughtbot's own Stephanie Minn, and was accompanied by Steve Polito. You can find more of Steve's work over on GitHub (https://github.com/stevepolitodesign), or read what he has to say about his work on thoughtbot's blogs (https://thoughtbot.com/blog/process-network-requests-with-turbo). If you want to connect with Steve you can do so through LinkedIn (https://www.linkedin.com/in/steve-polito). Interested in birds instead? Why not check out Stephanie's book recommendation (https://www.mattkracht.com/fieldguidetodumbbirdsofnorthamerica)! If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - Instagram (https://www.instagram.com/thoughtbot/) © 2024 thoughtbot, inc.

    451: Making Time for and Managing Focus

    Play Episode Listen Later Dec 17, 2024 29:25


    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 from one project to the next without losing momentum. Joël has some more timezone facts to share, while Stephanie reveals her worst enemy when it comes to productivity. — Try out the Pomodoro system (https://en.wikipedia.org/wiki/Pomodoro_Technique) in your workflow and let us know if it works for you! Your hosts for this episode have been thoughtbot's own Stephanie Minn and Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - Instagram (https://www.instagram.com/thoughtbot/) © 2024 thoughtbot, inc.

    450: Javascript-Driven Development?

    Play Episode Listen Later Dec 10, 2024 39:57


    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 these conversations together? — The article mentioned in this episode was Why I'm over GraphQL (https://bessey.dev/blog/2024/05/24/why-im-over-graphql/) Your hosts for this episode have been thoughtbot's own Stephanie Minn and Joël Quenneville (https://www.linkedin.com/in/joel-quenneville-96b18b58/). If you would like to support the show, head over to our GitHub page (https://github.com/sponsors/thoughtbot), or check out our website (https://bikeshed.thoughtbot.com). Got a question or comment about the show? Why not write to our hosts: hosts@bikeshed.fm This has been a thoughtbot (https://thoughtbot.com/) podcast. Stay up to date by following us on social media - LinkedIn (https://www.linkedin.com/company/150727/) - Mastodon (https://thoughtbot.social/@thoughtbot) - Instagram (https://www.instagram.com/thoughtbot/) © 2024 thoughtbot, inc.

    449: Evergreen skills for new-ish developers

    Play Episode Listen Later Dec 3, 2024 37:41


    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 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, Stephanie and Joël tackle this topic by unpacking several key evergreen skills that will always be valuable, from reading error messages to deciphering a stack trace. They break down how new-ish developers can start acquiring these skills, key obstacles they're likely to encounter, and how to ask for help when you hit a block. Their conversation covers the ins and outs of debugging, how to feel comfortable in your editor as a new developer, the art of asking for help, and much more. They also share plenty of valuable tips to help you on your journey – including one that will help you commit more frequently. Tune in now to hear it all! Key Points From This Episode: Stephanie's time at the Ruby Conference in Chicago. The challenges of advising new-ish developers as an expert. Broad evergreen skills that are always valuable to learn. Tips on mastering debugging as a core skill. How to improve your ability to read error messages. Our approach to resolving errors and isolating what is wrong. Advice for learning to read a stack trace (even though it's intimidating). Strategies for fixing different types of bugs. The value of editor mastery and version history. Tips on how to commit more frequently as a new developer. Learning to ask for help when you hit a block. The art of structuring your questions when asking for help. Breaking down large tasks into smaller sections. Learning to find focus as a new developer. Links Mentioned in Today's Episode: What technologies should I learn? (https://thoughtbot.com/blog/what-technologies-should-i-learn) Debugging blog post series (https://thoughtbot.com/blog/tags/debugging-series-2021) Asking about solutions rather than problems (https://xyproblem.info/) The Bike Shed (https://bikeshed.thoughtbot.com/) Joël Quenneville on LinkedIn (https://www.linkedin.com/in/joel-quenneville-96b18b58/) Joël Quenneville on X (https://x.com/joelquen) Support The Bike Shed (https://github.com/sponsors/thoughtbot) Mailtrap (https://l.rw.rw/the_bike_shed) WorkOS (workos.com/)

    448: Other Uses for Tests

    Play Episode Listen Later Nov 26, 2024 33:42


    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 workflows. They also explain the balance between writing detailed tests for documentation and managing complex code, and how effective testing practices can help developers become more confident and informed in their work. Gain insights about the impact of test suites on team collaboration, code readability, and project handoffs, and discover how tests can provide a “living specification” that evolves with your application. Join us to learn how to make the most of your tests and unlock new ways to elevate your development process. Tune in now! How test suites can act as living documentation that changes with the codebase. Using tests to document complex code before handing off a project. How backfilling tests can reveal critical edge cases in legacy code. The benefits of tests for developers working with complex code areas. Why a balance between comprehensive coverage and “good enough” testing is essential. Challenges associated with reading tests as documentation in certain codebases. Techniques for improving the readability of test suites for documentation. Advantages of using tests as a tool for accountability in code reviews. The concept of test-first code reviews to improve understanding of pull requests. Links Mentioned in Today's Episode: Mailtrap (https://l.rw.rw/the_bike_shed) 'Unlock the value of tests in understanding your codebase' (https://thoughtbot.com/blog/unlock-the-value-of-tests-in-understanding-your-codebase) Good Enough Testing (https://goodenoughtesting.com/) 'RailsConf 2024: So writing tests feels painful. What now? by Stephanie Minn' (https://youtu.be/t5MnS20adG4) 'Algorithms we develop software by' (https://grantslatton.com/software-pathfinding#algorithms-we-develop-software-by) Exercism (exercism.io) WorkOS (https://workos.com/) The Bike Shed (https://bikeshed.thoughtbot.com/) Joël Quenneville on LinkedIn (https://www.linkedin.com/in/joel-quenneville-96b18b58/) Joël Quenneville on X (https://x.com/joelquen) Support The Bike Shed (https://github.com/sponsors/thoughtbot)

    447: How to (not) implement impersonation

    Play Episode Listen Later Nov 19, 2024 37:39


    For 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 impersonation, from how it can help with debugging and customer support to its prime drawbacks regarding security and auditing issues. Discover why the need for impersonation is often a sign of poor admin tooling, alternative solutions to true impersonation, and the scenarios where impersonation might be the most pragmatic approach. You'll also learn why they advocate for understanding the root problem and considering alternative solutions before implementing impersonation. Tune in today for a deep dive into impersonation and the best ways to use it (or not use it)!
 Key Points From This Episode: What's new in Stephanie's world: how Notion Calendar is helping her manage her schedule. Joël's quest to find a health plan: how he used a spreadsheet to compare his options. A client request to build an impersonation feature, and why Joël has mixed feelings about it. What an impersonation tool does: it allows you to take over someone's account. When it's useful to use implementation as a feature, like for debugging and support. Potential risks and responsibilities associated with impersonation. Why the need for impersonation often indicates poor admin tooling. Technical and security implications of impersonation. Solutions for logging the audit trail when you're doing impersonation. Differentiating between the logged-in user and the user you're rendering views for. Building an app that isn't as tightly coupled to the “current user.” Suggested alternatives to true impersonation. The value of cross-functional teams and collaborative problem-solving. Links Mentioned in Today's Episode: Mailtrap (https://l.rw.rw/the_bike_shed) Notion Calendar (https://www.notion.com/product/calendar) 'Implementing Impersonation' (https://jamie.ideasasylum.com/2018/09/29/implementing-impersonation) Sustainable Web Development with Ruby on Rails (https://sustainable-rails.com/) The Bike Shed (https://bikeshed.thoughtbot.com/) Joël Quenneville on LinkedIn (https://www.linkedin.com/in/joel-quenneville-96b18b58/) Joël Quenneville on X (https://x.com/joelquen) Support The Bike Shed (https://github.com/sponsors/thoughtbot) WorkOS (https://workos.com/)

    446: All about rewrites

    Play Episode Listen Later Nov 12, 2024 35:11


    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 make or break a rewrite, from balancing developer satisfaction with business value to managing stakeholder expectations when costs and timelines stretch unexpectedly. You'll hear about real-world rewrite pitfalls like downtime and reintroducing bugs, as well as strategies for achieving similar improvements through incremental changes or refactoring instead. If you're a developer or team lead considering a rewrite, this conversation offers a pragmatic perspective that could save your team time, effort, and potential setbacks. Tune in to learn how to make the best call for your codebase and find out when a rewrite might actually be necessary! Key Points From This Episode: Accessible selectors versus test IDs: best practices in Capybara and React Testing Library. Balancing test coverage with pragmatism and risk tolerance with Good Enough Testing. Software rewrites and the tough questions around deciding when they're necessary. The importance of prioritizing business value over frustrations with the current codebase. Drawbacks of rewrites, such as downtime, data loss, and reintroducing past bugs. Risks of “grass is greener” thinking and using mocked data in demos. Unrealistic expectations of full feature parity and why an MVP approach is better. How incremental refactoring can achieve similar goals to a complete rewrite. The appeal and hubris of a “fresh start” and why it's much more complex than that. Balancing innovation with practicality: ways to introduce new elements without rewriting. An example that illustrates when a rewrite might actually be necessary. Reasons that early prototypes and test builds are the best candidates for rewrites. Links Mentioned in Today's Episode: Matt Brictson: ‘Simplify your Capybara selectors' (https://mattbrictson.com/blog/simplify-capybara-selectors) React Testing Library Guidelines (https://testing-library.com/docs/queries/about/#priority) Capybara Accessibility Selectors (https://github.com/citizensadvice/capybara_accessible_selectors) Good Enough Testing (https://goodenoughtesting.com/) ‘RailsConf 2023: The Math Every Programmer Needs by Joël Quenneville' (https://youtu.be/fMetBx77vKY) ‘Testing Your Edge Cases' (https://thoughtbot.com/blog/testing-your-edge-cases) 'Working Iteratively' (https://thoughtbot.com/blog/working-iteratively) 'Technical Considerations to Help Scale Your Product' (https://thoughtbot.com/blog/technical-considerations-when-scaling-your-application) Dan McKinley: ‘Choose Boring Technology' (https://mcfunley.com/choose-boring-technology) The Bike Shed (https://bikeshed.thoughtbot.com/) Joël Quenneville on LinkedIn (https://www.linkedin.com/in/joel-quenneville-96b18b58/) Joël Quenneville on X (https://x.com/joelquen) Support The Bike Shed (https://github.com/sponsors/thoughtbot)

    445: Working Iteratively

    Play Episode Listen Later Oct 29, 2024 40:06


    Does having smaller, more frequent iterations help to ease your cognitive load? During this episode, we discuss the benefits and challenges of working iteratively and whether or not it can prevent costly errors. You'll hear about juggling individual pieces effectively, factors that incentivize and de-incentivize working iteratively, and how Joël gauges whether or not a project should be broken up into smaller tasks. It can be hard to adopt small iterations, and this conversation also touches on the idea of ‘good enough code' and discusses how agility can reduce the cost of making changes. Tuning in, you'll hear about some of the challenges of keeping up with changes as they evolve and why it is beneficial to do so. You will also be equipped with a thought experiment involving elephant carpaccio to build your understanding of working iteratively, explore the challenge of keeping up with evolving changes, and more. Thanks for listening. Key Points From This Episode: Stephanie shares a recent mishap that happened at work and what she learned from it. Unpacking pressures and other aspects that may have contributed to the error. Joël's recent travels and his fresh appreciation for fall. The cost of an incident occurring, how this increases, and the role of code review. Benefits and pitfalls of more regular code review. Why working with smaller chunks of work is helpful for Joël's focus. Juggling individual pieces effectively. Factors that de-incentivize working iteratively such as waiting on 24-hour quality control processes. How working iteratively can facilitate better communication. Why Joël feels that work that spans a few days should be broken up into smaller chunks. The idea of ‘good enough code'. How agility can reduce the cost of making changes. Using the elephant carpaccio exercise to bolster your understanding of working iteratively. The challenge of keeping up with changes as they evolve and why it is beneficial to do so. Involvement from the team and the capacity to change course. Links Mentioned in Today's Episode: Working Incrementally (https://bikeshed.thoughtbot.com/361) Working Iteratively (https://thoughtbot.com/blog/working-iteratively) Elephant Carpaccio Exercise (https://docs.google.com/document/u/1/d/1TCuuu-8Mm14oxsOnlk8DqfZAA1cvtYu9WGv67Yj_sSk/pub) The Bike Shed (https://bikeshed.thoughtbot.com/) Joël Quenneville on LinkedIn (https://www.linkedin.com/in/joel-quenneville-96b18b58/) Joël Quenneville on X (https://x.com/joelquen) Support The Bike Shed (https://github.com/sponsors/thoughtbot)

    444: From Solutions To Patterns

    Play Episode Listen Later Oct 15, 2024 34:58


    What's the difference between solving problems and recognizing patterns, and why does it matter for developers? In this episode, Stephanie and Joël discuss transitioning from collecting solutions to identifying patterns applicable to broader contexts in software development. They explore the role of heuristics, common misconceptions among junior and intermediate developers, and strategies for leveling up from a solution-focused mindset to thinking in patterns. They also discuss their experiences of moving through this transition during their careers and share advice for upcoming software developers to navigate it successfully. They explore how learning abstraction, engaging in code reviews, and developing a strong intuition for code quality help developers grow. Uncover the issue of over-applying patterns and gain insights into the benefits of broader, reusable approaches in code development. Join us to discover how to build your own set of coding heuristics, the pitfalls of pattern misuse, and how to become a more thoughtful developer. Tune in now! Key Points From This Episode: Stephanie unpacks the differences between patterns and solutions. The role of software development experience in recognizing patterns. Why transitioning from solving problems to recognizing patterns is crucial. Joël and Stephanie talk about the challenges of learning abstraction. Hear pragmatic strategies for implementing patterns effectively. How junior developers can build their own set of heuristics for code quality. Discover valuable tools and techniques to identify patterns in your work. Find out about approaches to documenting, learning, and sharing patterns. Gain insights into the process of refactoring a solution into a pattern. Outlining the common mistakes developers make and the pitfalls to avoid. Steps for navigating disagreements and feedback in a team environment. Links Mentioned in Today's Episode: RubyConf 2021 - The Intro to Abstraction I Wish I'd Received (https://www.youtube.com/watch?v=m0dC5RmxcFk) 'Ruby Science' (https://thoughtbot.com/ruby-science/introduction.html) Refactoring.Guru (https://refactoring.guru/) Thoughtbot code review guide (https://github.com/thoughtbot/guides/blob/main/code-review/README.md) The Bike Shed (https://bikeshed.thoughtbot.com/) Joël Quenneville on LinkedIn (https://www.linkedin.com/in/joel-quenneville-96b18b58/) Joël Quenneville on X (https://x.com/joelquen) Support The Bike Shed (https://github.com/sponsors/thoughtbot)

    443: Rails World and Open Source with Stefanni Brasil

    Play Episode Listen Later Oct 8, 2024 31:15


    Learning from other developers is an important ingredient to your success. During this episode, Joël Quenneville is joined by Stefanni Brasil, Senior Developer at Thoughtbot, and core maintainer of faker-ruby. To open our conversation, she shares the details of her experience at the Rails World conference in Toronto and the projects she enjoyed seeing most. Next, we explore the challenge of Mac versus Windows and how these programs interact with Ruby on Rails and dive into Stefanni's involvement in Open Source for Thoughtbot and beyond; what she loves about it, and how she is working to educate others and expand the current limitations that people experience. This episode is also dedicated to the upcoming Open Source Summit that Stefanni is planning on 25 October 2024, what to expect, and how you can get involved. Thanks for listening! Key Points From This Episode: Introducing and catching up with Thoughtbot Senior Developer and maintainer of faker-ruby, Stefanni Brasil. Her experience at the Rails World conference in Toronto and the projects she found most inspiring. Why accessibility remains a key topic. How Ruby on Rails translates on Mac and Windows. Stefanni's involvement in Open Source and why she enjoys it. Her experience as core maintainer at faker-ruby. Ideas she is exploring around Jeremy Evans' book Polished Ruby Programming and the direction of Faker. Involvement in Thoughtbot's Open Source and how it drew her in initially. The coaching series on Open Source that she participated in earlier this year. What motivated her to create a public Google doc on Open Source maintenance. An upcoming event: the Open Source Summit. The time commitment expected from attendees. How Stefanni intends to interact with guests and the talk that she will give at the event. Why everyone is welcome to engage at any level they are comfortable with. Links Mentioned in Today's Episode: Stefanni Brasil (https://www.stefannibrasil.me/) Stefanni Brasil on X (https://x.com/stefannibrasil) Thoughtbot Open Summit (https://thoughtbot.com/events/open-summit) Open Source Issues doc (https://docs.google.com/document/d/1zok6snap6T6f4Z1H7mP9JomNczAvPEEqCEnIg42dkU4/edit#heading=h.rq72izdz9oh6) Open Source at Thoughtbot (https://thoughtbot.com/open-source) Polished Ruby Programming (https://www.packtpub.com/en-us/product/polished-ruby-programming-9781801072724) Faker Gem (https://github.com/faker-ruby/faker) Rails World
 (https://rubyonrails.org/world/) The Bike Shed (https://bikeshed.thoughtbot.com/) Joël Quenneville on LinkedIn (https://www.linkedin.com/in/joel-quenneville-96b18b58/)

    442: Paradigms - What is a Program?

    Play Episode Listen Later Oct 1, 2024 42:22


    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 understand how things change once you develop an awareness of your paradigm, and what. To kick off this episode, Stephanie shares key insights she took from Planet Argon's 2024 Ruby on Rails survey and dives deeper into her history with Ruby on Rails. Next, we dive into the definition of a paradigm and unpack three different paradigms you might hold as a developer: procedural, object-oriented, and functional. Considering how each of these impacts the way that you might approach your work as a developer, and what you can learn from the ones that are less familiar to you. Joël describes his scripting style and evaluates the concept of pure functions and their place in development, and we close by digging deeper into how your paradigm might impact the code that you write. Tune in to hear all this and more. Key Points From This Episode: The EPI feature that Joël has started to build out for his client. Why Stephanie is excited about the results of Planet Argon's 2024 Ruby on Rails community survey. What a procedural program is: programming envisions a program as a series of instructions to a computer. Defining an object-oriented paradigm: programming envisions a program as the behavior that emerges from objects talking to each other. How a functional paradigm envisions a program as a series of data transformations. Alan Turing and Alonzo Church's approach to understanding this. How a lot of the foundations of computer science came to be built before we had computers. Using Ruby to make judgments and assessing whether or not this is a procedural habit. Why Joël describes his scripting style as being very procedural. Unpacking the meaning of functional programming. Evaluating the concept of pure functions. Considering how your paradigm may impact the Ruby code that you write. Links Mentioned in Today's Episode: 2024 Ruby on Rails Community Survey (https://railsdeveloper.com/survey/2024/) Church-Turing Thesis (https://ocw.mit.edu/courses/24-242-logic-ii-spring-2004/489f7e42fb619645158d7c21a8fb83ad_chuh_trng_thesis.pdf) Dynamic type systems are not inherently more open (https://lexi-lambda.github.io/blog/2020/01/19/no-dynamic-type-systems-are-not-inherently-more-open/) What is Functional Programming? (blog.jenkster.com/2015/12/what-is-functional-programming.html) Blocks as an abstraction vs for loops (https://thoughtbot.com/blog/special-cases) Functional core imperative shell (https://www.destroyallsoftware.com/screencasts/catalog/functional-core-imperative-shell) Testing objects with a functional mindset
 (https://thoughtbot.com/blog/functional-viewpoints-on-testing-objectoriented-code) The Bike Shed (https://bikeshed.thoughtbot.com/) Joël Quenneville on LinkedIn (https://www.linkedin.com/in/joel-quenneville-96b18b58/) Support The Bike Shed (https://github.com/sponsors/thoughtbot)

    441: The Pickaxe Book with Noel Rappin

    Play Episode Listen Later Sep 24, 2024 39:44


    For a long time, Programming Ruby was the authority in the developing world. Now, a much-needed update has been published. During this conversation, we are joined by Noel Rappin, who shares how his frustration at the idea of static type in Ruby motivated him to investigate why he felt this way, as he published his findings in The Pickaxe Book. We discuss how this book differs from previous material he has published, explore a recent blog post series that explored the idea of failing fast, and address the widespread opinion that developers should take a simpler approach that is more accessible. Noel also explores the responsibility of understanding how readers consume material and the importance of providing thorough context as an author, how Programming Ruby became the most significant programming reference, and the surprising journey that led Noel to realize he was able to provide an updated version of the theory in it. Next, we dive into some of the more opinionated blog posts Noel has posted and the harshest feedback he has received in response to them. You'll also hear about his research and learning during the act of writing the book. Join us today to hear all this and more. Key Points From This Episode: Noel Rappin's recently published work, The Pickaxe Book, on current versions of Ruby. The inception of the book during discussions about the collision of Sorbet and Ruby. How his background made him comfortable with the idea that there are no static types. A recent blog post series and how it answered a question about failing fast. Considering whether developers pursue simpler things that are more accessible to a wider range of coders. The problem of thoroughness and longevity in writing instructional material. Developing awareness of how readers consume and contextualize theory and opinion. How Programming Ruby became the most significant programming reference. Noel's updated version of this material in his latest book. His blog posts on real-life applications of Ruby and the feedback he receives. How he goes about framing blog posts as opinion or instruction. Determining what community consensus is. The bewilderment that often accompanies onboarding sessions. Research and learning leading up to writing and publishing the book. Feedback and reviews on the book. Links Mentioned in Today's Episode: Noel Rappin (Noel Rappin) Noel Rappin on X (Noel Rappin on X) Programming Ruby (Programming Ruby) How Not to Use Static Typing in Ruby (How Not to Use Static Typing in Ruby) David Copeland Talk (David Copeland Talk) Better Know a Ruby Thing (Better Know a Ruby Thing) How To Manage Duplicate Test Setup, Or Can I Interest You in Weird RSpec? (How To Manage Duplicate Test Setup, Or Can I Interest You in Weird RSpec?) Better Know a Ruby Thing: On The Use of Private Methods (Better Know a Ruby Thing: On The Use of Private Methods) Standardrb (Standardrb) Rails Test Prescriptions (Rails Test Prescriptions) Programming Ruby: A Pragmatic Programmer's Guide (Programming Ruby: A Pragmatic Programmer's Guide) The Bike Shed (The Bike Shed) Joël Quenneville on LinkedIn (Joël Quenneville on LinkedIn) Support The Bike Shed (Support The Bike Shed)

    440: When we stray from Rails defaults

    Play Episode Listen Later Sep 17, 2024 42:56


    When does it make sense to step away from Rails conventions? What are the limits of convention over configuration? While Rails conventions provide a solid foundation, there are times when customization is necessary to meet specific project needs. In this episode, Joël and Stephanie dive into the tradeoffs of breaking away from Rails defaults. They explore the limits of convention over configuration and share their experiences with customizing beyond the typical Rails setup. Joël offers insights from a recent project where the client opted for all dry-rb objects, and they unpack the benefits and potential challenges of this approach. Stephanie talks about why people tend to shy away from certain Ruby features and her lessons regarding leveraging callbacks for code development. Explore different testing frameworks, the situations when following Ruby defaults is better, the benefits of the ActiveModel ecosystem, and more! Whether you are a Rails purist or looking to bend the rules, this episode will help you understand the pros and cons of stepping outside the Ruby on Rails box. Don't miss it! Key Points From This Episode: Joël shares details about a large-scale refactoring initiative he has been working on. Stephanie's recent legacy-code production problem and lessons from her experience. What Joël would have done differently when building his refactoring initiative. The problems of renaming background applications during code development. Why the open-close principle is valuable for making class changes to a system. Reasons that a migration strategy is vital for navigating new and legacy code. Explore approaches for overcoming synchronization issues between systems. Learn about the concept of connascence for coupling systems together. Considerations for using asynchronous tools with a connascence approach. Practical ways to maintain naming consistency during code development. The importance of differentiating between web and business-logic layers. Situations where relying on callbacks for connascence becomes problematic. Other issues that callback problems can reveal during code development. Joël unpacks the scenarios where he deviates from the Ruby on Rails standard. Frameworks for testing code and final takeaways from Joël and Stephanie. Links Mentioned in Today's Episode: 'Refactoring Legacy Code with the Strangler Fig Pattern' (https://shopify.engineering/refactoring-legacy-code-strangler-fig-pattern) Connascence of Name (CoN) (https://thoughtbot.com/blog/connascence-as-a-vocabulary-to-discuss-coupling#connascence-of-name-con) ActiveModel docs (https://guides.rubyonrails.org/active_model_basics.html) GitHub | activemodel (https://github.com/rails/rails/tree/main/activemodel) 'Vanilla Rails is plenty' (https://dev.37signals.com/vanilla-rails-is-plenty/) GitHub | minitest (https://github.com/seattlerb/minitest) GitHub | test-unit (https://github.com/test-unit/test-unit) Episode 435: Cohesive Code with Jared Norman (https://bikeshed.thoughtbot.com/435) Ruby on Rails
The Bike Shed (https://rubyonrails.org) Joël Quenneville on LinkedIn (https://www.linkedin.com/in/joel-quenneville-96b18b58/) Support The Bike Shed (https://github.com/sponsors/thoughtbot)

    439: Async Ruby & Rails with Trevor Turk

    Play Episode Listen Later Sep 10, 2024 34:11


    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 (https://www.linkedin.com/in/trevorturk/) Trevor Turk on X (https://x.com/trevorturk) Trevor Turk on Threads (https://www.threads.net/@trevorturk) Hello Weather (https://helloweather.com/) Weather Machine (https://weathermachine.io) GitHub | async gem (https://github.com/socketry/async) GitHub | falcon gem (https://github.com/socketry/falcon) 'Async Ruby on Rails' (https://thoughtbot.com/blog/async-ruby-on-rails) load_async (https://api.rubyonrails.org/classes/ActiveRecord/Relation.html#method-i-load_async) Episode 437: Contributing to Open Source in the Midst of Daily Work with Steve Polito (https://bikeshed.thoughtbot.com/437) GitHub | Action Cable server adapter (https://github.com/rails/rails/pull/50979) ActiveRecord connection checkout caching (https://github.com/rails/rails/pull/50793) Ruby on Rails
The Bike Shed (https://rubyonrails.org/) The Bike Shed (https://bikeshed.thoughtbot.com/) Joël Quenneville on LinkedIn (https://www.linkedin.com/in/joel-quenneville-96b18b58/) Support The Bike Shed (https://github.com/sponsors/thoughtbot)

    438: Writing abstractions in tests

    Play Episode Listen Later Sep 3, 2024 49:08


    Writing abstractions in tests can be surprisingly similar to storytelling. The most masterful stories are those where the author has stripped away all of the extra information, and given you just enough knowledge to be immersed and aware of what is going on. But striking that balance can be tricky, both in storytelling and abstractions in tests. Too much information and you risk overwhelming the reader. Too little and they won't understand why things are operating the way they are. Today, Stephanie and Joël get into some of the more controversial practices around testing, why people use them, and how to strike the right balance with your information. They discuss the most common motivations for introducing abstractions, from improved readability to simplifying the test's purpose and the types of tests where they are most likely to introduce abstractions. Our hosts also reflect on how they feel about different abstractions in tests – like custom matchers and shared examples – outlining when they reach for them, and the tradeoffs and benefits that come with each. To learn more about how to find the perfect level of abstraction, be sure to tune in! Key Points From This Episode: What's new in Joël's world; mocking out screens for processes or a new bit of UI. The new tool Stephanie's using for reading on the web: Reader by Readwise. Today's topic: controversial practices around testing. How Stephanie and Joël feel about looping through arrays and having IT blocks for each. The most common motivations for introducing abstractions or helper methods into your tests. Pros and cons of factories as abstractions in testing. Types of tests where Joël and Stephanie are more likely to introduce abstractions. Using page objects in system tests to improve user experience. Finding the balance between too little and too much information with abstraction in testing. Why Stephanie has been enjoying fancier matchers like RSpecs. Top uses of custom matchers, especially for specialized error messaging. Why Stephanie prefers custom matchers over shared examples. Using helper methods as a lighter version of abstraction. Differences and similarities between abstractions in tests versus application code. A reminder to keep your goals in mind when using abstraction. Links Mentioned in Today's Episode: Reader by Readwise (https://readwise.io/read) Why factories (https://thoughtbot.com/blog/why-factories) Why not factories (https://thoughtbot.com/blog/speed-up-tests-by-selectively-avoiding-factory-bot) Capybara at a single level of abstraction (https://thoughtbot.com/blog/acceptance-tests-at-a-single-level-of-abstraction) Writing custom RSpec matchers (https://thoughtbot.com/blog/acceptance-tests-at-a-single-level-of-abstraction) Value objects shared examples (https://thoughtbot.com/blog/value-object-semantics-in-ruby) 'DRY is about knowledge' (https://verraes.net/2014/08/dry-is-about-knowledge/) Joël Quenneville on LinkedIn (https://www.linkedin.com/in/joel-quenneville-96b18b58/)

    437: Contributing to Open Source in the Midst of Daily Work with Steve Polito

    Play Episode Listen Later Aug 27, 2024 35:28


    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
The Bike Shed Joel Quenneville on LinkedIn Support The Bike Shed

    436: Creating Conditions For Your Best Work with Steph Viccari

    Play Episode Listen Later Aug 13, 2024 43:09


    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'
The Bike Shed Joel Quenneville on LinkedIn Support The Bike Shed

    435: Cohesive Code with Jared Norman

    Play Episode Listen Later Jul 30, 2024 28:45


    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
The Bike Shed Joel Quenneville on LinkedIn Support The Bike Shed

    434: Git and GitHub Workflows

    Play Episode Listen Later Jul 23, 2024 47:42


    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 Shed

    433: Riffing with Kasper Timm Hansen

    Play Episode Listen Later Jul 16, 2024 37:20


    Have you ever wondered how improvisation can revolutionize coding? In today's episode, Stephanie sits down with Kasper Timm Hansen to discuss his innovative “riffing” approach to code development. Kasper is a long-time Ruby developer and former member of the Rails core team. He focuses on Ruby and domain modeling, developing various Ruby gems, and providing consulting services in the developer space. He has become renowned for his approach of “riffing” to software development, particularly in the Ruby on Rails framework. In our conversation, we delve into his unique approach to coding, how it differs from traditional methods, and the benefits of improvisation to code development. Discover the “feeling” part of riffing, the steps to uncovering relationships between models, and why it is okay not to know how to do something. Explore how riffing enhances collaboration, improves communication with and between teams, identifies alternative code, why “clever code” does not make for good solutions, and much more! Tune in to learn how to take your coding skills to the next level and uncover the magic of riffing with Kasper Timm Hansen! Key Points From This Episode: Introduction to Kasper, his background in Ruby, and experience as a consultant. An overview of his RailsConf 2024 presentation on domain modeling. His motivation behind his presentation and the overall reception of the concept. Unpack the concept of “riffing” with code as a developer. Insights into his methodology and how it differs from traditional approaches. Examples of “riffing" and how it benefits the development process. How he determines the best code to implement during his process. Kasper shares how he frames problems and builds solutions. Ways riffing highlights gaps in skillsets early in the development process. Hear about the various ways riffing fosters and improves collaboration. Unpack how riffing can help developers communicate more effectively. Balancing the demands of code review with the riffing approach. Final takeaways for listeners and how to contact Kasper to begin riffing! Links Mentioned in Today's Episode: Kasper on Github (https://github.com/kaspth), Mastodon (https://ruby.social/@kaspth), LinkedIn (https://www.linkedin.com/in/kasper-timm-hansen-33b151314/), and X (https://twitter.com/kaspth) Riffing on Rails RailsConf talk (https://www.youtube.com/watch?v=vH-mNygyXs0) and slides (https://speakerdeck.com/kaspth/railsconf-2024-riffing-on-rails-sketch-your-way-to-better-designed-code) Riffing on Spotify's generated mixes (https://www.youtube.com/watch?v=i1MM2EOniPg) with Jeremy Smith Modeling a Kanban board with riffing (https://buttondown.email/kaspth/archive/how-to-approach-modelling-a-kanban-board-in-rails/) Some of Kasper's open source work: * ActiveRecord Associated Object (https://github.com/kaspth/active_record-associated_object) * ActiveJob Performs (https://github.com/kaspth/active_job-performs) * Oaken (https://github.com/kaspth/oaken)

    Claim The Bike Shed

    In order to claim this podcast we'll send an email to with a verification link. Simply click the link and you will be able to edit tags, request a refresh, and other features to take control of your podcast page!

    Claim Cancel