Portfolio 2026
Thoughts on systems, frontend engineering, motion, and scalable architecture.
Resuming after interrupt() re-runs the whole LangGraph node, so a tool that already ran executes again. What my comparison test caught, why it happens, and four ways to guard against it.
I killed, hung and broke the primary provider behind my LLM gateway under load. Fallback worked for crashes but failed every request when the provider hung, because a timeout setting was never applied.
A practical look at shipping dynamic mobile UI without app-store releases — visual builder, versioned publishing, and a Flutter SDK that renders JSON into 30+ components.
Why I built the EDUCRM backend on the plain pg driver with hand-written SQL migrations, how tenancy and roles work, and what I'd do differently.
How FaceClass evolved: a first version on a commercial face SDK, then a rebuild on TensorFlow and Google ML Kit with a local vector database, now running at 4–5 institutes.
The difference between caching data locally and being truly offline-first — what I've shipped and the sync design I'd use for a real offline-first app.
Signing, store listing pitfalls, crashlytics after launch, and what I wish I had automated before the first production binary.
Feed