Upcase header logo small 74d881f2938298c588db0b7c93de56caf020a767f5981ad9919f1ab5728e278f

Learn with thoughtbot

The Weekly Iteration

Learn to write better code in less than 30 minutes a week


This video is a preview. Subscribe to Upcase to access the full-length video, and all other videos.

Chrome Dev Tools

24 minutes

The Chrome DevTools are an amazing tool and a critical part of our workflow on Upcase and client apps. Tune in as Ben & Chris discuss their favorite features and tips for getting the most out of the DevTools.

Building Static Sites with Middleman

33 minutes

When all you have is the hammer of Rails, everything looks like a database backed dynamic site. But often we'd be much better served by a simple static site, and Middleman is a great choice for building these static sites. Join Chris as he shows off some of the more advanced tips and techniques you can use to efficiently build and deploy your next static site.

Advanced Query Optimization

29 minutes

Slow and redundant database queries got you down? Well have no fear! On this week's episode, Chris and Joe dive deep into the strategies you can use to optimize your queries and get your app back to ludicrous speed ASAP.

Testing Antipatterns

23 minutes

Tests are code too, and they deserve the same love and careful refactoring you'd show to your production code. In fact, there are a number of antipatterns and pitfalls unique to test code that can trip you up. Tune in to learn all the dos and don'ts as Chris and Joe dive deep into testing antipatterns.

Elm - A Front End Language with Style

29 minutes

Elm is a new language for building browser based applications that brings together the purity of Haskell and the pragmatism of JavaScript in hopes of getting the best of both worlds. Tune in as Chris and Joël dive into Elm to see what it's all about.


20 minutes

Rack is the glue that binds application frameworks like Rails and Sinatra to web servers like thin and puma. In this episode Joël Quenneville takes us on a tour of Rack and shows us how we can take advantage of the Rack pattern to build more robust and decoupled applications.


20 minutes

This week we take a quick detour into the design world to learn about Flexbox, a major enhancement to defining layouts in CSS. Chris is joined by thoughtbot designer Mike Borsare to learn the ins and outs of flexbox and how it can make our lives easier when designing modern webapps.

ES6 - JavaScript Evolved

23 minutes

Chris is joined by Blake Williams for a discussion about ES6, the collection of proposed enhancements and updates to the JavaScript specification.

Intro to Elixir

12 minutes

Chris is joined by Blake Williams to get an introduction to the Elixir programming language. Tune in to learn about this functional, concurrent, fault tolerant wonder-language with a Ruby-like syntax.

Intro to Accessibility

19 minutes

Derek gives Chris a rundown on a11y, aka web accessibility. Tune in to the learn why accessibility matters for all apps, how to approach it, and what tools are available to help on the journey.

Web Security

19 minutes

On this week's video, Chris is joined by Derek to discuss web security. Tune in to learn about the available resources and tools, and some specific issues to watch out for in Rails apps.

Intro to Docker

35 minutes

On this week's episode, Chris is joined by thoughtbot CTO Joe Ferris to discuss Docker, the open platform for building and running containerized applications.

Live Refactoring with Joe

19 minutes

In this episode, Chris is joined by thoughtbot CTO Joe Ferris.

With the magic of live-coding, Joe demonstrates how a simple Extract Class refactoring can lead to a host of code improvements.

Page Objects

20 minutes

On this week's episode, Chris is again joined by Josh Clayton, Boston Development Director and TDD master, this time to discuss the power of page objects for cleaning up feature specs.

Heroku Tips and Tricks

20 minutes

On this week's episode, Chris is joined by Boston Development Director and TDD master Josh Clayton to discuss some of the tips we have here at thoughtbot for working with Heroku-deployed applications.

Building a Gem

20 minutes

On this episode of the Weekly Iteration, Chris is again joined by Derek Prior, this time discussing building and extracting gems.


16 minutes

On this week's episode, Chris is again joined by fellow bot Derek Prior, this time to discuss Turbolinks. Tune in to learn how to speed up your Rails apps, almost automatically!

Active Support

17 minutes

On this week's episode, Chris is again joined by Melanie Gilman to discuss the amazing array of extensions added to Ruby by Rails' Active Support component.

Enumerable & Comparable

18 minutes

On this week's episode, Chris is joined by fellow thoughtbotter, Melanie Gilman, to discuss the wonder of Ruby's Enumerable and Comparable interfaces and how you can incorporate them into your own classes.

Speaking For Developers

22 minutes

Chris and Ben discuss the magic of speaking, from lightning talks all the way to conferences. Tune in to learn the specific tips and approach that will help you land a spot and deliver a great talk.


29 minutes

In this week's episode, Chris is joined by Gabe Berke-Williams to discuss all things API, HTTP, and JSON. Tune in to learn the tools, workflows, and approach that Chris, Gabe, and thoughtbot at large use to interact with APIs.

Intro to Dotfiles

25 minutes

In this weeks episode, Chris & Gabe dive into the world of dotfiles, the files we use to configure some of our favorite tools. Tune in to find out how Chris, Gabe, and thoughtbot think about and organize these critical files.

The Story of a Feature: Flashcards

22 minutes

On this episode of the Weekly Iteration, Chris and Ben discuss the recently added Flashcards feature on Upcase. See a behind the scenes look at the processes, decisions, and code used to release this new feature.

Parsing Program Languages

13 minutes

On this weeks episode Chris and Goose present an introduction to writing a programming language. From lexing to parsing find out more by watching this week's episode.

Regular Expressions

29 minutes

In this episode of the Weekly Iteration, Chris is joined by Matthew Mongeau, aka [Goose][], to discuss regular expressions. Learn how to work with them, where they fit, and perhaps more importantly where they don't.

Intro to React

19 minutes

On this weeks episode Chris presents an introduction to Facebook's React.js framework. React is a JavaScript framework used for building dynamic UIs. Learn why React is interesting and what makes it different from the other frameworks for JS UIs.

Git Workflow

18 minutes

In this week's video, Chris is joined by Josh Steiner to discuss the git and github workflow we use here at thoughtbot. We'll cover feature branches, pull requests, rebasing, and finally merging our new feature into master!


18 minutes

Internationalization (i18n) is well supported in Rails. Being aware of and using i18n in your applications as you build them can save you significant pain from having to retrofit a larger application at a later date and on a deadline.

Debugging For Fun and Profit

15 minutes

In this week's video Chris is joined by Derek Prior and they run through the process used to solve a real production bug on Upcase! Check out the PR that fixes the bug discussed in this video for more context.

Intro to Ember

16 minutes

Matt joins Ben to discuss the pros and cons of Ember, as well as resources to get started learning this framework for creating ambitious web applications.

Managing Windows in Vim

7 minutes

In this episode, Ben shows you how to use vim's windows to efficiently edit code.

Getting Help in Vim

8 minutes

In this episode, Ben shows you how to use vim's powerful built-in help.

Route, Controller, Action

8 minutes

In this screencast, Ben and Chris go back to basics and tackle the first exercise in the Rails Fundamentals trail, "Route, Controller, Action". They create a route, controller, and action using TDD to tell them what to write next.

Surviving Your First Week in Vim (and beyond)

15 minutes

Ben & Chris give some tips and tricks on how to survive your first week in Vim.

The Second Feature is Easier

29 minutes

Ben and Joe continue to develop the Pastie application, demonstrating how to introduce authentication. We discuss how to retrofit existing components with unit tests, as well as the differences between authentication and authorization.

The First Feature is the Hardest

22 minutes

Ben joins Joe and build out the first feature in a Rails application, from scratch. Learn our process for jump-starting new applications using Suspenders. We'll also use our first integration test to help sketch out the first interactions in the application.

Serving Your Front-End

27 minutes

Lydia joins Ben to talk about the front-end tools that thoughtbot designers use: Bourbon, Neat, Bitters, and Refills. Then, see them in action while styling a production app!

Apprentice.io Experiences

24 minutes

Gabe joins Ben to discuss Apprentice.io. They discuss how to be a great mentor, how to help apprentices feel comfortable, and how (and why) to run an apprenticeship program at your company.

Ruby Science: Extract Class

19 minutes

Show notes:

Melanie joins Joe again to discuss the classic refactoring step: Extract Class. Learn how to safely split up a Large Class in small steps, keeping your tests green as much as possible while Melanie demonstrates this technique live. After watching, try it out for yourself in our refactoring trail.

Ruby Science: Introduce Parameter Object

8 minutes

Melanie joins Joe to demonstrate a simple (but useful) pattern: Parameter Objects. Melanie replaces a long parameter list with one object in a single bound! Try it for yourself in our refactoring trail.

Ruby Science: Move Method

10 minutes

Show notes:

Melissa joins Joe once again to demonstrate another refactoring technique from Ruby Science: move method. Learn about Feature Envy, how to reveal it using Extract Method, and how to remove it using Move Method. Follow along yourself on our refactoring trail.

Ruby Science: Extract Method

9 minutes

Melissa joins Joe to discuss a basic refactoring technique: Extract Method. Follow along as Melissa applies this refactoring live to an example from Ruby Science. After watching, you can refine your refactoring techniques using our refactoring trail.

Speedy Tests

21 minutes