Seven gems to run background jobs. That's what 37signals was running before they said "this can't be right."
In Episode 6 of Making Software, I talked to Rosa Gutiรฉrrez, Principal Programmer at 37signals and board member of the Rails Foundation. She built Solid Queue, the database-backed job queue that ships with Rails 8 by default, and we got into how it was built, what open source maintainership actually looks like, and why Ruby is having a moment again.
Seven gems, one problem. 37signals was running seven separate gems just to cover the edge cases Resque didn't handle natively. That became the brief for Solid Queue.
Disks got fast. Redis got optional. Solid Queue is built on the same insight as Solid Cache: modern database storage is cheap and fast enough that you don't need a separate in-memory service for a lot of production workloads.
What happens when millions of developers start using your gem. Going from internal 37signals tooling to bundled-in-Rails means your edge cases multiply overnight. Rosa walks through what that transition felt like, the good contributions, the bad ones, and the more recent arrival of agent-written PRs.
Readable code is a design choice. Rosa spent a lot of time debugging Resque's internals and adjacent gems that had no naming conventions in common. She decided Solid Queue would never make someone feel that way. She also points out she wrote it pre-AI, when you couldn't just ask Claude to explain it to you.
Ruby is well-suited for AI agents, and the community knows it. Convention-over-configuration turns out to be great for agents too. Rosa explains why the Ruby ecosystem is seeing a quiet comeback, and what the Ruby Triathlon says about the community holding it together.
Things that stuck with me
Seven gems to manage background jobs. The team looked at what they were running and said "this can't be right." That became the brief for Solid Queue. Rosa got picked for the project, built it in production at Hey first, iterated on it for months, and shipped it into Rails 8. She keeps calling it luck. I don't think it's luck.
She mentioned almost as a side note that it's mostly agents opening issues and PRs now. "Agents are polite, so that's nice." She'd just been describing contributors who didn't read the README, opened sparse issues, were occasionally rude. That contrast was funny, and also a bit telling.
As Rosa said it, being nice is free.
What's a gem or library you've used where reading the source code took forever? What made it hard? Let me know in the comments!
Listen to the full episode
Available on YouTube, Apple Podcasts, and Spotify.
Thanks for reading! ๐
Top comments (0)