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. Modeling Currency in Elm using Phantom Types

    Lean on Elm’s friendly compiler to enforce currency-related constraints.

    Joël Quenneville
    October 28, 2019
    • Web
    • Elm
    • Types
  2. An Elm debugging story

    This tricky bug requires us to pull out a variety of debugging techniques.

    Joël Quenneville
    October 3, 2019
    • Web
    • Elm
    • Debugging
  3. Debugging DOM event handlers in Elm

    Elm’s DOM event handlers fail silently. Here’s how to debug them.

    Joël Quenneville
    September 25, 2019
    • Elm
    • Web
  4. Iterative Development in Elm: HTTP

    Fake out your HTTP requests for a tighter iteration cycle.

    Joël Quenneville
    August 20, 2019
    • Elm
    • Web
    • Process
  5. Getting Unstuck with Elm JSON Decoders

    Solving a Maybe problem is often easier than solving a Decode one.

    Joël Quenneville
    August 8, 2019
    • Elm
    • Web
  6. Ruby Memoization and Alternatives

    As Ruby developers, we tend to memoize too often.

    Joël Quenneville
    December 5, 2018
    • Ruby
    • Web
  7. 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
  8. Stop Coding and Start Drawing

    When you’re stuck, the best solution is often to represent the problem in a different medium.

    Joël Quenneville
    April 4, 2018
    • Elm
    • Gamedev
    • Web
  9. Gamedev with Elm Types

    Elm’s type system gives us some great tools for modeling gamedev.

    Joël Quenneville
    April 4, 2018
    • Elm
    • Gamedev
    • Web
  10. Decoupling All the Things

    In gamedev, decoupling the in-game world from the real world makes math easier.

    Joël Quenneville
    April 4, 2018
    • Elm
    • Gamedev
    • Web
« First ‹ Prev 1 2 3 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