Writing.
Essays on the software I build and the unglamorous work that keeps production quiet.
- Oct 16, 2025VIM: quick look upEssential commands, motions, and muscle-memory patterns for daily VIM usage.3 min
- Sep 30, 2025Think Before You `install`: How a Git Clone Can Compromise Your SystemHow a malicious package or postinstall hook can silently compromise your system.8 min
- Sep 16, 2025Fine-Tuning Llama 3.2 1B: GPU vs CPU Deployment on Cloud RunComparing GPU and CPU inference paths on Cloud Run for a fine-tuned language model.10 min
- Sep 12, 2025Building a Minimalist Portfolio with SolidJSFrom blank page to deployed portfolio — signals, file-based routing, and zero-runtime CSS.7 min
- Jan 15, 2025Real-Time Data Pipelines: Go, WebSockets, and Apache Druid in ProductionMoving financial tick data with Go and WebSockets into Apache Druid — lessons from production.12 min
- Nov 2, 2024Complete Guide: Monitor FastAPI Apps with New Relic APMSetting up APM, distributed traces, and custom dashboards for a FastAPI application.6 min
- Nov 2, 2024Production Observability: Deploy Grafana Stack with OpenTelemetryOpenTelemetry collector, Loki, Tempo, and Prometheus — wired together in one compose file.8 min
- Oct 5, 2024Why Cloudflared Beats Ngrok: Zero-Config Tunnels for Local DevelopmentPersistent, authenticated tunnels with zero port-forwarding configuration needed.5 min
- Oct 5, 2024FastAPI Lifespan Events: Managing Resources and Background TasksManaging startup, shutdown, and long-lived resources without global state.6 min
- Oct 5, 2024Indexify in Action: Build Multi-Stage ML Pipelines at ScaleBuilding multi-stage ML document pipelines with built-in parallelism and retries.8 min
- Sep 1, 2024Smart Routing for RAG: Direct Queries to the Right Model Every TimeClassifying queries at the router to choose between dense retrieval and direct generation.7 min
- Aug 30, 2024pgvector: Scale Semantic Search in PostgreSQL Without New InfrastructureAdding semantic search to an existing PostgreSQL database — no new infra required.6 min
- Aug 15, 2024BAML: Type-Safe LLM Outputs with Compile-Time ValidationCompile-time validation for LLM outputs using a typed schema DSL.5 min
- Aug 9, 2024Supabase Best Practices: Row-Level Security and Edge Functions Done RightRow-level security patterns and edge function pitfalls worth knowing before you ship.7 min
- Jul 11, 2024Choosing the Right LLM Evaluation Framework: A Practical ComparisonLangSmith, RAGAS, and DeepEval — what each does well and when to reach for it.8 min