Skip to main content
thoughtbot thoughtbot
  • We're live 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
We're live 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
  • Giant Robots Smashing Into Other Giant Robots Podcast
  • Design Sprint Guide
  • Live Streaming on LinkedIn
View all Resources

Web Articles

Written by thoughtbot, your expert partner for design and development.

    • All Topics
    • Design
    • Development
    • Product
    • More topics
  1. Ruby Memoization and Alternatives

    As Ruby developers, we tend to memoize too often.

    Joël Quenneville
    December 5, 2018
    • Ruby
    • Web
  2. Announcing: Our Online Learning Platform Upcase is Now Free!

    We’ve got some big news about our online learning platform Upcase, and we think you’re gonna love it!

    Chris Toomey
    October 18, 2018
    • News
    • Upcase
    • Rails
    • Web
    • Git
    • Vim
    • tmux
  3. ActiveRecord's where.not and nil

    ActiveRecord’s where.not has some potentially surprising behavior when it comes to null values.

    Stephen Hanson
    June 22, 2018
    • Rails
    • Web
  4. New in Lucky: Browser tests with LuckyFlow, Emails with Carbon, and built-in Authentication with Authentic

    Lucky v0.10 adds tons of new features for testing in a browser, sending emails, and handling authentication.

    Paul Smith
    June 5, 2018
    • Lucky
    • Crystal
    • Web
  5. Good Things Come to Those Who Await

    How using async/await can make your async JavaScript code clearer.

    Tom Wey
    June 4, 2018
    • JavaScript
    • Web
  6. 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
  7. Updating Our Technical Interview

    When our technical interview began to feel “off”, we identified pain points and crafted a new experience, resulting in less bias, reduced variance, and a more accurate representation of day-to-day work.

    Josh Clayton
    May 11, 2018
    • Web
    • Rails
    • Hiring
    • Interviews
  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
  11. Sign up to receive a weekly recap from thoughtbot

    Looking for even more ways to stay connected?
    RSS feed Check out our feeds
« First ‹ Prev … 10 11 12 13 14 15 16 17 18 … Next › Last »

Footer

thoughtbot
  • Services
  • Case Studies
  • Resources
  • Let's Talk
  • Our Company
  • Careers
  • Purpose
  • Blog
  • Events
  • Sponsor
  • Store
  • 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
  • Code of Conduct
  • Accessibility Statement
  • Privacy Policy