

The Bike Shed
thoughtbot
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.
Episodes
Mentioned books

Apr 19, 2019 • 37min
195: WebAssembly & WASI (Lin Clark & Till Schneidereit)
On this week's episode, Chris is joined by Lin Clark and Till Schneidereit of Mozilla to discuss all things WebAssembly. Lin and Till are helping to lead the development and advocacy around WebAssembly and in this conversation they discuss the current state of WASM, new developments like the WebAssembly System Interface (WASI), and the longer term possibilities and goals for WASM.
Lin Clark
Till Schneidereit
Code Cartoons
WebAssembly
Rust
TC39 JavaScript committee
W3C
WebAssembly WebIDL
Rust wasm toolchain
Babel
Emscripten
Asm.js
Figma
WASI Web Assembly System Interface
wasmtime
Fastly CDN
Lucet - Fastly's WASM Runtime
Solomon Hykes tweet re: Docker & WASM+WASI
The Birth & Death of JavaScript
Lin’s post on Post MVP future for WASM
Mozilla hacks blog
WebAssembly's Post MVP Future talk by Lin Clark and Till Schneidereit
Support The Bike Shed

Apr 12, 2019 • 47min
194: My PGP Shame
On this week's episode, Chris is joined by Mike Burns, developer in our New York studio, to discuss the ins and outs of application security. Mike recently added a comprehensive Application Security Guide to the thoughtbot guides, and in this chat they discuss some of the high points of the guide, some of the low points of common security holes, and some of the fantastically specific workflows and approaches Mike has for his personal information and security management.
Mike Burns on Mastodon
Mike Burns on the thoughtbot blog
Application Security Guide
YAML
JSON
TOML
Bcrypt
Scrypt
TLS Handshake explained with paint colors
NIST - Digital Identity Guidelines
Clearance
DKIM & SPF for email verification
PGP Signing of Emails
PGP Signing git Commits
Facebook Stored Millions Of Passwords In Plaintext
PhishMe (now Cofense)
Mutt email client
YubiKey
Pass
pwgen
LastPass
Perfect Forward Secrecy
Tarsnap
Support The Bike Shed

Apr 5, 2019 • 48min
193: A Thing I Know Almost Nothing About
On this week's episode, Chris is joined by Edward Loveall, former thoughtbot design apprentice and now thoughtbot developer. After a quick chat about Edward's thoughtbot origin story, podcasts, and DNS, they dig into the heart of the conversation talking about their respective "must have" developer tools on new machines.
edwardloveall.com
thoughtbot apprenticeship
Domain Name Sanity
Heroku
DNSimple
Amazon Route53
Giant Robots podcast
Edward's episode on Giant Robots talking about the apprenticeship
Tweet about using a podcast as internal onboarding
Hammerspoon
Slate
Spectacle
Divvy
Vim
Tmux
VSCode Live share
tmate
Alfred
Alfred clipboard
AppleScript
Arch Linux
Jeff Goldblum iMac Commercials
Feedly
Feedbin
ReadKit
JSON Feed
CSS & Privacy - Why can’t I set the font size of a visited link?
Lobsters
Thank you to CircleCI for sponsoring this episode.Support The Bike Shed

Mar 29, 2019 • 34min
192: I Don't Want to Think That Hard
On this week's episode, Chris is joined by Sid Raval, developer in our New York studio. Chris and Sid chat about functional programming, strong types, and accessibility. Along the way they touch on TypeScript, Haskell, Scala, Elm, and plenty in between. They round out the conversation with a discussion around accessibility and developer tools.
Ruby
Haskell
Scala
Elm
GHCJS
Reflex (frp library for Hasekll)
Scala.js
TypeScript
How Elm Slays a UI Antipattern
RemoteData library in Elm
Sid's blog post on gradually adding flow
QuickCheck library for haskell
Sorbet - Ruby static type annotations
Sids' blog post - Grouping elements for better accessibility
Thank you to CircleCI for sponsoring this episode.Support The Bike Shed

Mar 22, 2019 • 40min
191: Open Source is Created By Humans (Devon Zuegel)
Chris is joined by Devon Zuegel who recently joined GitHub in the new Open Source Product Manager role. Devon and Chris discuss the complexities inherent to open source including funding models, managing motivation and burnout, different open source models, and end with a discussion around how we can be better open source citizens, both as consumers and maintainers.
Devon on Twitter
Devon's Blog
Nadia Eghbal - Roads and Bridges: The Unseen Labor Behind Our Digital Infrastructure
Patreon
Sindre Sorhus on Patreon
Open Collective
ESLint on Open Collective
Webpack on Open Collective
Babel on Open Collective
Sidekiq Pro
GraphQL Pro
GitHub related issues
Clojure
Rich Hickey
Elm
Evan Czaplicki
Matz replies to post around Ruby moving slowly
Open Source Maintainers Group on GitHub
Thank you to CircleCI for sponsoring this episode.Support The Bike Shed

Mar 15, 2019 • 52min
190: Going Steady With a Platform
On this week's episode, Chris is joined by Alex Sullivan, mobile developer in our Boston office. Alex takes Chris on a tour of the mobile landscape comparing the core native platforms (Android and iOS), the languages, developer tooling and IDEs, and fundamental thinking. They also dip into a discussion around React Native highlighting some of its strengths, as well as areas where native still clearly wins. Finally they touch on Flutter, the newest entrant into the mobile space to round out the discussion.
Runkeeper
Android
iOS
ViewModel
Room
Java
Kotlin
Objective C
Swift
Scala
JetBrains
Type erasure
Reified types
Android Studio
Xcode
AppCode
Gary Bernhardt
React Native
Xamarin
Flutter
Dart
Alex's post comparing performance of native, Flutter, and React Native
Thank you to CircleCI for sponsoring this episode.Support The Bike Shed

Mar 1, 2019 • 42min
189: It's Gonna Work, Definitely, No Problems Whatsoever
On this week's episode, Chris is joined by Steph Viccari to chat about Steph's recent experience working on the Hubspot API ruby wrapper as a client project. They discuss strategies for testing third-party APIs, focusing on VCR and some of the benefits and trade-offs inherent to that style of API testing. Following that they chat about using exceptions for control flow, digging into why this seems to be a common pattern in Ruby API wrappers, what the alternatives are, and even a quick tour to React-land where this pattern is being used for interesting effect.
Hubspot ruby gem
VCR
Cucumber
Mystery Guests
Rspec mocks
Faking APIs in Development and Staging
Capybara Discoball
Upcase - Testing Third Party APIs
Fake stripe
Principle of least surprise
Time boxing
JavaScript Promises
React.Suspense
Dan Abramov Introducing React Suspense at JSConf Iceland
Support The Bike Shed

Feb 22, 2019 • 38min
188: A Function by Any Other Name
On this week's episode, Chris is joined by German Velasco for a conversation
that fully lives up to the name of the show with plenty of opinions and
impressively deep dives on topics that folks outside the world of programming
would never think could warrant this much discussion.
How much duplication should we have? Is there such a thing as too DRY? Is there
ever a need for code comments, really? Lest you worry that Chris & German spend
the whole episode just volleying opinions, have no fear: the episode is balanced
out with plenty of pointed suggestions and useful anecdotes to make sure
everyone will enjoy it.
Netlify
Middleman
Pragmatic Programmer
Apollo CLI - codegen
"Duplication is far cheaper than the wrong abstraction" - Sandi Metz
German's Post on Writing a Good Commit Message
German's Post on Git Blame
Elixir first class documentation doctag
Doctest in elixir
Doctest in python
Support The Bike Shed

Feb 15, 2019 • 42min
187: Convincing People Not to Build Software
On this week's episode, Chris is joined by Matt Sumner, development director in our Boston Studio. Chris & Matt start with a quick update on Matt's crypto adventures, and then transition to the core of the conversation as Matt describes the past few weeks of starting a new project and all the decisions that come with that.
The project kicked off with a product design sprint to help determine the initial direction for MVP. From there, Matt describes some of the thinking that went into the technology choices for the app, as well as describing his experience thus far working in a novel ecosystem for him with Scala & GraphQL.
Product Design Sprint
Design Sprint - 5 Phase Breakdown
Swift
GraphQL
GraphQL Ruby Pro
Pundit
CanCanCan
Scala
Eslint
Typescript
Sangria GraphQL
Play Web Framework
Http4s
Doobie
Postgres enums
Administrate
All the Little Things by Sandi Metz "Squint Test"
Support The Bike Shed

Feb 1, 2019 • 38min
186: Let's Duplicate Stuff
On this week's episode, Chris is joined by Daniel Colson, developer in our New York studio and current maintainer of all things FactoryBot. Chris & Daniel discuss Daniel's work as maintainer of one of thoughtbot's most popular open source projects and some of the parallels to thoughtbot's consulting work. They then discuss a bit more on the specifics of FactoryBot and what's in store for upcoming versions.
To round out the conversation Daniel and Chris also dig into some of the testing related best practices and patterns common to thoughtbot projects, linting and formatting tools, and even dip into the age old discussion around single quotes vs double quotes (just a tiny bit).
factory_bot
factory_bot_rails
How to be an open source gardener
Mystery Guest
Let's Not
"What's the most painful thing you've ever had to do with RSpec?"
Standard - Ruby style guide, linter, and formatter
Prettier - opinionated code formatter
Rufo
Speed Up Tests by Selectively Avoiding Factory Girl
Thank you to One Month for sponsoring this episode.Support The Bike Shed