My musings on software design and product updates.

All of my long-form thoughts on software design and product updates.

On JavaScript Errors

Exploring why error handling in JavaScript is such a challenge, and how a simple question on X triggered a flurry of opinions.

The rise of vibe coding

Shipping without coding is addictive and it feels like the future, but it isn't quite production-ready... yet.

Simulating Row-Level Security in MySQL with Clerk and Prisma

MySQL doesn’t natively support RLS, so if you’re using PlanetScale like I do, you’re out of luck. However, there is a way of working around this by extending your Prisma client with a custom extension.

Neutral is shutting down

After three years and 4613 trees planted, Neutral is shutting down.

Making react-syntax-highlighter "editable"

react-syntax-highlighter is a great tool for highlighting code snippets, but it is not editable. Let's hack an editable state together!

Replacing JS Libraries with Intl

Strip down your bundle size by replacing some of the most popular JS libraries with native browser APIs.

The story of Presumi

How I started a data analytics startup and partnered with SEEK.