

The Bike Shed
thoughtbot
On The Bike Shed, hosts Joël Quenneville, Sally Hall, and Aji Slater 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

Nov 16, 2018 • 39min
178: Friday is For Spikes
On this episode of the Bike Shed Chris is joined by Derek Prior, former
thoughtbotter and previous host of this very podcast. Derek has recently moved
on from thoughtbot to try out a new role as an engineering manager at GitHub.
During their conversation they talk about Derek's experience shipping the
"Suggested Changes" feature on github.com, and the MVP process Derek brought to
the planning and development of the feature. They also touch on the architecture
of GitHub and where services and monoliths fit in the world of larger systems
like GitHub. Lastly they discuss Chris & Derek's respective transitions into
more roles with a bit less code and a bit more management. As usual, this one
has a little bit of everything!
Suggested Changes feature
GitHub Universe
GitHub Actions
Project Papercuts at GitHub
Are Services the New Rewrite Bike Shed Episode
GitHub Scientist
Be Plucky Manager Training
Support The Bike Shed

Nov 9, 2018 • 32min
177: Tricking Computers Into Doing Things
On this episode of the Bike Shed, Chris is joined by Christina Entcheva, developer from thoughtbot's New York studio who has been a product manager and designer previously in her career, but has since settled in to her role as a developer.
Chris & Christina share a conversation ranging from their shared love of "boring Rails apps", Christina's recent work with headless CMSs like Contentful & Prismic, and a discussion around Rails performance. Throughout the conversation they touch on theme's of keeping a focus on user needs throughout the work of developing applications.
Contentful
Prismic
Essential Scala book
Nate Berkopec
The Complete Guide to Rails Performance
Mark/Compact GC in MRI - Aaron Patterson
Benchmark module in Ruby
Postgres Table Partitioning
Getting Real book by Basecamp
It Doesn't Have to Be Crazy at Work
Upcase is now Free!
Testing Interaction with 3rd-party APIs on Upcase
Composition Over Inheritance on Upcase
Support The Bike Shed

Nov 2, 2018 • 37min
176: The Machines Will Learn
On this episode of the Bike Shed Chris is joined by George Brocklehurst, development director in thoughtbot's New York studio. The conversation starts with a discussion around progressive enhancement and the state of the modern web, and then shifts to focus on George's recent explorations of machine learning. This episode is a perfect introduction to the topic of ML, and provides a great summary of why you might want to start working with it and how to go about that.
Does Progressive Enhancement Have a Place in Today's Web?
Vue.js
Electron
React Native
React Native for Desktop
Frameworks and Tools For Exploring Machine Learning
NumPy
SciPy
Jupyter Notebook
Pandas
scikit-learn
Natural Language Toolkit (NLKT)
spaCy
gensim
Getting Started with Machine Learning:
Intro to Machine Learning Workshop
What is Machine Learning?
Named Entity Recognition
Recommending blog posts with machine learning
Support The Bike Shed

Oct 26, 2018 • 42min
175: Tell Me When It's Real
On this episode of the Bike Shed, Chris is joined by Josh Clayton, thoughtbot's managing director in our Boston studio. Chris and Josh spend the episode discussing the various patterns and trends they see in the world of web development. Specifically, they touch on server side frameworks like Ruby on Rails and Phoenix in the Elixir world. In addition, they discuss a variety of front end trends including the move towards typed languages like ReasonML, TypeScript, Elm, PureScript, and Scala.js, as well as frameworks like React, Ember, Angular, and Vue.js.
Bike Shed 20 w/ Josh Clayton: Intentionally Excruciatingly Painful
Google Lighthouse
Beyond React 16 by Dan Abramov - JSConf Iceland
AirBnB Moving Away from React Native
Josh Steiner - Elm native UI in production
Announcing Purple Train
ReasonML
Elm
TypeScript
PureScript
Scala.js
Software disenchantment blog post
166: Are Services the New Rewrite?
Apollo Client
Vue.js
Thoughtworks Technology Radar
Parcel Bundler
Terser javascript minifier
Rufo - Ruby autoformatter
Support The Bike Shed

Oct 18, 2018 • 31min
174: I've Watched a Lot of Vim Courses
In this special crossover episode, Chris is joined by Chad Pytel, Co-founder & CEO of thoughtbot and host of Giant Robots Smashing Into Other Giant Robots podcast, to discuss the content, history, and the process of making Upcase, thoughtbot's online learning platform, FREE.
Giant Robots Podcast
Upcase
Test Driven Rails
Mastering Git
Fundamentals of TDD
SOA on The Bike Shed
Onramp to Vim
thoughtbot Purpose Statement
Chad on Twitter
Support The Bike Shed

Oct 12, 2018 • 50min
173: A Combinatoric Explosion of Nulls
Joël Quenneville joins Chris to discuss Elm, the strongly typed functional programming language for writing reliable client side web apps. They discuss recent changes from the 0.19 release including reduced bundle size from dead code elimination, the somewhat controversial removal of custom operators. Anecdotally, Joël and team saw a reduction from 31.5K to 16.6K in bundle size going from 0.18 to 0.19 and felt no pain from the custom operators removal, so a big net win for them with this new version.
Along the way Joël and Chris detour into the complexity of managing a project and community like Elm's and discuss Joël‘s recent work with the thoughtbot apprentice program. To round things out, Joël and Chris discuss the power of using a type system like Elm's to constrain the valid states of your application and make your apps more robust and maintainable.
Elm - A delightful language for reliable webapps.
Elm 0.19 Release Notes
Webpacker
Elm 0.19 - Dead Code Elimination
Scala.js
The reasoning behind removing user-defined operators
Minesweeper for JavaScript Equality
WebAssembly
Linus Torvalds - "I am going to take time off and get some assistance..."
Also Linus, on the importance of "trivial patches" as entry points for new kernal developers
Derek Prior - Implementing a Strong Code-Review Culture
thoughtbot code review guidelines
thoughtbot apprentice program
How Elm Slays a UI Antipattern
"Making Impossible States Impossible" talk by Richard Feldman
"Working with Maybe" talk by Joël Quenneville
"Confident Code" talk by Avdi Grimm
"Nothing is Something" talk by Sandi Metz
The Zen of Python
Breakable Toys
Joel’s many posts on the Giant Robots blog
Stop Coding and Start Drawing
Support The Bike Shed

Oct 5, 2018 • 56min
172: What I Believe About Software
Steph Viccari joins Chris for a conversation starting with a discussion of some deployment and orchestration issues Chris was helping out with, followed by some of Steph's recent experiences with JSONB in postgres and the relative trade-offs of unstructured data.
The heart of the conversation revolves around the core processes we use to develop software touching on sprint planning & story points, deadlines, the place for refactoring and code review in the regular cadence of development, and the often lamented retrospective meeting.
Aptible - PAAS with strong security and HIPAA compliance
Heroku Shield
Google hiding www in URLs
Auth0 - Identity management and auth as a service
ActiveStorage - Rails's built in filie attachment framework
Postgres JSON & JSONB Types
The Real Story Behind Story Points
Laurie Young Post on His Use of Story Points
Deadlines
XKCD - And Check Whether the Photo is of a Bird
Headspace meditation
Support The Bike Shed

Sep 21, 2018 • 46min
171: What If We Just Used a Form?
Matt Sumner joins Chris for a discussion around Matt's recent adventures with the block chain and Ethereum, as well as tackling the thorny issue of server rendered vs client side apps. They cover a bit of history, a bit of opinion, and some practical considerations to keep in mind when tackling rich client development.
Ethereum
Ethereum Proof of Stake
Browser History APIs including pushState
SOAP
Ember's heroic focus on the URL & Routes
GraphQL
TypeScript
Vimium
Boston React Conference
Support The Bike Shed

Sep 14, 2018 • 49min
170: Less Charted Territory
Chris is joined by Paul Smith to discuss Crystal, a statically-typed and compiled language with a Ruby inspired syntax. Paul has spent much of the past few years exploring Crystal and building a new web framework called Lucky.
Paul's infectious enthusiasm for the Crystal language shines through in this discussion covering some of the unique features of Crystal & Lucky, but there is plenty to enjoy even if you're not specifically interested in Crystal.
With Lucky, Paul has done a great job of taking the best of what has been built in other frameworks and bring it to Crystal, drawing inspiration from Ruby & Rails, Elixir & Phoenix, and even PHP and the Laravel framework. There's something in this episode for everyone!
Crystal
If You Gaze Into nil, nil Gazes Also Into You
Elm
Scala
Elixir
Elixir Phoenix
Laravel
Laravel Mix
Lucky on GitHub
Render HTML pages in Lucky
Actions and Routing in Lucky
Browser tests with LuckyFlow
Dusk selectors
Guido Van Rossum, Python BDFL, Stepping down
VS Code
BikeShed episode w/ German Velasco disucssing Elixir
Support The Bike Shed

Sep 7, 2018 • 39min
169: Fear Driven Development
Chris is joined by Kane Baccigalupi, development director from thoughtbot's San Francisco office to discuss Kane's history in government working for 18F and California State and how those experiences have informed Kane's work since.
Throughout the conversation Chris and Kane discuss their shared desire to hide all implementation details and their love of Ruby for how it allows us to do
that, testing vs test driven development, and approaches for refactoring large
untested systems.
18F - A consulting team within the government helping to introduce modern
software development practices.
Kane's tweet about the enjoyment of the refactoring and design parts of the process.
Sarah Mei on The Bike Shed
Uniform Access Principle
Observations on the testing culture of Test Driven Development - TDD
article that introduces the phrase "calling the shot" for the practice of TDD.
Convenience class methods on service objects
Testing Pyramid - A way to think about the cost and value of the
various types of tests.
Therapeutic Refactoring by Katrina Owen
Katrina Owen on The Bike Shed
Strangler Pattern - A systematic approach to refactoring and decomposing
large-scale
The encasement strategy: on legacy systems and the importance of APIs
Martin Fowler on the Strangler Pattern
Support The Bike Shed


