---
title: "Blog // Field Notes, Page 11 · FoundrySoft"
description: "Engineering notes from senior practitioners on generative AI, retrieval systems, and the real work of shipping LLM-powered software to production."
image: "https://foundrysoft.co/api/og?type=page&title=Engineering+intelligent+software&st=Production-grade+software+and+AI+systems+for+teams+who+need+more+than+another+demo."
url: "https://foundrysoft.co/blog/page/11"
---

Field notes · 224 articles

# Notes from the foundry

Practical notes on AI, business software, and the decisions behind a production build.

## More field notes

AI, software, and business

[

Tutorial // DevTools

## Spin Up Sandboxed Subagents with the Antigravity CLI

Google's Antigravity 2.0 CLI lets you delegate work to sandboxed subagents. A practical walkthrough of wiring it into a real dev workflow.

19 Jun 2026 11 min read Read article

](https://foundrysoft.co/blog/antigravity-cli-subagents)

[

Tutorial // MCP

## Build an MCP Server to Connect Claude to Your Database

A practical tutorial on the Model Context Protocol: build a TypeScript MCP server that lets Claude query your database safely, with tools and guardrails.

19 Jun 2026 13 min read Read article

](https://foundrysoft.co/blog/build-mcp-server-claude-database)

[

Tutorial // Infrastructure

## Self-Host a Coding LLM with vLLM

Open-weight coding models are good enough to self-host now. A practical guide to serving one with vLLM and calling it through an OpenAI-compatible API.

18 Jun 2026 12 min read Read article

](https://foundrysoft.co/blog/self-host-coding-llm-vllm)

[

Tutorial // Search

## Build a Semantic Search Engine with Embeddings and Qdrant

A Python tutorial: embed your data, store it in Qdrant, and run semantic search that understands meaning, then add keyword hybrid search and reranking.

18 Jun 2026 12 min read Read article

](https://foundrysoft.co/blog/semantic-search-embeddings-qdrant)

[

Engineering // LLMs

## Shipping Generative AI Features Without Breaking Production

A field guide to taking LLM-powered features from a flashy demo to a system you can trust on a Friday afternoon.

18 Jun 2026 8 min read Read article

](https://foundrysoft.co/blog/shipping-generative-ai-features)

[

Tutorial // Voice AI

## Build an AI Voice Agent with Twilio and a Realtime Model

Wire a phone number to an AI: a Node tutorial connecting Twilio Media Streams to a realtime speech model so callers can talk to your agent.

17 Jun 2026 14 min read Read article

](https://foundrysoft.co/blog/ai-voice-agent-twilio-realtime)

[

Tutorial // MCP

## Build an OAuth-Secured MCP Server

Secure a Model Context Protocol server with OAuth 2.1. A TypeScript walkthrough of bearer token validation, scopes, and protecting tools.

17 Jun 2026 13 min read Read article

](https://foundrysoft.co/blog/oauth-secured-mcp-server)

[

Tutorial // Workflows

## Build a Durable Multi-Step Workflow with Claude Opus 4.8

Opus 4.8 shipped with a dynamic workflow capability. Here's how to build a crash-safe, multi-step workflow that an LLM drives end to end.

16 Jun 2026 13 min read Read article

](https://foundrysoft.co/blog/durable-workflow-opus-4-8)

[

Tutorial // Evals

## Add an Eval Harness to Your LLM App

Stop shipping on vibes. A TypeScript tutorial for building a lightweight eval harness: datasets, scorers, an LLM-as-judge, and a CI gate.

16 Jun 2026 12 min read Read article

](https://foundrysoft.co/blog/llm-eval-harness-typescript)

[

Tutorial // DevTools

## Build a Code Completion Backend with Codestral

Codestral is Mistral's model built for code. Here's how to stand up a fill-in-the-middle code completion backend you can wire into an editor.

15 Jun 2026 11 min read Read article

](https://foundrysoft.co/blog/code-completion-backend-codestral)

[

Tutorial // Agents

## Build a Multi-Agent Workflow with LangGraph

A Python tutorial: model a researcher, writer, and reviewer as a LangGraph state machine, with shared state, conditional edges, and a review loop.

15 Jun 2026 14 min read Read article

](https://foundrysoft.co/blog/multi-agent-workflow-langgraph)

[

Tutorial // DevTools

## Build an AI Code Review Bot for Your Pull Requests

A TypeScript tutorial: a GitHub Action that sends your PR diff to Claude and posts a focused, useful review comment, without the noise.

14 Jun 2026 13 min read Read article

](https://foundrysoft.co/blog/ai-code-review-bot-claude)

[

AI // Retrieval

## RAG Is Not a Silver Bullet · It's a Retrieval Problem

Why most retrieval-augmented generation systems underperform, and the unglamorous fixes that actually move the needle.

29 May 2026 6 min read Read article

](https://foundrysoft.co/blog/rag-is-not-a-silver-bullet)

[

Insights // Hiring

## How to Evaluate an AI Development Partner

A practical checklist for CTOs vetting an AI development agency, covering evals, IP, security, cost, and the questions that separate builders from demo shops.

22 May 2026 9 min read Read article

](https://foundrysoft.co/blog/how-to-evaluate-ai-development-partner)

[

Insights // Architecture

## Vendor Lock-In with LLMs: How to Keep Providers Swappable

Prices change, models get deprecated, and providers face export limits overnight. How to architect LLM features so you can switch providers without a rewrite.

15 May 2026 9 min read Read article

](https://foundrysoft.co/blog/avoid-llm-vendor-lock-in)

[

Insights // Cost

## Cutting LLM Cost 50% Without Wrecking Quality

A practical playbook for bringing down LLM spend: model routing, prompt caching, context discipline, and batching, with the quality tradeoffs spelled out.

8 May 2026 9 min read Read article

](https://foundrysoft.co/blog/cut-llm-cost-without-wrecking-quality)

[

Insights // Cost

## What It Really Costs to Run an LLM Feature in Production

Token bills are only part of it. The true cost of an LLM feature: inference, retrieval infra, evals, monitoring, and the engineering time nobody budgets for.

1 May 2026 10 min read Read article

](https://foundrysoft.co/blog/real-cost-of-llm-feature-in-production)

[

Insights // Infrastructure

## Should We Self-Host an LLM? A Cost and Control Framework

Self-hosting an open-weight model can save money or quietly cost more. A CTO's framework for deciding based on volume, privacy, control, and the true total cost.

24 Apr 2026 9 min read Read article

](https://foundrysoft.co/blog/should-we-self-host-an-llm)

[

Insights // Architecture

## RAG vs Fine-Tuning vs Long Context: Which, and When

Three ways to get a model to use your data, often confused. When retrieval, fine-tuning, or a big context window is the right call, and when to combine them.

17 Apr 2026 10 min read Read article

](https://foundrysoft.co/blog/rag-vs-fine-tuning-vs-long-context)

[

Insights // Strategy

## When AI Is the Wrong Tool (and Cheaper Options Win)

Not every problem needs an LLM. A candid look at where rules, search, or plain software beat AI, and how to tell before you spend the budget.

10 Apr 2026 8 min read Read article

](https://foundrysoft.co/blog/when-ai-is-the-wrong-tool)

[‹ Prev](https://foundrysoft.co/blog/page/10) [1](https://foundrysoft.co/blog) [2](https://foundrysoft.co/blog/page/2) [3](https://foundrysoft.co/blog/page/3) [4](https://foundrysoft.co/blog/page/4) [5](https://foundrysoft.co/blog/page/5) [6](https://foundrysoft.co/blog/page/6) [7](https://foundrysoft.co/blog/page/7) [8](https://foundrysoft.co/blog/page/8) [9](https://foundrysoft.co/blog/page/9) [10](https://foundrysoft.co/blog/page/10) 11 [12](https://foundrysoft.co/blog/page/12) [Next ›](https://foundrysoft.co/blog/page/12)

```json
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "FoundrySoft",
  "url": "https://foundrysoft.co",
  "logo": "https://foundrysoft.co/logo.svg",
  "description": "FoundrySoft builds production-grade software and AI systems for US companies, from an India-based team of senior engineers.",
  "sameAs": [
    "https://github.com/foundrysofthq",
    "https://www.linkedin.com/company/foundrysoft",
    "https://www.instagram.com/foundrysoft/"
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "FoundrySoft",
  "url": "https://foundrysoft.co"
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "Blog",
  "name": "FoundrySoft Blog",
  "url": "https://foundrysoft.co/blog/page/11",
  "blogPost": [
    {
      "@type": "BlogPosting",
      "headline": "Spin Up Sandboxed Subagents with the Antigravity CLI",
      "url": "https://foundrysoft.co/blog/antigravity-cli-subagents",
      "datePublished": "2026-06-19"
    },
    {
      "@type": "BlogPosting",
      "headline": "Build an MCP Server to Connect Claude to Your Database",
      "url": "https://foundrysoft.co/blog/build-mcp-server-claude-database",
      "datePublished": "2026-06-19"
    },
    {
      "@type": "BlogPosting",
      "headline": "Self-Host a Coding LLM with vLLM",
      "url": "https://foundrysoft.co/blog/self-host-coding-llm-vllm",
      "datePublished": "2026-06-18"
    },
    {
      "@type": "BlogPosting",
      "headline": "Build a Semantic Search Engine with Embeddings and Qdrant",
      "url": "https://foundrysoft.co/blog/semantic-search-embeddings-qdrant",
      "datePublished": "2026-06-18"
    },
    {
      "@type": "BlogPosting",
      "headline": "Shipping Generative AI Features Without Breaking Production",
      "url": "https://foundrysoft.co/blog/shipping-generative-ai-features",
      "datePublished": "2026-06-18"
    },
    {
      "@type": "BlogPosting",
      "headline": "Build an AI Voice Agent with Twilio and a Realtime Model",
      "url": "https://foundrysoft.co/blog/ai-voice-agent-twilio-realtime",
      "datePublished": "2026-06-17"
    },
    {
      "@type": "BlogPosting",
      "headline": "Build an OAuth-Secured MCP Server",
      "url": "https://foundrysoft.co/blog/oauth-secured-mcp-server",
      "datePublished": "2026-06-17"
    },
    {
      "@type": "BlogPosting",
      "headline": "Build a Durable Multi-Step Workflow with Claude Opus 4.8",
      "url": "https://foundrysoft.co/blog/durable-workflow-opus-4-8",
      "datePublished": "2026-06-16"
    },
    {
      "@type": "BlogPosting",
      "headline": "Add an Eval Harness to Your LLM App",
      "url": "https://foundrysoft.co/blog/llm-eval-harness-typescript",
      "datePublished": "2026-06-16"
    },
    {
      "@type": "BlogPosting",
      "headline": "Build a Code Completion Backend with Codestral",
      "url": "https://foundrysoft.co/blog/code-completion-backend-codestral",
      "datePublished": "2026-06-15"
    },
    {
      "@type": "BlogPosting",
      "headline": "Build a Multi-Agent Workflow with LangGraph",
      "url": "https://foundrysoft.co/blog/multi-agent-workflow-langgraph",
      "datePublished": "2026-06-15"
    },
    {
      "@type": "BlogPosting",
      "headline": "Build an AI Code Review Bot for Your Pull Requests",
      "url": "https://foundrysoft.co/blog/ai-code-review-bot-claude",
      "datePublished": "2026-06-14"
    },
    {
      "@type": "BlogPosting",
      "headline": "RAG Is Not a Silver Bullet · It's a Retrieval Problem",
      "url": "https://foundrysoft.co/blog/rag-is-not-a-silver-bullet",
      "datePublished": "2026-05-29"
    },
    {
      "@type": "BlogPosting",
      "headline": "How to Evaluate an AI Development Partner",
      "url": "https://foundrysoft.co/blog/how-to-evaluate-ai-development-partner",
      "datePublished": "2026-05-22"
    },
    {
      "@type": "BlogPosting",
      "headline": "Vendor Lock-In with LLMs: How to Keep Providers Swappable",
      "url": "https://foundrysoft.co/blog/avoid-llm-vendor-lock-in",
      "datePublished": "2026-05-15"
    },
    {
      "@type": "BlogPosting",
      "headline": "Cutting LLM Cost 50% Without Wrecking Quality",
      "url": "https://foundrysoft.co/blog/cut-llm-cost-without-wrecking-quality",
      "datePublished": "2026-05-08"
    },
    {
      "@type": "BlogPosting",
      "headline": "What It Really Costs to Run an LLM Feature in Production",
      "url": "https://foundrysoft.co/blog/real-cost-of-llm-feature-in-production",
      "datePublished": "2026-05-01"
    },
    {
      "@type": "BlogPosting",
      "headline": "Should We Self-Host an LLM? A Cost and Control Framework",
      "url": "https://foundrysoft.co/blog/should-we-self-host-an-llm",
      "datePublished": "2026-04-24"
    },
    {
      "@type": "BlogPosting",
      "headline": "RAG vs Fine-Tuning vs Long Context: Which, and When",
      "url": "https://foundrysoft.co/blog/rag-vs-fine-tuning-vs-long-context",
      "datePublished": "2026-04-17"
    },
    {
      "@type": "BlogPosting",
      "headline": "When AI Is the Wrong Tool (and Cheaper Options Win)",
      "url": "https://foundrysoft.co/blog/when-ai-is-the-wrong-tool",
      "datePublished": "2026-04-10"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://foundrysoft.co/"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Blog",
      "item": "https://foundrysoft.co/blog"
    }
  ]
}
```
