Nothing is safe from a curious mind.

Storm Cloudy

Notes on software engineering, debugging, and shipping systems that survive real users. About me →

  • Sending email from alias via Gmail  blog

    Send mail from a forwarding alias address through your normal Gmail account using SMTP and a Google App Password — works on personal Gmail and Google Workspace.  More »
  • Git Branch Exists on Remote But Won't Show Locally  blog

    How to diagnose and fix git branches that appear in ls-remote but not in git branch -r — covering stale remote-tracking refs, scoped fetch refspecs, and the one-line config fix.  More »
  • What Is MCP and Why Should Developers Care?  blog

    A plain-language explainer of Model Context Protocol — what it is, how hosts, servers and clients work together, and why the open standard matters for developers building with AI.  More »
  • Fixing Godot MCP in Cursor on WSL  blog

    Three specific bugs that prevent godot-mcp from connecting in Cursor on WSL — tilde expansion in JSON, comments breaking JSON parsing, and the real culprit: Cursor is a Windows app that can't see your WSL Node binary.  More »
  • Multi-Model LLM Orchestration with OpenRouter  blog

    How to route AI requests across multiple LLM providers using OpenRouter — covering model selection by task type, streaming, fallback handling, and cost tracking with a single API.  More »
  • Adding Semantic Search to Your Postgres App with pgvector  blog

    How to add vector similarity search to an existing Postgres app using pgvector — covering extension setup, embedding generation, cosine similarity queries, and HNSW indexing for performance.  More »
  • Building a Context-Aware AI Chat Without a Vector Database  blog

    How to ground an AI chat app in your own data using system prompt assembly — a lightweight alternative to full RAG that works well when your data is structured and modest in size.  More »
  • How I Built an AI Document Ingestion Pipeline  blog

    A walkthrough of building Symport — an app that photographs any document and extracts structured JSON using GPT-4o vision. Covers prompt engineering, image preprocessing, graceful fallback, and the Prisma + pgvector data model.  More »
  • Turning Manual Ops Into a 10-Minute Task  blog

    How I used PHP scripting and a temporary MySQL database to turn a 2-week manual data update process into a 10-minute automated pipeline — with a dashboard for human review before pushing to production.  More »
  • Multi-Select in Visual Studio Code  blog

    How VS Code's multi-cursor feature finally pulled me away from Sublime Text after years of loyalty — plus the Mac shortcuts you actually need.  More »
© 2026 Sym