Blog
Things I shipped, broke, measured, and learned — written down before I forget the numbers.
AI engineering, frontend architecture, SEO at scale, and growth. Every claim carries a number, because vibes don't deploy.
AI adoption is not AI transformation
Most teams measuring AI success count tokens and licenses. The teams actually transforming ship different workflows and different metrics. Here's the line between the two, plus an uncomfortable test for which side you're on.
All posts
7 notes
3 min
The AI slop loop, and how I write with AI anyway
41% of long-form LinkedIn posts are fully AI-generated and platforms ship buttons to report it. The tell isn't one phrase, it's uniformity. My rules for using AI without sounding like it, including the ones I break.
aiwritingcommunication2 min
Growth engineering: what >1000 weekly signups taught me about funnels
We built a multiposting system across 8+ platforms that became the most profitable acquisition channel: >70% wizard conversion, under €10 cost per signup, 3x return in 90 days. The numbers, and what actually moved them.
growthproduct-engineeringanalytics2 min
Decoupling a monolith without breaking revenue
We migrated a revenue-critical frontend off a Scala monolith with 100% uptime and zero revenue disruption. Strangler fig routing, edge rewrites, typed boundaries, test-gated RSC adoption. The actual playbook, including what made it work.
architecturemigrationnextjs2 min
SEO-first architecture for platforms with millions of pages
Programmatic pages live or die on crawl, render, and index. What we built for a high-traffic job platform: SSR-first rendering, structured data in CI, self-building sitemaps. And why the AI layer shipped last.
seonextjsperformance2 min
What a Frontend Center of Excellence actually does
A CoE isn't a committee that writes guidelines nobody reads. Ours aligns frontend decisions across product teams: standards with reasons, tooling as enforcement, review at the architecture layer. What worked, and the failure mode to avoid.
engineering-leadershipfrontendteams2 min
Treat your design system like a product, not a library
A design system succeeds when teams adopt it, not when its Storybook looks complete. What building and modernizing one taught me about adoption metrics, API design, and reading team workarounds as bug reports.
design-systemsreactfrontend3 min
Agents write the PRs now. Who reviews?
Code generation got cheap. Review didn't. The asymmetry is the whole problem with autonomous agents in real codebases, and the reason review load per shipped change decides whether your agent loop works.
aicode-reviewagents