McGarrah Technical Blog

Ceph OSD Recovery After Power Failure: SAN Switch Was Dead the Whole Time

· 11 min read
A power outage knocked my Ceph cluster from 15 healthy OSDs down to 4. The recovery took days of debugging — heartbeat cascades, a ceph.conf misconfiguration, and a dead SAN switch hiding behind NO-CARRIER flags on every node.

Integrating Jekyll-Pandoc-Exports Into a Real Project - Part 3: Bugs, Fixes, and HTML Cleanup

· 11 min read
What happens when you integrate your own Jekyll plugin into a real project: three patch releases, a Ruby language gotcha, and the surprising difficulty of converting themed HTML into clean documents.

Building a Jekyll Plugin for Automated Document Exports - Part 2: Technical Implementation

· 7 min read
Technical deep-dive into Jekyll plugin development: hooks system, Pandoc integration, and document generation features. Part 2 of building a professional Ruby gem.

Ruby Gem Release Automation - Part 1: Infrastructure Implementation

· 14 min read
Building a complete release automation pipeline for Ruby gems with GitHub Actions, Read the Docs integration, and RubyGems publishing - lessons learned from 10+ manual steps to single command deployment.

Posts