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 Joe Ferris

View other authors

  1. Using Capybara to Test JavaScript that Makes HTTP Requests

    Testing an application that integrates with an HTTP service can be tricky: ...

    Joe Ferris
    November 1, 2012
    • Web
    • JavaScript
    • Testing
  2. Let's Not

    How using this popular RSpec technique can sometimes do more harm than good.

    Joe Ferris
    October 31, 2012
    • Web
    • Ruby
    • Testing
    • Good Code
  3. Protect your privates

    A survey of private vs protected in rails controllers.

    Joe Ferris
    September 18, 2012
    • Web
    • Ruby
  4. Refactoring: Replace Conditional with Polymorphism

    How to work through existing code to add polymorphic behavior.

    Joe Ferris
    September 17, 2012
    • Web
    • Good Code
  5. How Much Should I Refactor?

    The Rails community has been abuzz with object-oriented programming, SOLID...

    Joe Ferris
    June 25, 2012
    • Web
    • Good Code
  6. Read between the lines

    Don’t try to cram too much into a small space.

    Joe Ferris
    May 10, 2012
    • Web
    • Good Code
  7. How to Extract an Intention-Revealing Name Using Vim

    This method has a magic number: def wait_time @env[QUEUE_WAIT_HEADER].to_i...

    Joe Ferris
    May 2, 2012
    • Good Code
    • Vim
  8. Inbox Zero: GitHub Issues Edition

    We’ve noticed unpleasant trends in our most popular open source projects: ...

    Joe Ferris
    April 27, 2012
    • Open Source
  9. What is good code?

    What are the fundamentals of good code?

    Joe Ferris
    April 25, 2012
    • Playbook
    • Good Code
  10. Meet thoughtbot at Railsconf 2012

    We’ve had an abnormally warm Winter and Spring in Boston this year, but...

    Joe Ferris
    April 20, 2012
    • News
    • Web
« First ‹ Prev 1 2 3 4 5 6 7 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