Technical writing, AI product engineering consulting, and conversations about building AI into existing products.
Let's be honest: I thought I understood signals after learning computed() and effect(). I was using them. They were working. My components were cleaner. Life was good. Then I built a search filter that lagged noticeably — and made me wonder if I'd ac...

A few years ago, some very smart developers on my team solved a problem Angular hadn't addressed yet: how do you handle async state cleanly across an enterprise application? Their answer was elegant. A ResponseService that wraps any observable into a...

Let's be honest — I've written allowSignalWrites: true more times than I'd like to admit. Every time, it felt like a hack. Every time, I told myself I'd come back and fix it properly. Then last week, I actually did come back. There it was — code I de...
