Parallel CI Deprecation Tracking in next_rails
I recently contributed two features to the next_rails gem: parallel CI support for the deprecation tracker and a deprecations merge command to combine the results. This post explains the problem, t...
Senior Ruby on Rails Engineer · Rails Modernization Specialist
I take Rails applications that have fallen behind and bring them forward one version at a time, without pausing feature work. 10+ years of production Rails: upgrades from as far back as Rails 2, multi-tenant architecture, background jobs and memory work. Contributor to Ruby on Rails and to the upgrade tooling the community relies on.
I recently contributed two features to the next_rails gem: parallel CI support for the deprecation tracker and a deprecations merge command to combine the results. This post explains the problem, t...
The Setup I run a clinical assistance system where doctors manage patient consultations, hospitalizations, and referrals. Every one of those records needs a printable PDF: prescriptions, discharge...
My order management app had 187 passing tests. Green suite, clean Rubocop, zero Brakeman warnings. I added system tests and immediately found six bugs. None of them were logic bugs. Every single o...
The Problem My Rails app was running Vite. It worked: HMR in development, fingerprinted assets in production, Tailwind through PostCSS. But Vite is a JavaScript tool that happens to serve a Rails ...
The Problem I run a clinical assistance system where each hospital gets its own subdomain, one.doctors.com, two.doctors.com, and so on. Each hospital has its own doctors, patients, and data. The s...
A few weeks ago I looked at my dotfiles AI configuration and realized I’d over-engineered it. What started as a clean centralization effort had grown into a web of submodules, global MCP servers, a...
Why HAML in the First Place When I started building the clinical assistance app, HAML felt like a breath of fresh air. No closing tags. No angle brackets everywhere. Just clean, indentation-based ...
The Original Setup When I started this Rails app back in 2018, Sprockets was the only game in town. It bundled your JavaScript, compiled your CSS, fingerprinted assets for cache busting — and you ...
Rails 7.2 shipped native PWA scaffolding: a manifest.json.erb and a service-worker.js under app/views/pwa/. Two files, two routes, and your Rails app is installable. But one piece was still missing...
The Starting Point The Doctors app — is a multi-tenant Rails 8.1 application. Each clinic gets its own subdomain: demo.doctors.com, drasmith.doctors.com, and so on. File storage goes to Cloudflare...
The Timeline I started the Doctors app — the clinical assistance system I’ve been writing about recently — in October 2018 on Rails 5.2.1 with Ruby 2.5.1. Today it runs Rails 8.1 on Ruby 3.4.8. Th...
Last weekend I migrated my Doctors App from Heroku to Railway. It’s a multi-tenant Rails app where each hospital gets its own subdomain — one.doctors.com, two.doctors.com, and so on. Five hospita...
The Setup I’m building a multitenant order management system for cafes and restaurants. Orders come in, the kitchen sees a live queue, waiters track item status — all updating in real time across ...
Why even consider R2? There are plenty of good reasons to use AWS S3 in a Rails application, and for most teams it works perfectly well. However, one concern that comes up frequently is cost over...
Install MySQL on Linux MySQL is one of the most popular open-source relational database management systems. In this guide, we’ll walk you through the steps to install MySQL on Linux. Prerequisit...