The Bike Shed
386: Value Objects Revisited: The `Tally` Edition
May 31st, 2023 | 41 mins 8 secs
If you're in the market for bicycle shorts, Joël's got you. Stephanie just returned from RubyKaigi in Japan and shares details of her trip.
Recently at thoughtbot, there have been conversations around an interesting data modeling exercise. Joël and Stephanie discuss the following:
- Value Objects vs. Hashes
- Doing Math on Compound Numbers
- Monoids and Folding
- Naming Concepts in Code
385: The Boring Parts of Tech
May 23rd, 2023 | 24 mins 41 secs
Joël is joined by thoughtbot Software Developer and Dirt Jumper Daniel Nolan. Dirt jumping is BMX-style riding 🏍️ with really enormous dirt jumps.
But for a person who loves excitement in his spare time, for Daniel at work, it's not the new and shiny that interests him. When he dives into something, the "boring" parts of tech are what he finds most fulfilling. He wants to know the "why," and in this conversation, he explains how it sustains his career.
384: Not All Numbers Are Numbers
May 16th, 2023 | 37 mins 56 secs
Joël gives a recap after attending RailsConf 2023 in Atlanta, Georgia (and yes, there was karaoke! 🎤 🎶). Stephanie plugs the The Tightly Coupled Book Club Podcast from friends and fellow thoughtboters Aji and Mina Slater where they're reading The Rails Guides from cover to cover and treating it like a book club and having a discussions about the documentation as they read it together.
Stemming from a Twitter thread by Joël, their main topic focuses on not all numbers being numbers. So: if someone is submitting a phone number through a form:
- How would you store that in the database?
- Would you store it as a string? Because sometimes it comes with some extra formatting.
- Would you normalize it and try to store it as an integer because it's a number?
Thoughts, Dear Listener?
383: Code as Storytelling with Nicole Zhu
May 9th, 2023 | 43 mins 2 secs
Engineering manager at Vox Media and author Nicole Zhu joins Stephanie on today's episode to discuss her writing practice.
nicoledonut is a biweekly newsletter about the writing process and sustaining a creative life that features creative resources, occasional interviews with creative folks, short essays on writing and creativity, farm-to-table memes and TikToks, and features on what Nicole is currently writing, reading, and watching.
382: Domain-Specific Languages
May 2nd, 2023 | 36 mins 9 secs
Joël has been integrating a third-party platform into a testing pipeline...and it has not been going well. Because it's not something she usually keeps up-to-date with, Stephanie is excited to learn about more of the open-source side of things in Ruby, what's new in the Ruby tooling world, and what folks are thinking about regarding the future of the language.
Today's topic is inspired by an internal thoughtbot Slack thread about writing a custom matcher for Rspec. Stephanie and Joël contrast DSLs vs. Object APIs and also talk about:
- CanCanCan vs Pundit
- RSpec DSL
- When is a DSL helpful?
- Why not use both DSLs & Object APIs?
- When does a DSL become a framework?
381: To TDD or Not to TDD?
April 25th, 2023 | 40 mins 58 secs
It's gardening season! Stephanie swaps seeds with friends and talks about her Chicago garden. Joël recently started experimenting with a dedicated bookmark manager.
They discuss the aspirational (and sometimes dogmatic) sides of TDD and explore when to test: first or after.
How does that affect the tests?
How does that affect the code?
How does that affect workflow?
Are you a "better" programmer because you 100% TDD?
380: Remote Work Life
April 18th, 2023 | 32 mins 19 secs
Joël has been working on his RailsConf talk about various aspects of discrete math useful in day-to-day work as a developer and going deep on some concepts from propositional logic and Boolean algebra, particularly DeMorgan's Laws, which explain how to negate a compound condition. Stephanie attended a meeting with a fun "Spicy Takes" topic. She gave a short talk on how frictionless technology may not be the best path forward and tried to argue in favor of more friction in our software.
Together, they talk about ways they've made remote work work for them and things they'd like to try/do differently.
379: Feature Flags
April 11th, 2023 | 41 mins 56 secs
Joël submitted a last-minute submission to RailsConf discreet math, which got picked up! 🎉 He'll be speaking at RailsConf 2023 in Atlanta at the end of April about why it's relevant to developers and all the different practical ways he uses it daily.
Stephanie recommends headlamps for in-bed reading sessions and sets up the feature flags topic for today based on a project that must be released to the public in one go.
378: Leadership and Impact as an Individual Contributor
April 4th, 2023 | 38 mins 16 secs
Today's episode is "Old News"! Stephanie shares her ergonomic desk setup. Joël talks about the pyramids.
Another old thing is the Bike Shed episode two weeks ago about success and fulfillment. Stephanie and Joël realized off-mic that one area they didn't really talk about so much is impact, and that is something that is very fulfilling for both of them. Today, they talk about impact and leadership as individual contributors because leadership is typically associated with management. But they believe that as ICs, at any level, you can be displaying attributes of leadership and show up in that way on teams.
377: Error Handling
March 28th, 2023 | 45 mins 6 secs
Joël is a mentor for RailsConf and got matched with a speaker. Stephanie has been having trouble stepping away from her work. It's frustrating when chasing down a bug because something's gone wrong, and you spend a whole afternoon figuring out where it is. Joël and Stephanie discuss error handling as a possible solution.
376: Success and Fulfillment
March 21st, 2023 | 41 mins 3 secs
Stephanie has a win and a gripe from her client project this week. In a previous episode, Joël talked about his work exploring how to model dependent side effects, particularly D&D dice rolls. He went from the theoretical to the practical and wrote up a miniature D&D damage dice roll app that you put in a few inputs. Then it will roll all the dice necessary and tell you did you successfully hit your target and, if so, how much damage you did.
Together, they discuss how they think about fulfillment at work and what brings them fulfillment as developers.
375: Deleting Code
March 14th, 2023 | 31 mins 19 secs
The idea of deleting code has been swimming around in Stephanie's brain recently because she's been feeling nervous about it. Together, Joël and Stephanie explore ways of gaining confidence to delete code while feeling good about it.
374: Discrete Math
March 7th, 2023 | 30 mins 54 secs
Joël is joined by a very special guest, Sara Jackson, a fellow Software Developer at thoughtbot.
A few episodes ago, Stephanie and Joël talked about "The Fundamentals" and how many of the fundamentals of web development line up with a Computer Science degree. Joël made a comment during that episode that his pick for the most underrated CS class that he thinks would benefit most devs is a class called
"Discrete Math." Sara weighs in!
373: Empathy, Community and Gender Bias in Tech with Andrea Goulet
February 28th, 2023 | 42 mins 21 secs
Stephanie is joined today by a very special guest, Andrea Goulet. Andrea founded Empathy In Tech as part of writing her book Empathy-Driven Software Development. She's also the founder of the community Legacy Code Rocks and the Chief Vision Officer of two companies: Corgibytes and Heartware (which provides financial support to keep Empathy In Tech running).
Stephanie has strong opinions about the concept of "Makers and Menders" that the Corgibytes folks have written/spoken about, especially around those personas and gender stereotypes. Andrea joins Steph to evolve the conversation and add nuance to the discussion about legacy code/maintenance in our community.
372: Onboarding (Well!) Onto a Project
February 21st, 2023 | 37 mins 37 secs
Stephanie raves about more software development-related zines by Julia Evans. Joël has been thinking about the mechanics of rolling dice.
Stephanie also started on a new client project that Joël has already been working on for many months. They talk about onboarding.
371: The "Fundamentals"
February 14th, 2023 | 36 mins 32 secs
Joël has been fighting autoloading in a Rails app recently, and it's been really unpleasant. Stephanie has been experimenting with how she interacts with Slack.
What are "the fundamentals"? People often argue for the value of Computer Science classes for the jobbing programmer because we need "the fundamentals." But what are they? And does CS really provide that for us?