thoughts on code & life
Automating GPU-Aware Finetuning for Embedding Models
How chasing a broken batch sampler turned into rewriting our embedding finetuning stack around cached supervised contrastive loss and a compiler that turns training intent into hardware-aware execution plans.
Your Errors Deserve a Domain Model
Why application errors need shared types, boundary remapping, and observability so product meaning survives from backend to UI.
Introducing OpenAPI HTTPX
A typed HTTPX client generated from OpenAPI in a single file, TypedDicts and @overloads for the wire, your SDK on top.
It’s Never too Late to Learn Something New
A personal story about how blogging led me into software engineering, and why it’s never too late to learn new skills — from web development to AI.