Writing

Public notes on the engineering I do and the decisions behind it. One theme so far; the umbrella grows as I publish.

Modern Angular

Production Angular modernization without rewrites: Signals, RxJS, zoneless, rendering, testing, patterns, and decoded errors.

40 articles

Explore →

Recent

Guide · 8 min · Jun 19, 2026

How I Use AI Agents Day to Day Without Handing Them the Wheel

A production filter for daily AI-agent work: what I delegate, what I keep, and where review remains the engineering boundary.

Read article →

Guide · 10 min · Jun 19, 2026

Spec-Driven Development With Claude, Codex, and the Superpowers Plugin

A working model for using Claude Code, Codex, and Superpowers around a spec, so agents implement decisions instead of inventing them mid-diff.

Read article →

Guide · 7 min · Jun 12, 2026

Choosing an Angular Test Runner in 2026: Vitest, Jest, or Karma

A decision map for the Angular test runner question, by where your suite actually starts, and why 'Cypress vs Vitest' is the wrong question.

Read article →

Error · 9 min · Jun 9, 2026

NG0203: Why inject() Fails Outside an Injection Context

Why Angular throws NG0203 when inject() runs outside an injection context, the exact window where inject() is valid, the common traps, and the fixes ranked from field initializer to runInInjectionContext.

Read article →