Ruby and Rails Performance Roundup: The Backlog Edition
Yet again instead of tweets, a blog post. The backlog got out of hand - 40 of them this time. Usual caveat: every number below is whatever the author measured on their own machine with their own...
View ArticleKarafka 2.6 and Web UI 1.0: Laying the Groundwork for Kafka Queues
I'm happy to announce that Karafka 2.6 and Karafka Web UI 1.0 have just been released. For those new here: Karafka is a Ruby and Rails multi-threaded, efficient Kafka processing framework, and its Web...
View ArticleSmall PRs, big speedups: The Ruby performance work you almost missed
Normally I just fire off a tweet when I spot a nice performance PR landing in Ruby. Lately I've been catching up on a backlog of Ruby performance work I'd bookmarked and never gotten around to - so...
View ArticleFrom Karafka Ractors to Yoichi Whisky: My RubyKaigi 2026 Experience
Introduction I just returned from RubyKaigi 2026, held from April 22nd to 24th in Hakodate, Hokkaido. For those unfamiliar with it, RubyKaigi is the biggest Ruby conference in the world, drawing...
View ArticleOne Thread to Poll Them All: How a Single Pipe Made WaterDrop 50% Faster
This is Part 2 of the "Karafka to Async Journey" series. Part 1 covered WaterDrop's integration with Ruby's async ecosystem and how fibers can yield during Kafka dispatches. This article covers another...
View ArticleClaude on Incus – All the autonomy, securely
Here's claude-on-incus (or coi for short) - a tool for running Claude Code freely in isolated Incus containers. If it's useful to you, a star helps. Note: I'm also working on "code-on-incus" - a...
View ArticleShoryuken Has a New Maintainer, and v7.0.0 Is Almost There
After a decade under Pablo Cantero's stewardship, Shoryuken has a new maintainer - me. I'm grateful for his graceful handoff of this Ruby SQS library, and I'm picking up where he left off: v7.0.0.rc1...
View ArticleRuby Floats: When 2.6x Faster Is Actually Slower (and Then Faster Again)
Update: This article originally concluded that Eisel-Lemire wasn't worth it for Ruby. I was wrong. After revisiting the problem, I found a way to make it work - and submitted a PR to Ruby. Read the...
View ArticleAnnouncing YARD-Lint: Keep Your Ruby Documentation Solid
TL;DR: YARD-Lint catches documentation issues, just like RuboCop for code. Star it and use it now. I am happy to announce the release of YARD-Lint, a comprehensive linter designed for YARD...
View ArticleWhen Your Hash Becomes a String: Hunting Ruby’s Million-to-One Memory Bug
Every developer who maintains Ruby gems knows that sinking feeling when a user reports an error that shouldn't be possible. Not "difficult to reproduce", but truly impossible according to everything...
View ArticleAnnouncing llm-docs-builder: An Open Source Tool for Making Documentation...
I am excited to announce the release of llm-docs-builder, a library that transforms Markdown documentation into an AI-optimized format for Large Language Models. TL;DR: Open source tool that strips...
View ArticleWhen Responsibility and Power Collide: Lessons from the RubyGems Crisis
The Ruby community experienced significant turbulence in September 2025 when Ruby Central forcibly took control of the RubyGems GitHub organization, removing long-standing maintainers without warning....
View ArticleWaterDrop Meets Ruby’s Async Ecosystem: Lightweight Concurrency Done Right
Ruby developers have faced an uncomfortable truth for years: when you need to talk to external systems like Kafka, you're going to block. Sure, you could reach for heavyweight solutions like...
View ArticlePast, Present, Future, and Brotherly Love: My Final RailsConf Journey
A few weeks have passed since RailsConf 2025, which was running from July 8th to 10th in Philadelphia, PA, and I've had time to process what was my first (and last) RailsConf experience. It wasn't just...
View ArticleAnnouncing Passive Queue: The Rails Background Job System That Transcends...
0ms processing time. Infinite scalability. 100% success rate. Zero failures. ← Give it a star if you enjoyed this zen approach! The Moment of Zen Clarity It was Day Two of RailsConf 2025 in sweltering...
View ArticleThe 60-Second Wait: How I Spent Months Solving the Ruby’s Most Annoying Gem...
Notice: While native extensions for rdkafka have been extensively tested and are no longer experimental, they may not work in all environments or configurations. If you find any issues with the...
View ArticleKarafka 2.5 and Web UI 0.11: Next-Gen Consumer Control and Operational...
Introduction Imagine pausing a problematic partition, skipping a corrupted message, and resuming processing - all within 60 seconds, without deployments or restarts. This is now a reality with Karafka...
View ArticleFrom pidfd to Shimanami Kaido: My RubyKaigi 2025 Experience
Introduction I just returned from RubyKaigi 2025, which ran from April 16th to 18th at the Ehime Prefectural Convention Hall in Matsuyama. If you're unfamiliar with it, RubyKaigi is the biggest Ruby...
View ArticleCertificate Apocalypse: Bringing Your Chromecast Back from the Dead
On March 9, 2025, many Chromecast 2nd generation and Chromecast Audio devices suddenly stopped working. Users like me could not cast content or set up their devices. This wasn't due to a software...
View ArticleBreaking the Rules: RPC Pattern with Apache Kafka and Karafka
Introduction Using Kafka for Remote Procedure Calls (RPC) might raise eyebrows among seasoned developers. At its core, RPC is a programming technique that creates the illusion of running a function on...
View Article