Blog

Notes from
the trenches.

Angular, React, TypeScript and the unglamorous parts of shipping software – written down so you don't repeat my mistakes.

How Much Does It Cost to Build a Chrome Extension in 2026?

Realistic Chrome extension development costs in 2026 – price ranges by complexity, what actually drives the budget (MV3, AI, backend, store review), timelines, and the hidden maintenance costs founders forget.

Frontend Architecture Audit: What It Is, When You Need One, and What Good Looks Like

A practical guide to frontend architecture audits – the signals that you need one, what a rigorous audit covers, what the deliverable should contain, and how to act on it.

AngularJS to Angular Migration: A Field Guide from a 100k-Line Production Rescue

How to migrate a large AngularJS codebase to modern Angular without stopping feature delivery – strategy, sequencing, testing, and the traps I hit doing it on a production platform.

Building an AI Chrome Extension to 10,000 Users: Manifest V3 Lessons from Upwex

Real-world Manifest V3 architecture for AI-powered Chrome extensions: service worker lifetime, content-script isolation, store review, and LLM cost control – lessons from building Upwex.

TypeScript at Scale: 10 Practices That Survive 100k Lines

TypeScript practices that matter in large production codebases – strictness that pays for itself, discriminated unions, unknown at the boundaries, satisfies, branded types, and where to show restraint with generics.

React Server Components in Practice: What Actually Changes in a Production App

React Server Components beyond the theory – the real mental model, where the server/client boundary should sit, the caching layers that actually bite, and when RSC is the wrong tool.

Angular Signals in Production: From First Signal to a Signals-First Architecture

A practical guide to Angular Signals from production experience – signal, computed and effect done right, signal inputs, RxJS interop, migration strategy for large codebases, and the pitfalls that only show up at scale.