Blogs
Testing Anti-Pattern: Distracting Setup Data - SaturnCI - Continuous Integration for Ruby on Rails
Every month I walk to the end of my driveway and stuff my mailbox with a tall stack of letters. Actually, I have to repeat this process a few times, because stack is too tall to fit in my mailbox all at once, and each month it gets a little taller...
Sidekiq to Temporal: a zero-downtime migration strategy | FireHydrant
Scaling always presents good problems to solve. Runbooks are the heart of our incident management platform and the automation they provide allow customers to focus on fighting fires faster. As FireHydrant grew, our runbooks automation evolved from...
On building a framework-agnostic Ruby gem (and making sure it doesn’t break)
What I learned supporting ERB, React, and Vue from a single Ruby gem. And how I keep it from breaking with automated iOS tests.Ruby Native needs to work with ERB, React, and Vue. That’s three frameworks, three sets of conventions, and three ways d...
Protecting rubygems.org from the outside in: DoS prevention and compromised passwords - RubyGems Blog
Every gem published to rubygems.org ends up running on someone’s computer. It’s up to rubygems.org to ensure that each gem contains what it claims, that its metadata is well-formed, and that the person who pushed it is who they say they are.
We’v...
Dynamic Ruby And Hidden Maintenance Costs · Daniela Baron
Ruby makes it easy to write dynamic code, and Rails amplifies this with ActiveSupport conveniences like constantize and classify. When you discover these capabilities, it feels empowering, like you're writing less code that does more. But there's ...
Improving on Sandi Metz's Gear Class from POODR - SaturnCI - Continuous Integration for Ruby on Rails
Chapter 2 of Sandi Metz's Practical Object-Oriented Design: An Agile Primer Using Ruby (POODR), "Designing Classes with a Single Responsibility", opens by giving an example of a class which represents the concept of a bicycle gear. First, a bit ab...
From 25 Minutes to 14 Seconds: Migrating 9,000 Tests to Minitest with an AI Agent Swarm
The RSpec suite took 25 minutes on a MacBook Pro M3 Pro. The migrated Minitest suite runs the same models in 14 seconds. I built a 6-gate multi-agent pipeline in Claude Code to migrate 9,000+ tests, using specialized agents with strict I/O contrac...
Agentic Engineering in Practice: Bringing a Vibe-Coded Rails Project Back to Life | Gurzu
A fast-moving Ruby on Rails project looked successful on the surface, but the codebase told a different story. Here’s how restoring Rails conventions, adding targeted tests, and improving deployments turned a fragile app into a stable, maintainabl...