My words.

I think, I dig, I build, I write.

How a picture becomes a knitting chart

Chart Minder's image importer, derived stage by stage: grid detection as projection profiles of edge energy with a median gap estimator, three sampling estimators for a cell's color, and Hartigan's leader algorithm doing the clustering a k-means would be wrong for. With the arithmetic written out, a worked example, and references to where each method comes from.

How I improved AR image tracking

How LivePhoto's tracking was tuned: a matcher patched to stop locking onto screenshots (6 → 15 inliers plus geometric pose gates), a motion-gated dead-band smoother that kills jitter without adding lag, and a first-frame budget that makes the lock feel free. All numbers from source, all thresholds tuned on real phones.

I started on Supabase. Now almost everything I build runs on Cloudflare.

A personal take on Supabase vs. Cloudflare for side projects — why I left, where Supabase still wins, and the real architecture, performance, and cost differences, with examples from apps I actually shipped.

Why I stopped building agent tools

An honest account of why I mostly stopped shipping agent tools — the cost that keeps moving, the effort that's mostly glue, the fact that everyone is building the same all-purpose agent, and the uncomfortable truth that models improve faster than your code can stay relevant. Plus what I still build, and why research is the real leverage.

How Job Assistant is built - Backend & Agents

A comprehensive architectural deep dive into the 7+ microservices that power Job Assistant. Parallel agent swarms, structured JSON extraction, and building "anti-robotic" attributes on the Edge.

How Job Assistant is built - Frontend

Deep dive into the frontend engineering challenges of Job Assistant - DOM extraction, Style Isolation and Caching strategies.