On The Bike Shed, hosts Joël Quenneville and Stephanie Minn discuss development experiences and challenges at thoughtbot with Ruby, Rails, JavaScript, and whate...
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/)
--------
37:41
448: Other Uses for Tests
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)
--------
33:42
447: How to (not) implement impersonation
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/)
On The Bike Shed, hosts Joël Quenneville and Stephanie Minn discuss development experiences and challenges at thoughtbot with Ruby, Rails, JavaScript, and whatever else is drawing their attention, admiration, or ire this week.