# Vondray Sanford > Senior Software Engineer with 7+ years shipping high-volume production systems in C#/.NET, React, and SQL Server, now building AI systems: RAG pipelines, multi-agent workflows, and MCP servers running on local NVIDIA DGX Spark GPU infrastructure. Portfolio: https://vondraysanford.com Key facts: - Track record: validated over $1T in historical records, cut a team's monthly support tickets by 90%, and supported enterprise systems serving 11K daily users. Employer names are deliberately withheld on this site; work history is available on request. - Education: B.S. Computer Science, Georgia Southern University. - Certifications (verifiable via links on the portfolio): Azure AI Engineer Associate (AI-102), Azure AI Fundamentals (AI-900), Azure Fundamentals (AZ-900), GitHub Foundations, GitHub Copilot, and Anthropic's MCP, Claude Code, Agent Skills, and Subagents courses. - AI lab: two NVIDIA DGX Sparks (GB10, 128 GB unified memory each) bridged over ConnectX-7, running vLLM and Ollama for local inference, fine-tuning, and benchmarking; currently serving GLM-5.3-Flash (320B MoE, 4-bit EXL3) tensor-parallel across both nodes. - Open source: MonoGame (XML API documentation), Cataclysm-DDA (item dimension fix + sprite fallbacks, two merged PRs), KanaDojo (trivia format + grammar entry), KodeKloud AI-102 (security fix for an exposed live Azure API key). - Contact: vondraysanford@gmail.com · GitHub: https://github.com/vondraysanford · Hugging Face: https://huggingface.co/vondraysanford ## Projects - [AgentReview](https://github.com/vondraysanford/Agent-Review): multi-agent pull-request review — an orchestrator fans a diff out to specialized quality, security, and docs agents (reaching Roslyn, Semgrep, and the GitHub API through MCP), then synthesizes one ranked review. Measured on seeded PRs: 100% precision, 17/18 recall, $0.068 per review. [Live demo](https://agentreview.vondraysanford.com/). - [DriftWatch](https://github.com/vondraysanford/DriftWatch): end-to-end MLOps pipeline predicting equipment failure from NASA turbofan sensor data — MLflow experiment tracking, secretless OIDC deployment to Azure, and Evidently drift detection that replays held-out operating regimes as production traffic and retrains a challenger when thresholds cross, with a human approving promotion. Measured on 24 held-out engines: 17/17 input columns flagged as drifted (0/17 on control traffic), champion ROC-AUC 0.50 on the new regime restored to 0.99 after retraining, about 16 minutes from drift verdict to approved promotion, $0 idle on scale-to-zero. [Live dashboard](https://driftwatch.vondraysanford.com/). - [DocQuery](https://github.com/vondraysanford/docquery): C#/.NET RAG pipeline with swappable providers — the same code runs fully local (Ollama + ChromaDB) or on Azure (OpenAI + AI Search) by flipping one config value. The [live demo](https://docquery.vondraysanford.com/) answers questions about Vondray. - [SparkDash](https://github.com/vondraysanford/SparkDash): dashboard and chat client for a vLLM server (health, tokens/s from Prometheus counter deltas, SSE chat with the model's reasoning separated from its answer), built end to end by GLM-5.3-Flash running on the two DGX Sparks in a 44-minute VS Code agent session against a spec and scorecard written beforehand. 16 tests, CI, the model's own session summary, and the cluster's first vllm bench serve numbers live in the repo. [Write-up](https://vondraysanford.com/writing/2026-09-14-sparkdash-i-gave-a-320b-model-a-spec-and-pointed-it-at-the-s.html). - [SparkBench](https://github.com/vondraysanford/SparkBench) (in progress, Sep–Nov 2026): benchmarks and fine-tuning studies on two NVIDIA DGX Sparks — a benchmarking suite across models and quantization levels, plus a flagship experiment that LoRA fine-tunes a 7–14B open model locally and tests whether it can replace the frontier model inside AgentReview's Quality Agent at matching precision and recall for near-zero marginal cost per review, with the harness, eval set, and schema frozen at a tagged commit. Seven working weekends, a binary exit test per phase, every result traced to an MLflow run. No results published yet. - [The 10X Engineer Toolkit](https://github.com/vondraysanford/The10XEngineerToolkit): stack-agnostic toolkit of skills, agents, prompts, templates, and workflows for engineering with AI coding agents (Claude Code, Copilot, Cursor), installable as a Claude Code plugin from the repo's marketplace. The thesis: put the practices of great engineers into a system so every ticket, review, and deploy gets the same care. - [Twitter Sentiment Bot](https://github.com/vondraysanford/TwitterSentimentAnalysisBot) (2022, early work): NLP pipeline scoring tweet sentiment plus a 13-feature XGBoost bot classifier, served through a Discord bot. ## Resume - [Resume (Markdown)](https://vondraysanford.com/resume.md) ## Writing Build logs and essays on AI engineering (34 posts, newest first): - [Your AI Coding History Is a Dataset. Here's How I'd Actually Use It.](https://vondraysanford.com/writing/2026-09-17-your-ai-coding-history-is-a-dataset-here-s-how-i-d-actually-.html) (2026-09-17): The ai-data-extractor project can pull your entire Claude Code, Cursor, and Cline chat history into structured data. That's interesting. What you do with it afterward is where things get genuinely useful. - [The "AI Safety Pact" Is a Cartel in a Lab Coat](https://vondraysanford.com/writing/2026-09-15-the-ai-safety-pact-is-a-cartel-in-a-lab-coat.html) (2026-09-15): When the CEOs of OpenAI, Anthropic, and Google DeepMind agreed to slow AI development for "safety," skeptics didn't have to look hard for the ulterior motive. This smells less like a safety pause and more like incumbents pulling up the ladder. - [SparkDash: I Gave a 320B Model a Spec and Pointed It at the Server Serving It](https://vondraysanford.com/writing/2026-09-14-sparkdash-i-gave-a-320b-model-a-spec-and-pointed-it-at-the-s.html) (2026-09-14): GLM-5.3-Flash, 320B parameters split across two DGX Sparks over a ConnectX-7 cable, built its own monitoring dashboard in 44 minutes. The scorecard was written before the session: what it got right, what broke, and whether the fixes went to the cause. - [320B on Two Sparks: What It Actually Takes to Run a Mixture-of-Experts Model Across a Home Cluster](https://vondraysanford.com/writing/2026-09-13-320b-on-two-sparks-what-it-actually-takes-to-run-a-mixture-o.html) (2026-09-13): I bridged two NVIDIA DGX Sparks, loaded a 320B open-weights MoE model across both, and wired the endpoint into GitHub Copilot Chat. Every step, every error, and every number, from cable to first correct answer. - [Engineering Patterns Beat Model Power: What the Google AI Agents Challenge Actually Proved](https://vondraysanford.com/writing/2026-09-10-engineering-patterns-beat-model-power-what-the-google-ai-age.html) (2026-09-10): Google's AI Agents Challenge surfaced something most people building multi-agent systems already suspect but rarely say out loud: the model isn't the bottleneck. The architecture is. - [DriftWatch, measured: what a logistic regression, a coin flip, and a 32-second cold start taught me about ML systems](https://vondraysanford.com/writing/2026-09-08-driftwatch-measured-what-a-logistic-regression-a-coin-flip-a.html) (2026-09-08): Six phases, 21 days, and every number measured. The wrap-up on DriftWatch: what it produced, what it cost, what broke, and what's still not done. - [The Four Patterns That Separate Toy Agents from Production Agents](https://vondraysanford.com/writing/2026-09-07-the-four-patterns-that-separate-toy-agents-from-production-a.html) (2026-09-07): Google's AI Agents Challenge revealed something most tutorials skip: what set the winning multi-agent systems apart was software engineering, not model choice. Four patterns kept showing up in the report, and none of them is an AI problem. - [The Model Was 20%: DriftWatch, Part 6](https://vondraysanford.com/writing/2026-09-04-the-model-was-20-driftwatch-part-6.html) (2026-09-04): Six phases, one thesis: the model is the small part. DriftWatch is done. This post has every number I measured, eight lessons each pinned to something that happened, and what the dashboard proved by being a page instead of a second app. - [The Monitor Caught It. The Loop Answered It. A Human Said Yes. — DriftWatch, Part 5](https://vondraysanford.com/writing/2026-09-04-the-monitor-caught-it-the-loop-answered-it-a-human-said-yes-.html) (2026-09-04): DriftWatch's drift phase is the one the whole project was built for. A real regime change dropped the champion model to ROC-AUC 0.50, the retrain loop brought a challenger back to 0.99, a screenshot exposed two bugs on the way, and a human still approves the promotion. - [Four Failures, One Green Run, and the Teardown That Held Every Time](https://vondraysanford.com/writing/2026-09-04-four-failures-one-green-run-and-the-teardown-that-held-every.html) (2026-09-04): DriftWatch Phase 4 build log: how enterprise DevOps experience, not ML theory, solved secretless CI/CD, identity scoping, and a managed endpoint that had to prove it worked before it was allowed to disappear. - [Raw Cycles In, Probability Out: DriftWatch, Part 3](https://vondraysanford.com/writing/2026-09-03-raw-cycles-in-probability-out-driftwatch-part-3.html) (2026-09-03): Phase 3 of DriftWatch is a FastAPI endpoint that accepts raw sensor cycles, computes features from the same code training used, and refuses to answer if it cannot write the prediction down. One decision drives all of it. - [Fifty Trials Couldn't Beat Logistic Regression: DriftWatch Part 2](https://vondraysanford.com/writing/2026-09-03-fifty-trials-couldn-t-beat-logistic-regression-driftwatch-pa.html) (2026-09-03): Phase 2 of DriftWatch covered training, MLflow tracking, and model registration in Azure ML. It ended with a surprise: a scaled logistic regression beat XGBoost, including XGBoost after 50 Optuna tuning trials, on engines none of the models had seen. - [Data Quarantine, Label Design, and the Phase Where You Fool Yourself: DriftWatch Part 1](https://vondraysanford.com/writing/2026-09-02-before-the-model-data-quarantine-label-design-and-the-phase-.html) (2026-09-02): DriftWatch Phase 1 had no model in it. It was still the phase where the assumptions that wreck ML projects get made, or don't: label leakage, contaminated holdouts, feature code that drifts from serving. I treated all of it as infrastructure work. - [Kiro Crew and the Case for Asynchronous Agents: What AWS Got Right (and What You Still Have to Wire Up)](https://vondraysanford.com/writing/2026-09-01-kiro-crew-and-the-case-for-asynchronous-agents-what-aws-got-.html) (2026-09-01): AWS open-sourced Kiro Crew to run multiple coding agents across sessions and tasks asynchronously. The architectural bet underneath, async by default, matters more than the feature list, and it comes with a bill for durable state that AWS doesn't pay for you. - [FrontierAgent Is Interesting. The Agent Team Mode Is the Part Worth Studying.](https://vondraysanford.com/writing/2026-08-28-frontieragent-is-interesting-the-agent-team-mode-is-the-part.html) (2026-08-28): FrontierAgent just open-sourced a multi-agent framework with ReAct and Agent Team modes baked in. I read the architecture with AgentReview fresh in my head and wrote up the questions I'd want answered before trusting the team mode. - [I Built a Twitter Bot Detector in 2022. I Finally Evaluated It Honestly in 2026.](https://vondraysanford.com/writing/2026-08-25-i-built-a-twitter-bot-detector-in-2022-i-finally-evaluated-i.html) (2026-08-25): A look back at the Python NLP pipeline I built in 2022: sentiment analysis, XGBoost bot detection, and the evaluation protocol I should have written four years ago. - [DriftWatch, Post 0: The Setup Weekend That Wasn't Boring](https://vondraysanford.com/writing/2026-08-24-driftwatch-post-0-the-setup-weekend-that-wasn-t-boring.html) (2026-08-24): DriftWatch is my third public AI engineering project, and it exists to prove one thing: the model is maybe 20% of an ML system. Phase 0 was supposed to be the boring setup weekend. It was not. - [Model Routing Is an Infrastructure Problem, Not a Prompt Problem](https://vondraysanford.com/writing/2026-08-17-model-routing-is-an-infrastructure-problem-not-a-prompt-prob.html) (2026-08-17): Google Cloud API Gateway's new model routing feature is getting framed as a developer convenience, but what it's really solving is a production infrastructure problem that anyone running multi-model AI workloads has already hit the hard way. - [MCP Goes Stateless: What the 2026-07-28 Spec Actually Changes for Agent Infrastructure](https://vondraysanford.com/writing/2026-08-13-mcp-goes-stateless-what-the-2026-07-28-spec-actually-changes.html) (2026-08-13): The 2026-07-28 MCP spec drops stateful session management entirely. I fought the old session model while building AgentReview's MCP server, so this change matters to me: MCP servers can finally scale like any other stateless HTTP service. - [Three AI Agents Reviewed the Same Pull Request (Here's What I Measured)](https://vondraysanford.com/writing/2026-08-09-three-ai-agents-reviewed-the-same-pull-request-here-s-what-i.html) (2026-08-10): AgentReview shipped. Three specialized agents reviewed 8 seeded PRs with 18 planted bugs and came back with 100% precision, 17/18 recall, and a cost of $0.068 per review. The one miss is written up honestly in the README. - [AgentReview Phase 5: Measuring My Own Agents, and Why Precision Needs a Human](https://vondraysanford.com/writing/2026-08-08-agentreview-phase-5-measuring-my-own-agents-and-why-precisio.html) (2026-08-09): Recall is easy to measure when you plant the bugs yourself. Precision is the metric that fights back. It took 45 manual judgments, a scoring worksheet, and a budget guard wired to every token cap before I trusted these numbers. - [AgentReview Phase 4: Fan-Out Is Easy. Synthesis Is the Hard Part.](https://vondraysanford.com/writing/2026-08-08-agentreview-phase-4-fan-out-is-easy-synthesis-is-the-hard-pa.html) (2026-08-09): Getting three agents to run concurrently took an afternoon. Merging their findings without losing signal took real design work, and the approach that survived pairs LLM judgment with plain deterministic code. - [AgentReview Phase 3: Three Agents, One Base Class, and Why Lane Discipline Is an Engineering Problem](https://vondraysanford.com/writing/2026-08-08-agentreview-phase-3-three-agents-one-base-class-and-why-lane.html) (2026-08-08): Once the review pipeline moved into a shared base class, the Security Agent came together in under a day and the Docs Agent went even faster. The proof: 55 tests, 15 committed sample reviews, and a security agent that stays quiet on all four non-security diffs. - [AgentReview Phase 2: One Real Agent, Real Tools, and Every Honest Mistake Along the Way](https://vondraysanford.com/writing/2026-08-07-agentreview-phase-2-one-real-agent-real-tools-and-every-hone.html) (2026-08-07): I built a C# Quality Agent that runs a PR diff through both Roslyn and Claude, then merges the results into one schema-locked findings list. Along the way I dealt with deduplication headaches, hallucinated resolution errors, undocumented MCP headers, and a fresh reminder that cost guardrails belong in code. - [AgentReview Phase 1: Build the MCP Server First, Ask Questions Later](https://vondraysanford.com/writing/2026-08-05-agentreview-phase-1-build-the-mcp-server-first-ask-questions.html) (2026-08-05): Before writing a single agent I built the tooling layer: an MCP server in C#/.NET wrapping Roslyn and Semgrep. Building in that order taught me plenty about scanner blind spots, protocol hygiene, and why LLM reasoning belongs on top of static analysis instead of beside it. - [Microsoft's Three-Layer LLM Routing Architecture: What It Gets Right (and What You Still Have to Figure Out Yourself)](https://vondraysanford.com/writing/2026-07-30-microsoft-s-three-layer-llm-routing-architecture-what-it-get.html) (2026-07-30): Microsoft's reference architecture for routing AI agent traffic on AKS splits the problem into three clean layers. I've built and run AI services on Azure in production, so I went through it looking for what holds up and what it leaves you to solve on your own. - [DocQuery Phase 4: Shipping a Public RAG Demo That Doesn't Lie About You](https://vondraysanford.com/writing/2026-07-29-docquery-phase-4-shipping-a-public-rag-demo-that-doesn-t-lie.html) (2026-07-29): DocQuery left my laptop. Turning a local RAG experiment into the live public Interview Vondray demo meant patching an SDK bug on the wire, chasing down an empty-answer mystery, and learning why corpus curation is a security decision. - [DocQuery Phase 3: The UX Layer That Makes a RAG Pipeline Feel Real](https://vondraysanford.com/writing/2026-07-27-docquery-phase-3-the-ux-layer-that-makes-a-rag-pipeline-feel.html) (2026-07-27): Streaming citations, live provider switching, and a side-by-side AI race mode. Phase 3 took DocQuery from a working pipeline to something that feels good to use. - [DocQuery Phase 2: Benchmarking Three AI Stacks So You Don't Have To](https://vondraysanford.com/writing/2026-07-25-docquery-phase-2-benchmarking-three-ai-stacks-so-you-don-t-h.html) (2026-07-25): I made DocQuery's entire AI stack swappable with a single config value, then raced a MacBook, an NVIDIA DGX Spark, and Azure against each other. The results overturned most of my assumptions about fast and cheap in local versus cloud inference. - [MCP Is the Real Story Behind AI Video Editors](https://vondraysanford.com/writing/2026-07-23-mcp-is-the-real-story-behind-ai-video-editors-here-s-why-tha.html) (2026-07-23): A wave of AI video tools now list MCP support as a headline feature. The interesting part is the protocol underneath, because it's going to show up in a lot more places than video editing. - [DocQuery Phase 1: Building a Local RAG Pipeline in .NET (and the War Stories Nobody Warns You About)](https://vondraysanford.com/writing/2026-07-20-docquery-phase-1-building-a-local-rag-pipeline-in-net-and-th.html) (2026-07-20): I built a fully local RAG app in .NET 10 with Ollama and ChromaDB: upload documents, ask questions, get cited answers. This post covers the architecture, the decisions behind it, and the problems I hit that no tutorial bothers to mention. - [AI Agents That Manage Kubernetes: What SRE AgenticOps Actually Looks Like in Practice](https://vondraysanford.com/writing/2026-07-14-ai-agents-that-manage-kubernetes-what-sre-agenticops-actuall.html) (2026-07-14): AI-powered SRE agents for Kubernetes are picking up steam fast. I dug into what they can do today, where they fall short, and how much of your infrastructure you should let them touch. - [Apple Chose Google Cloud Over AWS and Azure (What Does That Actually Mean?)](https://vondraysanford.com/writing/2026-07-03-apple-chose-google-cloud-over-aws-and-azure-here-s-what-that.html) (2026-07-03): Apple just ran Private Cloud Compute on Google Cloud for the first time, on NVIDIA Blackwell GPUs with dual-vendor attestation. The architecture choices behind that move say a lot about where confidential computing is headed. - [First Post: What This Blog Is About and Why I'm Writing It](https://vondraysanford.com/writing/2026-06-30-first-post-what-this-blog-is-about-and-why-i-m-writing-it.html) (2026-06-30): I'm Vondray Sanford, a software engineer with seven-plus years in enterprise systems. This blog is where I write up what I'm building and learning across .NET, AI engineering, and the infrastructure that keeps it all running. ## Machine-readable resources - [llms-full.txt](https://vondraysanford.com/llms-full.txt): every blog post as one markdown file - Every post has a markdown variant at the same URL with `.md` instead of `.html` - [feed.xml](https://vondraysanford.com/feed.xml): RSS feed - [posts.json](https://vondraysanford.com/writing/posts.json): blog manifest (title, excerpt, tag, date, file) - [sitemap.xml](https://vondraysanford.com/sitemap.xml)