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

Good Code Articles

Written by thoughtbot, your expert partner for design and development.

    • All Topics
    • Design
    • Development
    • Product
    • More topics
  1. Value Object Semantics in Ruby

    What is the correct behavior of hash, ==, eql? and equal? for value objects?

    Joël Quenneville
    July 18, 2022
    • Ruby
    • Good Code
    • Domain Modeling
    • Web
  2. Reducing Leaky Abstractions Introduced by ActiveRecord

    ActiveRecord provides a comprehensive interface for querying the database, but at what cost?

    Josh Clayton
    March 30, 2022
    • Rails
    • Ruby
    • Web
    • Good Code
  3. Write Readable Code

    Techniques and reasons to optimize your code for people, not metrics.

    Edward Loveall
    March 18, 2022
    • Good Code
    • Programming
    • Refactoring
    • Stories
  4. Simplifying Tests by Extracting Side-Effects

    Test-driven development, object-oriented design, and functional programming converge on some similar ideas.

    Joël Quenneville
    February 18, 2021
    • Web
    • Ruby
    • TDD
    • Testing
    • Functional Programming
    • Good Code
  5. Useful utilities

    A strict type system doesn’t mean inflexible. We can bend it to meet our needs with the utilities that ship with TypeScript.

    Alejandro Dustet
    February 1, 2021
    • TypeScript
    • Types
    • Good Code
  6. Testing Objects with a Functional Mindset

    Some ideas from functional programming can help us improve the unit tests for our object-oriented code.

    Joël Quenneville
    January 19, 2021
    • Web
    • Functional Programming
    • Testing
    • Good Code
    • Ruby
  7. Type systems and checking in Elixir and Ruby

    Adding type checking to dynamically typed languages is possible, and awesome!

    Hawley Brett
    January 18, 2021
    • Elixir
    • Ruby
    • Types
    • Good Code
  8. TypeScript: Stop Using 'any', There's a Type For That

    Chances are you’ve worked with the any type in TypeScript. It’s widely overused, and subtly dangerous. Let’s explore why you should avoid it, and when you might truly need to use it.

    Alejandro Dustet and Wil Hall
    October 13, 2020
    • TypeScript
    • Types
    • Good Code
  9. This is your threading bug

    Solving these bugs often involves doing less, but thinking through them can be tricky.

    Mike Burns
    May 19, 2020
    • Programming
    • Bug
    • Computer Science
    • Good Code
  10. The Self-Contained Test

    Learn how to write tests so they’re easy to read and your colleagues will thank you.

    Edward Loveall
    May 18, 2020
    • Testing
    • Good Code
    • Ruby
  11. Sign up to receive a weekly recap from thoughtbot

    Looking for even more ways to stay connected?
    RSS feed icon Check out our feeds
« First ‹ Prev 1 2 3 4 5 6 … 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