The Blog
Insights on code quality, architecture analysis, and technical debt.
AI Makes You Code 4x Faster. It Also Creates 4x More Debt.
AI coding assistants boost velocity but leave behind duplicate blocks, missing abstractions, and untested code. Here's what the research shows — and how to catch it before it compounds.
Why Linters Miss Your Worst Bugs
ESLint, Clippy, and Ruff are great at what they do. But file-by-file analysis has a fundamental blind spot: it can't see your architecture. Here's what graph analysis catches that linters never will.
Circular Dependencies: What They Are, Why They're Dangerous, and How to Fix Them
Circular dependencies silently rot your codebase. Learn what causes dependency cycles, why file-by-file linters can't detect them, and how graph algorithms like Tarjan's SCC find and fix them.
How to Actually Measure Technical Debt
Stop arguing about technical debt and start measuring it. Here's how to combine cyclomatic complexity, coupling, cohesion, and graph-based metrics into a score that tracks real structural decay.
11 Rust CLI Tools Every Developer Should Know in 2026
A curated list of Rust-powered CLI tools that are faster, simpler, and better than their predecessors. From ripgrep to Repotoire, these tools replace slow scripts with single-binary speed.