Vivid experiments turned into words

All of my long-form thoughts on system building, science, and startups.

An LLM Abstraction Layer with Pre-Built Agents

Factory pattern over Gemini, Claude, and OpenAI, plus LangGraph ReAct agents with structured-output schemas that hand callers typed Pydantic objects.

One Interface, Five Scraping Backends

Factory pattern, Pydantic DTOs, and a circuit-breaker AUTO mode — the abstraction layer behind a multi-backend scraper.

Server-Sent Events, in Production

How I stream a live feed of items from a Django backend to a React frontend over plain HTTP — and the two traps that make SSE look broken until you find them.

The Full-Stack Deployment Checklist: Django, DRF, Next.js, Docker, VPS

A step-by-step, airline-style preflight checklist for bootstrapping, containerizing, and deploying a full-stack web app to a VPS. Covers Django + DRF + Celery + Redis + Postgres on the backend, Next.js on the frontend, Docker Compose for orchestration, and Coolify for one-click deploys. Every command is copy-paste ready, every file edit points to a specific section — not a full file dump.

The Self-Hosting Rabbit Hole

Self-hosting swaps convenience for control. I dropped a costly analytics service for a chance to self-host its open-source core with Coolify. Not to save money, but to start owning my setup. This article discusses vendor lock-in, encourages readers to check out Hetzner’s VPS solutions, and shares a few other tips for self-hosting.

The Gap That LeetCode's 30 Days of JavaScript Actually Fills

Discover how LeetCode's 30 days of JavaScript challenge links theoretical programming concepts to practical engineering patterns, bridging the gap between CS education and real-world development.