Writing

Thoughts on code, building products, and shipping fast.

React Native7 min read · Mar 28, 2026

How I fixed a memory leak in FlatList that was crashing Spindare's social feed

A real-time social feed with 1000+ posts was grinding to a halt. Here's how I tracked the leak and fixed it for good.

Architecture9 min read · Mar 14, 2026

Why I rebuilt Spindare's authentication flow in 48 hours — and don't regret it

The old auth setup worked fine until it didn't. An honest breakdown of the decision, the rewrite, and what I'd do differently.

Backend11 min read · Feb 22, 2026

Supabase Realtime vs Firebase for social feeds: what I found after stress-testing both

I needed a real-time feed for 10k+ concurrent users. Both promised it. Only one delivered.

Design8 min read · Feb 8, 2026

Building a design system for a 300-component React Native app

When your app has 300 components and 3 developers, design tokens aren't optional. This is how we built ours.