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
Web Development
  • Ruby on Rails
  • Hotwire
  • AI and Machine Learning
  • React
  • Maintenance
Mobile Development
  • React Native
  • iOS
  • Android
Design
  • UX, UI, and Product Design
  • Design Research
  • Design Systems
Product
  • Product Management
  • Product Design Sprint
  • Research and Strategic Insights
  • Accessibility
Team and Processes
  • Team Augmentation
  • Fractional Leadership
  • Level up your junior team
View all Services
View all Resources
Development
  • Tech Leadership Resources
  • Open Source
  • Books
  • The Bike Shed Podcast
  • Live Streaming on YouTube
The business of great software
  • Playbook
  • Startup Incubator
  • 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 strategy, design, product management, and development partner.

    • All Topics
    • Design
    • Web
    • iOS
    • Android
    • More topics
  1. Chess and Recursion: Part 1

    It turns out solving chess moves with recursion and pattern matching is a lot of fun!

    Dan Barber
    August 10, 2018
    • Code
    • Good Code
    • Elixir
    • Phoenix
    • Recursion
  2. Writing Less Error-Prone Code

    How to optimize for a living codebase, where a line of code will be repeatedly read, adapted and copied.

    Oli Peate
    June 8, 2018
    • Code
    • Good Code
  3. What's Weird with Maybe List

    When you spot Maybe List in your code, it may be time to think about alternatives.

    Joël Quenneville
    May 21, 2018
    • Elm
    • Good Code
    • Web
  4. Organize your functional code

    When coming to a functional language, I often hear people ask, “How do I organize my code?” Let’s take a look at some ways in which data can tell us how to organize our modules and functions.

    German Velasco
    March 19, 2018
    • Elixir
    • Functional Programming
    • Good Code
    • Code
  5. Problem Solving with Maybe

    Write more confident code to avoid viral Maybe taking over your project.

    Joël Quenneville
    February 12, 2018
    • Elm
    • Functional Programming
    • Good Code
    • Web
  6. Booleans and Enums

    Refactor common Boolean smells using enums (union types).

    Joël Quenneville
    September 20, 2017
    • Web
    • Elm
    • Good Code
  7. Spend Your Divergence Wisely

    Complexity makes apps harder to use and harder to maintain. We can avoid that unnecessary complexity by starting with good defaults and from there making informed decisions about where to diverge from them.

    Mason Fischer
    March 2, 2017
    • Good Code
    • Techniques
    • Web
  8. Composition vs Inheritance

    Choose the right tool for the job when building modular software.

    Joël Quenneville
    November 3, 2016
    • Web
    • Ruby
    • Good Code
  9. Building Reusable Object-Oriented Systems: Composition

    Using composition to build modular object-oriented systems.

    Joël Quenneville
    November 2, 2016
    • Web
    • Ruby
    • Good Code
  10. Building Reusable Object-Oriented Systems: Modules

    Solving the combinatorial explosion problem with multiple inheritance.

    Joël Quenneville
    November 1, 2016
    • Web
    • Ruby
    • Good Code
  11. Sign up to receive a weekly recap from thoughtbot

« 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
  • GitHub
  • Instagram
  • YouTube
  • Twitch
© 2024 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