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 Joël Quenneville

View other authors

  1. Testing Third Party Interactions

    How to test integrations with a third-party API.

    Joël Quenneville
    March 15, 2017
    • Web
    • Ruby
    • Testing
  2. Learning by helping

    How helping others made me a better developer.

    Joël Quenneville
    February 9, 2017
    • Web
    • Community
    • Elm
  3. Elm's universal pattern

    Want to build a random generator? A JSON decoder? Combine multiple Maybes into a more complex one? Do it all with this one simple trick.

    Joël Quenneville
    January 13, 2017
    • Elm
    • Web
  4. Building custom DOM event handlers in Elm

    A step-by-step guide to implementing a custom onChange event in Elm 0.18.

    Joël Quenneville
    November 21, 2016
    • Web
    • Elm
  5. Composition vs Inheritance

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

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

    Using composition to build modular object-oriented systems.

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

    Solving the combinatorial explosion problem with multiple inheritance.

    Joël Quenneville
    November 1, 2016
    • Web
    • Ruby
    • Good Code
  8. Building Reusable Object-Oriented Systems: Inheritance

    Using inheritance to share common logic.

    Joël Quenneville
    October 31, 2016
    • Web
    • Ruby
    • Good Code
  9. Blocks, Procs, and Enumerable

    A look under the hood at how blocks and procs are used in Ruby.

    Joël Quenneville
    April 25, 2016
    • Ruby
  10. Rolling Random Romans

    A dive into functional random generators.

    Joël Quenneville
    April 18, 2016
    • Elm
    • Functional Programming
« First ‹ Prev … 4 5 6 7 8 9 10 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