Why Developer Experience Deserves More Attention
Developer experience is a real lever most teams underinvest in. The friction is small each time and invisible on any roadmap, which is exactly why it never gets fixed.
1060 words
|
5 minutes
Cover Image of the Post
Building an In-App DevTools Panel
The frontend is local, but the state that drives it is remote. Here's the friction that creates, and the panel I built to get cheap control over it.
1283 words
|
6 minutes
Cover Image of the Post
What workon Does, and How It Helps My Day
A look at workon, my Claude Code plugin that carries a ticket to a merge request, what it runs, what it refuses to do, and how it changes my day.
1071 words
|
5 minutes
Cover Image of the Post
How to Build Good AI Skills
What I learned building skills for an AI coding harness: where the boundary between a skill and a script goes, why the description has a budget, and how to make one fire only when you ask.
1579 words
|
8 minutes
Cover Image of the Post
Your AI Writes the Code. You Do Everything Else.
My AI assistant is genuinely good at one thing: writing the code in front of it. Everything wrapped around that is still mine, and that turned out to be most of the job.
950 words
|
5 minutes
Cover Image of the Post
How I Turned My Mac Mini Into a Home Server with Portless
From nginx reverse proxies to simple HTTPS local domains in minutes. Here's how Portless transformed my Mac mini server setup.
953 words
|
5 minutes
Cover Image of the Post
Building a Visual Identity with Nano Banana and Opal
How I brought Frutiger Aero and Solarpunk aesthetics to my blog using AI image generation and Opal
1568 words
|
8 minutes
Cover Image of the Post
My Hybrid CSS Approach: Tailwind + Native CSS
I used to hate Tailwind. Now I use it for 80% of my styling—but native CSS handles the rest. Here's why this hybrid approach works.
731 words
|
4 minutes
Cover Image of the Post