Skip to main content
thoughtbot thoughtbot
  • Live on Twitch!

    thoughtbot is livestreaming

    Work alongside the thoughtbot team as we collaborate with each other and our clients, live. Ask us anything, we're live right now!

  • Case Studies
  • Blog
  • Let’s Talk
Live on Twitch!

thoughtbot is livestreaming

Work alongside the thoughtbot team as we collaborate with each other and our clients, live. Ask us anything, we're live right now!

Let’s get started!
View all Services
Development
  • Ruby on Rails
  • Hotwire
  • AI and Machine Learning
  • Maintenance
  • Mobile
Design
  • Discovery Sprints
  • UX, UI, and Product Design
  • Design Systems
Product
  • MVP
  • Product Management
  • Accessibility
Team and Processes
  • Team Augmentation
  • Fractional Leadership
View all Services
View all Resources
Development
  • Tech Leadership Resources
  • Open Source
  • Books
  • The Bike Shed Podcast
  • Live Streaming on YouTube
  • Conference Talks
The business of great software
  • Playbook
  • Purpose Built
  • Giant Robots Smashing Into Other Giant Robots Podcast
  • Design Sprint Guide
  • Live Streaming on LinkedIn
View all Resources

Articles by Gabe Berke-Williams

View other authors

  1. Write a Vim Plugin with TDD

    Write a Vim plugin with confidence using TDD.

    Gabe Berke-Williams
    August 15, 2014
    • Vim
    • TDD
  2. Foolproof I18n Setup in Rails

    Let’s make I18n on Rails better, quickly and easily. These tips have helped...

    Gabe Berke-Williams
    June 17, 2014
    • Web
    • Rails
  3. Writing a Domain-Specific Language in Ruby

    How to use instance_eval and patterns such as registries and proxies to create a beautiful DSL in Ruby.

    Gabe Berke-Williams
    May 28, 2014
    • Web
    • Ruby
  4. Avoid the Three-state Boolean Problem

    Use null: false, default: false on boolean columns in ActiveRecord migrations to avoid NULL problems.

    Gabe Berke-Williams
    February 24, 2014
    • Web
    • PostgreSQL
  5. brew leaves

    How to use Homebrew’s brew leaves command to find programs you can safely uninstall.

    Gabe Berke-Williams
    February 11, 2014
    • OS X
  6. Automatically Wait for AJAX with Capybara

    How to use Capybara’s wait_for_ajax helper.

    Gabe Berke-Williams
    February 4, 2014
    • Web
    • Rails
    • Testing
  7. ActiveRecord's where.not

    Make clunky negation queries in ActiveRecord easier to read.

    Gabe Berke-Williams
    January 24, 2014
    • Web
    • Rails
  8. Starting and stopping background services with Homebrew

    Don’t fiddle with launctl when there’s a better way.

    Gabe Berke-Williams
    January 21, 2014
    • OS X
  9. Brewfile: a Gemfile, but for Homebrew

    Add a Brewfile to your project or laptop setup script.

    Gabe Berke-Williams
    January 20, 2014
    • OS X
  10. sed 102: Replace In-Place

    Replace files in-place with sed’s -i flag.

    Gabe Berke-Williams
    January 15, 2014
    • Unix
« First ‹ Prev 1 2 3 4 5 Next › Last »

Footer

thoughtbot
  • Services
  • Case Studies
  • Resources
  • Let's Talk
  • Our Company
  • Careers
  • Purpose
  • Blog
  • Sponsor
  • Mastodon
  • Bluesky
  • GitHub
  • YouTube
  • Twitch
  • Feeds
© 2025 thoughtbot, inc.

The design of a robot and thoughtbot are registered trademarks of thoughtbot, inc.

  • US: +1 (877) 9-ROBOTS
  • UK: +44 (0)20 3807 0560
  • Beware of fraudulent thoughtbot job listings Learn more
  • Code of Conduct
  • Accessibility Statement
  • Privacy Policy