Mutation testing in Rust: getting started with cargo-mutants

The Rust chapter of the mutation-testing series: what the technique measures, why the number is stronger than line coverage, and how to run cargo-mutants against a real Rust crate in five minutes.

July 25, 2026 · 14 min · Omar Crosby

Design patterns as vocabulary

Not a catalog of the Gang of Four patterns — an argument for why they’re foundational. Design patterns are a shared vocabulary that lets you read a codebase’s architectural intent from the names alone, and the value of that shared language transcends any specific programming language.

July 20, 2026 · 14 min · Omar Crosby

Hexagonal architecture, in plain language

A jargon-free introduction to hexagonal architecture — the idea that your business logic should sit in the middle and the outside world (databases, screens, APIs, tests) should plug into it through simple, agreed-upon shapes. Small worked examples in Python, Go, and Rust show what changes when a new requirement arrives.

July 20, 2026 · 16 min · Omar Crosby

Regular expressions across Unix, Python, Go, and Rust

A tour of regular expressions shallow enough to onboard a beginner and deep enough to refresh an expert — literals, quantifiers, groups, lookaround, and the engine differences between PCRE-family backtrackers and RE2-family linear-time engines that power grep, Python, Go, and Rust.

July 20, 2026 · 21 min · Omar Crosby

Distributing CLI tools with a personal Homebrew tap

How to publish Python, Go, and Rust command-line tools through your own Homebrew tap — including a personal GitHub account, GoReleaser and cargo-dist for platform builds, and go-semantic-release for automatic version bumps that flow all the way through to brew upgrade.

July 20, 2026 · 14 min · Omar Crosby