Engineering Practices
These posts are about the habits and conventions that separate a team that ships from a team that talks about shipping. Reviews that catch defects, PRs that fit in a brain, tests that mean something, and knowing when 'good enough' is the right call.
AI Code Review Is Mostly Noise
AI code reviewers are the hot dev-tool category of 2026. After months of real use on a review queue, the signal-to-noise ratio is bad. Here are the numbers.
Read more ThinkingYour AI Coding Speedup Is Not What You Think
AI coding tools promise a 10x speedup. After a year of daily Claude Code use, the real number on a real codebase is closer to 1.5x. Here is what I measure.
Read more PracticesThe Test That Passes When Prod Is Broken
Your unit tests are mostly testing your mocks. When the mock drifts from the real dependency, tests pass and prod breaks. The fix is harder than it looks.
Read more DevopsYour Logs Are a Pile, Not a System
Log levels exist for a reason. Most codebases ignore the reason, log everything at INFO, then wonder why the logs are useless during an actual incident.
Read more PracticesNobody Reads a 1,000-Line Diff
The math on PR review quality is brutal. Past 400 lines, defect detection collapses, approvals get rubber-stamped, and your review process is theatre.
Read more PracticesGood Enough Is a Strategy
In engineering, perfectionism is often procrastination disguised as craftsmanship. Shipping an 80% solution and iterating beats a perfect solution shipped late.
Read more PracticesPremature Abstraction Is Worse Than Duplication
DRY is right, but not yet. Three identical code blocks are better than one wrong abstraction that fights you for months. Wait until the pattern is obvious.
Read more ThinkingThe Senior Engineer's Job Is to Say No
Knowing what not to build is more valuable than knowing how to build it. The hardest skill I learned as a senior engineer had nothing to do with code.
Read more DevopsThe Deploy That Took Down Friday
Friday deploys have a reputation for a reason. Here's why they go wrong, what guardrails actually help, and when it's okay to ship on a Friday anyway.
Read more ThinkingWhy Most Technical Debates Don't Matter
Tabs vs spaces. REST vs GraphQL. Monolith vs microservices. Some technical debates matter, but most don't. Here's how I tell the difference after a decade.
Read more PracticesGit Best Practices for Modern Engineering Teams
A visual guide to Git branching: staging vs production setups, GitFlow vs Trunk-Based Development, and the commands that matter, with diagrams and examples.
Read more