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

Articles by Joël Quenneville

  1. Composition vs Inheritance

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

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

    Using composition to build modular object-oriented systems.

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

    Solving the combinatorial explosion problem with multiple inheritance.

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

    Using inheritance to share common logic.

    Joël Quenneville
    October 31, 2016
    • Web
    • Ruby
    • Good Code
  5. 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
  6. Rolling Random Romans

    A dive into functional random generators.

    Joël Quenneville
    April 18, 2016
    • Elm
    • Functional Programming
  7. Rebuilding Git in Ruby

    From zero to commit! Let’s rebuild Git with a more familiar approach for Rails developers to get a better understanding on how Git works under the hood.

    Joël Quenneville
    March 14, 2016
    • Git
    • Ruby
  8. Ten Years of the Giant Robots Blog

    Today marks 10 years of writing, editing, and publishing this blog, Giant Robots Smashing Into Other Giant Robots. Here’s a few things we did along the way to improve our happiness and the quality of the content.

    Dan Croak, Joël Quenneville & Gabe Berke-Williams
    November 6, 2015
    • Analytics
    • Automation
    • Middleman
    • Productivity
    • Web
  9. Improving User Experience with Shell Scripts

    Your shell is an interface too!

    Joël Quenneville
    October 14, 2015
    • Shell
    • User Experience
  10. Testing SMS Interactions

    How do you simulate SMS messages in feature specs?

    Joël Quenneville
    July 27, 2015
    • Web
    • Testing
    • Ruby
    • Rails
« First ‹ Prev … 3 4 5 6 7 8 9 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