PLAY PODCASTS
The Bike Shed

The Bike Shed

499 episodes — Page 7 of 10

199: Pave That Path

On this week's episode, Steph and Chris talk about PR sizing, load testing (the weird way), and ponder the merits and pitfalls of personal style in code. They also discuss Hertz suing Accenture for undelivered software and the belief that engineers should talk to users! This one truly has something for everyone. prettier elm-format Query objects Prettier plugin-ruby Stop Coding and Start Drawing - Joël's post on drawing Server sent events WebSockets Copy as cURL Google App Engine HireFire Hertz & Accenture tweet summary

May 21, 201945 min

198: In Terms of Tradeoffs (Glenn Vanderburg)

On this week's episode, Chris is joined by Glenn Vanderburg, VP of Engineering at First.io, live from RailsConf. They discuss Glenn's RailsConf talk, "The 30-Month Migration", covering distributed data models, refactoring, and the wonders of postgres. They also discuss Glenn's famous talk, "Real Software Engineering", and what the term "software engineering" means within our communities. Glenn on Twitter Glenn's RailsConf talk - The 30-Month Migration Glenn's blog First.io Postgres MySQL Postgres Common Table Expressions (CTEs) Swanand Pagnis - It's 2017, and I still want to sell you a graph database! GraphQL Glenn Vanderburg - Real Software Engineering Agile Manifesto Extreme Programming Rust Language Kathleen Fisher Kathleen Fisher, High Assurance Systems AWS Firecracker Bike Shed with Lin Clark & Till Schneidereit on WebAssembly & WASI Fastly Lucet Chaos Engineering Chaos Monkey Joe Armstrong Erlang Property Based Testing Erlang Actor Model Clojure ClojureScript Functional Core, Imperative Shell Sorbet - Stripe library for gradual static typing in Ruby

May 14, 201941 min

197: Don't Go Chasing Waterfalls

Steph and Chris discuss Redux, integration testing strategies, scoping data for React components, and take a question from a listener about improving process and reducing bugs in a complex service-oriented system with a hint of waterfall in their workflow. Angular Apollo Capybara CircleCI CircleCI Orbs Cypress Docker Enzyme GraphQL HTTP Heroku Buildpack Mystery Guests Nightmare.js Normalizer RSpec React Redux Reselect SOA - Service Oriented Architecture Selenium Swagger The Real Story Behind Story Points Thunk json schema lunar npm react-testing-library

May 7, 201944 min

196: I Can Be Wrong on the Internet

On this week's episode, Chris welcomes Steph as the new co-host of The Bike Shed! Chris and Steph discuss their experiences using React, TypeScript, and Angular. Angular Backbone BDD Elm Ember ES6 HTTP Javascript Python Rails React RSJX TDD Typescript Vue

Apr 30, 201938 min

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

Apr 19, 201937 min

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

Apr 12, 201947 min

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.

Apr 5, 201947 min

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.

Mar 29, 201934 min

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.

Mar 22, 201939 min

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.

Mar 15, 201952 min

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

Mar 1, 201941 min

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

Feb 22, 201938 min

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"

Feb 15, 201941 min

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.

Feb 1, 201938 min

185: The Transactional Fallacy (Avdi Grimm)

On this week's episode, Chris is joined by Ruby Hero Avdi Grimm. They discuss Avdi's history of guiding the Ruby and broader programming communities, his thoughts about where we're at with object-oriented programming, and where he's looking to next for our industry. This conversation touches on a variety of topics both technical and personal. Avdi shares some of his thinking around where we've failed with our approaches to object-oriented programming and viewing the world as transactional, and instead offers ideas around modeling our systems as processes. Avdi & Chris also chat about some of Avdi's my recent explorations into the world of JavaScript & React, as well as the growing "resilience engineering" mindset. Ruby Rouges Podcast Confident Code Avdi's Keep Ruby Weird Keynote Alan Kay - Creator of Object Oriented Programming Actor Model Kafka Ruby Tapas - Avdi's Weekly Ruby Screencast Series Greater Than Code Podcast Mastering the Object Oriented Mindset Pair Program With Me Avdi - Ruby Duck Sessions Avdi and Jess stumble through modern web development Glitch TypeScript Australian Disaster Resilience Conference Chaos Monkey from Netflix avdi.codes Thank you to One Month for sponsoring this episode.

Jan 25, 201935 min

184: Fun, Interesting, and I Wouldn't Recommend It

On this week's episode, Chris is joined by Eebs Kobeissi, a developer in our Boston studio, for a discussion encompassing the front end, back end, and everything in between. They start by discussing Eebs' recent work with both Elm & TypeScript, and the relative merits of these two strongly typed languages for the front end. From there they move on to a discussion around the different communities and rates of change in each. Shifting gears, Chris then asks Eebs about his experience with more distributed systems and technologies like JSON Web Tokens, ElasitcSearch, RabbitMQ, Kafka, and more. They round out the conversation with a discussion around some recent security discussions in package managers and their collective surprise that things work at all. chruby asdf Matz replies to post around Ruby moving slowly TypeScript Elm TypeScript Growing Popularity on State of JS 2018 JSON Web Tokens (JTW) RSA Public Key Cryptography OAuth RabbitMQ ElasitcSearch Postgres Full Text Search Kafka Event Sourcing Details about the event-stream incident Heartbleed Transcendence and the Future of React with Laurie Voss Thank you to One Month for sponsoring this episode.

Jan 18, 201941 min

183: Former Robots Smashing Into Other Giant Robots (Ben Orenstein)

On this episode of the Bike Shed, Chris is joined by former thoughtbotter Ben Orenstein. Ben & team are currently feverishly working towards launching Tuple.app, an app for remote pair programming. The conversation covers the unique technical challenges inherent to building this sort of app (WebRTC & firewalls, oh my), as well as a discussion around the merits and value of pair programming. To round out the conversation, Ben checks in on whether Chris is still "nerding out hard on Vim". Giant Robots Art of Product Podcast Tuple App WebRTC Tuple - Pair Programming Guide Infamous Hacker News Comment about the initial version Dropbox Let's Encrypt Red Hat - Enterprise Linux fzf - generic fuzzy finder VS Code Mastering the Vim Language @r00k - Ben on twitter Thank you to One Month for sponsoring this episode.

Jan 11, 201949 min

182: What's it in the Service Of?

Chris is joined by Eric Bailey, thoughtbot designer and champion for all things accessibility on the web. Chris & Eric chat about how Eric approaches accessibility and works to include it throughout the design process, design systems, functional CSS, CSS in JS, and more. Eric's recent accessibility talk Shifting Left Vimium Salesforce Lightning Design System Shadow DOM Introducing the CSS Cascade The element Heydon Pickering - Reluctant Gatekeeping: The Problem With Full Stack Nicole Sulivan - Object Oriented CSS CSS in JS BEM CSS Methodology Tachyons Tailwind CSS Sass Lang shame.css Reach.tech - Accessible foundation for React component design system JAWS Screen Reader ericwbailey.design

Jan 4, 201939 min

181: Strong Types and a Functional Flair

On this episode of the Bike Shed, Chris is joined by thoughtbot CTO Joe Ferris. Chris & Joe start by talking about all things data. More and more we're building applications that need to manage medium to large data sets, combining data from multiple sources, and our approaches and frameworks need to evolve to match these needs. Joe provides the low down on how this can shape the way we build our applications. As part of the discussion around data they dig into the idea of event logs, most notably discussing Apache Kafka and it's unique approach to capturing state by storing an immutable event log, and the resulting architecture that falls out of this. Lastly they chat about the Scala language both in relation to data and streaming applications, but also more generally as an example of an approachable yet powerful strongly typed language. Kafka Redux Flink Spark Postgres Write-Ahead Log "Turning the database inside out with Apache Samza" by Martin Kleppmann Big Data or Pokemon Datomic RabbitMQ AMQP Event Sourcing Python typing — Support for type hints Sorbet - gradual type annotations for Ruby from Strip

Dec 14, 201841 min

180: A Citizen of the Internet (John Resig)

On this episode of the Bike Shed, we're thrilled to welcome special guest John Resig, creator of jQuery and front-end architect at Khan Academy. The conversation begins with a discussion around John's work on jQuery, one of the most influential libraries in the history of the web. From there the discussion shifts to John's role as front-end architect at Khan Academy and how he balances feature development and paying down tech debt or exploring new technologies. John and Chris then discuss the rate of change of front-end technologies, and John provides wonderfully pragmatic guidance distinguishing the rate of innovation from the perceived needed rate of adoption. The conversation also ventures into discussions around the trade-offs involved in open sourcing internal projects. Lastly, they touch briefly on the topic of GraphQL based on John's work at Kahn Academy, as well as his in-progress book, The GraphQL Guide. A little bit of everything with one of the most influential web developers of the past 15 years. What more could you ask for? jQuery Khan Academy Removing jQuery from GitHub.com frontend React hooks Webpack Aphrodite styling library from Khan Academy Event Stream NPM Package Security Issue The GraphQL Guide Sangria GraphQL Framework in Scala John's personal site John on twitter

Dec 7, 201839 min

179: We CAN Just Use a Form!

On this episode of the Bike Shed, Matt Sumner returns to chat with Chris about their recent adventures. They start by discussing Matt's ongoing work building an open source Ethereum implementation in Elixir and the joys of a test suite guiding your work. From there, Matt asks Chris about Chris's recent trip to speak at GraphQL Summit and his take on the current state of affairs in the GraphQL world (hint, it's good). Matt and Chris then discussed the progress they've made on simpler form handling in React applications and consider how far they could go with this, and then discuss the recent announcement of React Hooks. And finally, they discuss the fact that thoughtbot is hiring, and we think you should apply! Head on over to thoughtbot.com/jobs and drop us a line :) Mana - ethereum Heroku SSH Erlang OTP GraphQL Summit 2018 GraphQL Foundation Apollo GraphQL Prisma Graph.cool Falcor (Netflix GraphQL-like library) JSON Graph Lee Byron Nick Schrock Shopify GraphQL Design Tutorial Chris Toomey: React & GraphQL – Bringing Simplicity to Client Side Development video CodeSandbox Proof of Concept - Simple React Form Handling Formik & Yup React -- Introducing Hooks React Hooks RFC (now merged)

Nov 30, 201849 min

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

Nov 16, 201838 min

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

Nov 9, 201832 min

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

Nov 2, 201837 min

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

Oct 26, 201842 min

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

Oct 18, 201830 min

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

Oct 12, 201850 min

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

Oct 5, 201855 min

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

Sep 21, 201845 min

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

Sep 14, 201849 min

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

Sep 7, 201838 min

168: An Escape Rope of Learning

Chris is joined by Rachel Mathew to discuss Rachel's recent experiences with Scala on a handful of client and side projects. They discuss the benefits of working within a type system, learning to work with a compiler, and the process of getting to know a new language and paradigm. Along they way they dip into the complexity of twitter as a platform for discussion and making improvements to development workflows. Scala Scala implicits Kotlin Four stages of competence Scala Play - Full-featured Scala web framework, comparable to Rails http4s - Lower level Scala web framework SOAP - An approach to building APIs popular before the focus on REST APIs WSDL - Schemas in the land of SOAP Sangria - Scala GraphQL library neo4j - An example of a graph database Are Services the New Rewrite? - recent Bike Shed episode discussion microservice architecture 283: Overcoming Awkward Data (Joe Ferris) - Recent Giant Robots episode with Joe Ferris discussing "awkward data" GraphQL Code Generation Purple Train App

Aug 31, 201842 min

167: I Feel Like We Should've Solved This By Now

Chris is joined by German Velasco for a discussion ranging from German's recent transition to remote working to the wonders of the Elixir language and the Erlang platform, blockchain, Ethereum, TypeScript, the Language Server Protocol, and more! tmate - shared terminal sessions via a special build of tmux Sneak - Human contact for remote teams (persistent video chat for teams) Ryan Tomayko - Your team should work like an open source project - great post with actionable advice for teams adopting the remote life How to Create a Distributed Work Culture 5 Things that Suck about Remote Work Taking the Pain Out of Video Conferences thoughtbot.com/jobs - Come work with us! Elixir - The language German loves! Pattern matching in Elixir Hindley–Milner type system dialyzer - Erlang static analysis Erlang OTP - a set of Erlang libraries & principles that carry over to Elixir Erlang "Let It Crash" Blockchain Ethereum Proof of Authority GraphQL VS Code Language Server Protocol TypeScript 3.0

Aug 24, 201843 min

166: Are Services the New Rewrite?

Chris & Derek discuss the world of services, exploring the various forms SOA can take, the oft stated benefits, and some of the pitfalls they commonly see in the wild. The discussion ranges from alternative architectures, guidelines for how to think about services within your platform, and even includes an anecdote about thoughtbot's foray into the world of SOA on Upcase. Things You Should Never Do, Part I The Entity Service Antipattern The Past, Present, and Future of GraphQL Native - Nick Schrock Netflix - Chaos Monkey Goodbye Microservices: From 100s of problem children to 1 superstar (Segment) Upcase

Aug 10, 201837 min

165: The Tables Have Turned

Chris & Derek talk about beginnings and ends, borrowing from their consulting mindset for a conversation spanning CI, deployment, communication, team structure, and everything in between. bin/setup ActiveStorage confi on heroku Rails encrypted "Credentials" 12 Factor App Semisonic- Closing Time Suspenders changes moving to per-topic generators Ruby bug Methods with more than 32 keyword arguments with default values have some of the arguments set to default despite being passed in.

Aug 3, 201840 min

164: A Piece of My Identity

Support The Bike Shed

Jul 27, 201847 min

163: Insert Some Colons For Me

After Sean confronts some breaking changes to Diesel, we discuss what we like about Visual Studio Code and how changing your tools can change your perspective. Visual Studio Code Language Server Protocol Vim-LSP Seamlessly Navigate Vim and tmux Splits rcm: rc file (dotfile) management Add facility for syncing VSCode extensions How to exit the Vim editor? Have you evaluated your toolchain recently? Tuple

Jul 20, 201838 min

162: You Have Ruined Your Rails App (Sam Phippen)

Sam Phippen joins us to discuss the maintenance burden of supporting old Rubies, service oriented architecture, and explorations of GraphQL and graph databases. Sam Phippen on Twitter RFC: rspec-rails versioning strategy Mix deps documentation NP-hardness bundle update --conservative docs Use create_or_find_by to avoid race condition in Rails 6.0 Dgraph — A Distributed, Fast Graph Database 100: Nouns You Can Verb | The Bike Shed - Sam's previous discussion of GRPC on the podcast PostgreSQL: WITH Queries (Common Table Expressions) Work at DigitalOcean Jobs - thoughtbot Careers and Jobs at Shopify

Jul 13, 201842 min

161: Re-Incoherence

Rails performance, rebalancing coherence, and themes from career advice requests. Jeff Atwood on Rails performance An analysis of memory bloat in Active Record 5.2 134: Fastributes | The Bike Shed 17: Railing About Performance (Sam Saffron) | The Bike Shed Re-Rebalancing Coherence

Jul 6, 201839 min

160: Praise Hands Emoji 🙌 (Vaidehi Joshi)

We're joined by Vaidehi Joshi to discuss her multimedia empire, conference talk prep, getting started with computer science, and the applicability of a computer science education in every day development work. We wrap the episode with live Q&A from our RailsConf audience. Vaidehi Joshi on Twitter Base CS – The Blog Posts Base CS - The Podcast Base CS - The Video Series RailsConf 2018: Re-graphing The Mental Model of The Rails Router by Vaidehi Joshi Deckset for Mac: Presentations from Markdown RustConf 2017 - Type System Tips for the Real World by Sean Griffin EmberConf 2018: Closing Keynote by Saron Yitbarek & Vaidehi Joshi Conway's Game of Life Understanding Computation: From Simple Machines to Impossible Programs: Tom Stuart Announcing Skylight for Open Source!

Jun 29, 201847 min

159: Confusing and Hard to Use

An ORM that's a pleasure to use with raw SQL when needed? Sean discusses how that can be. Plus, Derek shares a new and exciting way for migrations to break! Diesel v1.3.0 RailsConf 2018: Up And Down Again: A Migration's Tale by Derek Prior ActiveSupport::Inflector

Jun 22, 201823 min

158: This is How I Ruin Meetings (Aaron Patterson)

We're joined by Aaron Patterson for puns. Aaron also updates us on compacting GC for Ruby and Ruby 2.6's JIT compiler before telling us how he really feels about functional programming. Aaron Patterson (@tenderlove) on Twitter Parkinson's Law of Triviality (The Bike Shed Effect) Cargo Cult Building a Compacting GC for MRI by Aaron Patterson Allison McMillan on Twitter CAR and CDR Honeypot The method JIT compiler for Ruby 2.6 Closing Keynote by Aaron Patterson Opening Keynote: FIXME by David Heinemeier Hansson The Future of Rails 6: Scalable by Default by Eileen Uchitelle The Crystal Programming Language

Jun 15, 201847 min

157: Whiz-Bangy Frontend Thing (Chris Toomey)

Chris Toomey joins Derek to talk about their shared experience in Elm and their excitement about GraphQL. Chris on Twitter The Reader Monad — Part 1 Kind (type theory) Monads are like burritos Scala.js GraphQL | A query language for your API Tell Me When it Closes RailsConf 2017: In Relentless Pursuit of REST by Derek Prior Jobs at thoughtbot graphiql

Jun 8, 201842 min

156: It's a Commercial Enterprise (Olivier Lacan)

We speak with Olivier Lacan about KeepAChangelog.com, tooling improvements for better developer experience, and the emotional impact of shutting down CodeSchool.com Keep a Changelog RubyGems Specification Reference Why Won't Bundle Update? bundler-stats The Life and Death of a Rails App by Olivier Lacan Online Learning Service Pluralsight Acquires Code School For $36 Million Human Errors by Olivier Lacan Log the original call site for an ActiveRecord query Olivier on Twitter

Jun 1, 201841 min

155: Abstractions on Abstractions (Alex Sullivan)

Amanda is joined by Alex Sullivan, Android developer at thoughtbot, to discuss the state of React Native and its new competitor from Google, Flutter. Flutter - Beautiful native apps in record time WTFs per minute Kotlin/Native thoughtbot's BART sign React Native at Instagram Xamarin Jake Whorton I/O Talk I/O: how to smartly use Fragments in your UI I/O: what's new in Architecture Components I/O: What's new in Android

May 25, 201844 min

154: We All Have Work to Do (Eileen Uchitelle)

Eileen Uchitelle joins us live from RailsConf to talk about exciting improvements coming to Rails 6, problems encountered by larger Rails apps, strategies for upgrading Rails and more! Eileen on Twitter The Future of Rails 6: Scalable by Default - Eileen's RailsConf Keynote The Bike Shed #22: No Capes! (Eileen Uchitelle) ActiveSupport::PerThreadRegistry Parallel Tests Test Queue DatabaseCleaner LHM: Online MySQL schema migrations GH-ost: GitHub's Online Schema Migrations for MySQL pt-online-schema-change Eileen removes dead code from GitHub after the Rails 4.2 upgrade Ruby on Rails: Security Long term support for Ruby on Rails 3.2 and Rails 2.3

May 18, 201841 min

153: 🎶 I Would Lose 3,000 Crates, and I Would Lose 12,000 More 🎶

Is the bug in Postgres? Sean takes over operations of crates.io and keeps himself very busy. We also wrap up our experience at RailsConf. Logical Replication in PostgreSQL 10 Heroku Error Codes: H12 Materialized view Run a query with a LIMIT/OFFSET and also get the total number of rows ActiveRecord: retrieving records in batches See open positions at thoughtbot! Become a Sponsor of The Bike Shed!

May 11, 201836 min

152: I Look For Stories (Nickolas Means)

We catch up with Nick Means at RailsConf and discuss storytelling, "human error", advice for job seekers, and the idea of licensing software developers. Nick on Twitter The Bike Shed #71: It's a Total Hack - Our earlier episode discussing Nick's previous keynote at RailsConf Skunk Works by Nickolas Means Skunk Works: A Personal Memoir of My Years at Lockheed The Field Guide to Understanding 'Human Error' Atomic Accidents: A History of Nuclear Meltdowns and Disasters Retro Report | Go or no Go: The Challenger Legacy Three Mile Island accident Southwest’s Fatal Accident Prompts Scrutiny of Engine Inspections People wearing oxygen masks wrong xkcd: Compiling The Making of the Atomic Bomb: 25th Anniversary Edition Don't Get Distracted - Caleb Thompson

May 4, 201831 min

151: Scheming About Schema

Derek & Sean discuss their final preparations for RailsConf, the role of Diesel's schema.rs is in comparison to schema.rb in Rails, and how Derek took down production. The American Chopper meme, explained PaperCall.io Diesel schema in depth

Apr 27, 201835 min

150: I Fight For the Users

Derek and Sean discuss ethical concerns in software development and the prospect of licensing software developers. XFINITY Data Usage Center Reply All: A Pirate in Search of a Judge Design’s Lost Generation Cambridge Analytica scandals, explained Blogger Bobbie Duncan Recalls Getting Outed Accidentally On Facebook Tesla Criticized for Blaming Autopilot Death on Model X Driver Self-Driving Mercedes-Benzes Will Prioritize Occupant Safety over Pedestrians GDPR The Bike Shed at RailsConf 2018

Apr 13, 201847 min