Latest Articles

Some of my recent thoughts on design, development, and the tech industry.
Why I Stopped Writing Components and Started Writing Composables

Why I Stopped Writing Components and Started Writing Composables

Using components as the primary unit of reuse couples logic to rendering and breeds 600-line files. The mental model shift that makes Vue 3 codebases navigable six months later.
From Engineer to Lead: The Shift Nobody Prepares You For

From Engineer to Lead: The Shift Nobody Prepares You For

Becoming a lead sounds like a promotion and feels like a completely different job — because it is. On invisible work, the coding trap, and measuring success by other people's growth.
Building a Reusable Skill for Vue 3: From Architecture Principles to a Published GitHub Standard

Building a Reusable Skill for Vue 3: From Architecture Principles to a Published GitHub Standard

When you've explained the same architectural pattern for the seventh time this month, that's not mentoring — it's a missing abstraction. How I codified senior-level Vue 3 patterns into a shareable standard.
Scaling Frontend Teams Without Losing Code Quality

Scaling Frontend Teams Without Losing Code Quality

What actually breaks when a frontend team grows from 5 to 30 engineers, and which enforcement mechanisms survive contact with real humans under real deadlines.
Paginating Complex CTEs in PostgreSQL: Lessons from a Real Chat App

Paginating Complex CTEs in PostgreSQL: Lessons from a Real Chat App

OFFSET feels right and embarrasses you in production. A practical look at cursor pagination, structuring CTEs honestly, and the DISTINCT ON trap, drawn from a real chat app.
Taming Supabase Realtime in a Tauri App: Sleep, Wake, and Reconnection

Taming Supabase Realtime in a Tauri App: Sleep, Wake, and Reconnection

Supabase Realtime and laptop sleep modes have a complicated relationship. Here's the hybrid reconnection approach that actually held up in production for a Tauri v2 desktop app.
Built with Nuxt UI • © 2026