# Casey West > Personal website and blog of Casey West I lead the AI Infrastructure and Applied Engineering Developer Relations teams at Google Cloud. AI Infrastructure is GKE and the hardware beneath it—the accelerators, orchestration, and drivers that keep large training, fine-tuning, and inference jobs running—and the work is helping teams get the most out of the world's most capable AI hardware. Applied Engineering is a Developer Relations program I started in 2023: Google Cloud engineers co-engineer a mission-critical solution alongside a customer's own team, on the customer's project. It is not consulting and it is not sales. Self-sufficiency is the deliverable, and the engagement worked only if the customer no longer needs us when it ends. Across both teams, agents are arriving in production at real scale, and my teams build the governance, security, and performance foundations that let enterprises run them with confidence. ## Content * [A Call for More Tech Leadership](/a-call-for-more-tech-leadership.md): Tech leadership is a critical discipline we need to cultivate. * [A Field Is Not a Process](/a-field-is-not-a-process.md): A timestamp records when a wiki page was written. Nothing in the format runs to keep it true. Twenty-one years after I helped build a commercial wiki, the LLM-wiki idea is back, and it dropped the one part that mattered. Here's okfctl, which puts that check in CI. * [AI-Driven Development: Modernizing a Decade-Old Website in 3 Days](/ai-driven-development-modernizing-a-decade-old-website-in-3-days.md): A case study on migrating a decade-old Jekyll website to Astro in just 3 days by partnering with AI (Google Gemini) for planning, coding, and building custom development tools. * [Building gemini-search-mcp: Grounding, Citations, and Choosing a Gemini Model](/building-gemini-search-mcp-grounding-citations-and-choosing-a-gemini-model.md): The builder's companion to Governed Growth—the same reference repo from the implementer's chair. Why I built a one-tool MCP server to hand an assistant a reliable, governed Google search, how Gemini grounding and citation extraction work in the code, and how a full, human-validated eval picked the default model. The surprise: gemini-3.1-flash-lite matched the larger models on quality, grounded most reliably, and cost the least. * [Building Scalable AI Agents: A Deep Dive into Decoupled Tools with ADK, MCP, and Cloud Run](/building-scalable-ai-agents-a-deep-dive-into-decoupled-tools-with-adk-mcp-and-cloud-run.md): A deep-dive playbook for building scalable, enterprise-grade AI agents. Learn how to move beyond monolithic designs by decoupling tools with a powerful microservices architecture using ADK, the Model Context Protocol (MCP), and Google Cloud Run. * [Compute Scarcity Is Permanent. Build a Ladder.](/compute-scarcity-is-permanent-build-a-ladder.md): Every resilience pattern you know assumes the machine shows up. Accelerator scarcity breaks that assumption, and the pattern catalogs have not caught up. Here is the Compute Fallback Ladder—an ordered set of rungs your workload can run on, a selector that picks the highest obtainable one, and a promotion path back up when capacity returns. * [Durable Communication](/durable-communication.md): It's not inherently harder to be a tech lead while remote or on a distributed team – it's more deliberate. * [GitHub Gives You Two Rate Limits. You're Only Using One.](/github-gives-you-two-rate-limits.md): GitHub's REST and GraphQL APIs have separate hourly rate limits—two budgets, not one. Most automation hammers a single bucket while the other sits full. Here's how to see both, why agents drain GraphQL fast, and how routing work across both effectively doubles your headroom. * [Governed Growth, Part 1: Better Together, Governed Apart](/governed-growth-part-1-better-together-governed-apart.md): Opening a platform to more teams and more models—first-party and partner, such as Gemini and Claude—quietly assumes those capabilities share one trust boundary. They don't. Multi-model expansion is a governance-maturity story: Google Cloud lets you grant capability broadly while keeping each model's data path a deliberate, fine-grained decision. You can grow usage without growing exposure. * [Governed Growth, Part 2: The Retention Window That Quietly Shrank](/governed-growth-part-2-the-30-day-retention-you-didnt-opt-into.md): On February 23, 2026, Google quietly made the retention terms for Grounding with Google Search better: the window dropped from thirty days to up to three, and what's kept narrowed from your prompts and output to short-lived debug logs. The old thirty-day, prompts-and-output language didn't vanish—it now describes Grounding with Google Maps, a sibling capability under the same terms. Here's what the corrected terms actually say, how to verify the date yourself from Google's dated archive, and the durable lesson: govern facts that move—cite the dated primary source, hedge the number, and don't hard-code a digit that will drift out from under you. * [Governed Growth, Part 3: Default-Deny for Model Capabilities](/governed-growth-part-3-default-deny-for-model-capabilities.md): Parts 1 and 2 argued that a capability's trust boundary is a separate decision from the model's. Part 3 is the runbook that makes the decision stick: the org-policy constraints that gate partner web search and structured outputs, set once at the organization tier by gcloud and Terraform, plus the seams org-policy doesn't reach—VPC Service Controls, request-response logging, the grounding-provider choice. Which toggle, at which scope, with deny-wins precedence, so a good-faith developer can't trip a data path nobody chose. * [Governed Growth, Part 4: Multi-Model, Governed, and Boring](/governed-growth-part-4-multi-model-governed-and-boring.md): The finale of the series: the mature end-state the first three parts build toward. When every server-side capability's trust boundary is a decision on record—the deployment tier you chose, the toggle you set, the contract you signed—saying yes to another team stops being a risk assessment and becomes a lookup. Fine-grained capability governance is what buys you safe expansion. Maturity, not lock-in. Boring, in the way a well-run system is boring. * [Integrated Tests Are a Scam](/integrated-test-are-a-scam.md): The point of test driven development is not to do testing; it's to learn about the quality of our design. * [Obtainability, Part 1: The Other Half of Scarcity](/obtainability-part-1-the-other-half-of-scarcity.md): You went to Spot VMs for the discount and did the homework: checkpoint code, a drain handler, a preemption survived. Then a job sat in Pending for days across three regions and never got a single L4. Scarcity grew a second half. Interruption is losing capacity you have; obtainability is failing to get capacity at all, and you can't checkpoint your way out of a stockout. Part 1 of the series that builds the probe the Compute Fallback Ladder left unbuilt. * [Obtainability, Part 2: The API That Tells You What You Can Get](/obtainability-part-2-the-api-that-tells-you-what-you-can-get.md): There's a beta Compute Engine endpoint that answers "can I get twenty Spot VMs of a given machine type in this region right now?" with a number between zero and one, and most teams on Spot have never called it. A working tour of the capacity-advice APIs (advice.capacity and advice.capacityHistory): the exact request, the exact response, and the roles/compute.viewer plus ADC setup that gets you there. Read the per-zone shards, not just the headline obtainability score. The shards tell you where your capacity actually is. Then how to read the number well: these scores are advisory by design, they move between calls, and a score you read as a reservation will steer you wrong at the worst possible moment. Part 2 of the Obtainability series. * [Redefining Culture Fit](/redefining-culture-fit.md): Moving beyond superficial 'culture fit' towards shared values for building truly inclusive and effective teams. * [Schedule the Accelerators: A GPU/TPU Puzzle](/schedule-the-accelerators-a-gpu-tpu-puzzle.md): I'm hiring a Senior Developer Relations Engineer for GKE and AI Infrastructure. Instead of describing the work, I built it: a small, playable cluster scheduler that teaches the real problem behind running AI at scale—gang scheduling, memory ceilings, spot preemption, and a TPU slice with actual topology. * [Taming the Python Hydra: A Modern Dev Environment with uv](/taming-the-python-hydra-a-modern-dev-environment-with-uv.md): Stop wrestling with Python versions and dependencies. Learn how to build a fast, simple, and unified development environment using uv * [The Agentic Manifesto: Engineering in the Era of Autonomy](/the-agentic-manifesto.md): Traditional SDLC fails for autonomous AI. The Agentic Manifesto introduces the Agentic Delivery Lifecycle (ADLC)—a new operating model for engineering, governing, and tuning non-deterministic systems at scale. * [The Code-Generation Percentage Your Org Shouldn't Be Measuring](/the-code-generation-percentage-your-org-shouldnt-be-measuring.md): "Percent of code AI-generated" is this era's lines-of-code: easy to compute from a diff, trivially gamed, and silent on whether anyone can explain the system in six months. Here is what the field data actually shows when authoring gets cheap, why the number you're setting OKRs against measures the stage that stopped being the bottleneck, and four replacement metrics graded by whether you can compute them today. * [The Help Timer](/the-help-timer.md): Wait an hour to ask for help. No more, no less. * [There's Still No Silver Bullet (2006)](/theres-still-no-silver-bullet.md): A contemporary look on Brooks' essay No Silver Bullet: Essence and Accidents of Software Engineering * [Three Kubernetes Projects Shipped a Brake Pedal This Month. Why?](/three-kubernetes-projects-shipped-a-brake-pedal-this-month.md): In one week of late-August 2026, Agent Sandbox, Kueue, and LeaderWorkerSet each shipped a limiter on their own elasticity: a warm pool that refills more slowly, a field that used to be editable and is now frozen, and an autoscaler that ships with a guard against doing what it was asked. The reason they converged now is pod churn against a control plane built for slower turnover and accelerator scarcity that rules out idle capacity—two pressures that turn a refill loop into a thundering herd of its own making. Read at the level of what each controller actually does—the exact flags, the quota invariant, the no-shrink floor—it's the same lesson three times. A control loop you add to smooth a system will, past some load, become the fastest-moving thing in it, and the grown-up move is to bound it. Plus the honest counter-case, because the same week also shipped features that add elasticity. * [Unlock Elite Agents: The Art of Evolving LLM Prompts into System Masterpieces](/unlock-elite-agents-the-art-of-evolving-llm-prompts-into-system-masterpieces.md): Explore the evolution from basic LLM interactions to crafting sophisticated System Instructions, and discover how meta-prompting—using AI to refine AI prompts—can unlock more powerful and collaborative AI agents. This post details the journey and a practical approach to building AI that helps you build better AI. * [Your Agents Aren't Too Insecure. They're Too Awake.](/your-agents-are-too-awake.md): Agent density is a lifecycle problem, not an isolation problem. Google's own GKE Agent Sandbox benchmark puts the sandbox at 44% and suspend and resume at up to 3.5x—the sandbox is the smaller half. And upstream Kubernetes 1.37 is quietly turning checkpoint and restore into a kubelet primitive. Here's why the economics live in the lifecycle, not the box. * [Your Software Is Made of People](/your-software-is-made-of-people.md): The delivery of meaningful value to customers requires the actions of both people and technical objects. One can’t improve without the other. * [Casey West](/about.md): About Casey West, who leads Google Cloud Developer Relations for AI infrastructure and Applied Engineering. * [Casey West - Resume](/resume.md): Casey West's professional resume.