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 Josh Clayton

View other authors

  1. factory_bot

    factory_girl is becoming factory_bot.

    Avielle Wolfe and Josh Clayton
    October 24, 2017
    • News
    • Web
    • Rails
    • Testing
    • RSpec
    • Ruby
    • Factory Girl
    • Factory Bot
  2. Elm and Rails Sitting in a Tree

    I-N-T-E-G-R-A-T-I-N-G: Webpacker makes using Elm in your Rails app pain-free.

    Tom Wey and Josh Clayton
    October 9, 2017
    • Rails
    • Elm
  3. Chain RSpec Matchers for Improved Test Readability

    Improve test readability by leveraging RSpec’s matcher composition to make multiple assertions with a single matcher.

    Josh Clayton
    March 9, 2017
    • Web
    • RSpec
    • Ruby
    • Rails
    • Testing
  4. Lessons Learned: Avoiding Primitives in Elm

    Switching from primitive types to product types can improve confidence in correctness and compiler errors, but not without a cost.

    Josh Clayton
    January 10, 2017
    • Web
    • Elm
    • Haskell
  5. "Tell, Don't Ask" in Elixir: A Story of Pattern-Matching

    Write declarative Elixir code by applying “Tell, Don’t Ask”.

    Josh Clayton
    December 21, 2016
    • Web
    • Phoenix
    • Functional Programming
    • Elixir
  6. Make Phoenix Even Faster with a GenServer-backed Key Value Store

    Skip adding another dependency and leverage GenServer and Erlang Term Storage to build an in-memory key-value store for even faster Phoenix applications.

    Josh Clayton
    July 13, 2016
    • Web
    • Elixir
    • Phoenix
  7. Refactoring to a Monad Transformer Stack

    Leverage monad transformer stacks to consolidate common patterns in Haskell CLIs.

    Josh Clayton
    July 5, 2016
    • Haskell
    • CLI
  8. Testing Elixir Plugs

    Unit-test your Elixir Plugs with a few quick tips.

    Josh Clayton
    May 11, 2016
    • Web
    • Elixir
    • Testing
    • Phoenix
  9. Routing in Elm with Hop and Mailboxes

    Elegant routing in Elm with Hop.

    Josh Clayton
    May 3, 2016
    • Elm
    • Web
  10. Maybe Thinking

    By understanding Maybe, you begin to see code in a new light.

    Josh Clayton
    April 15, 2016
    • Functional Programming
    • Elm
    • Ruby
« 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