# doug.sh > Doug Calobrisi. Things I built, things I broke, and how the second one led to the first. Building things with keyboards and end mills. Rabbit holes included. Every post is also available as plain Markdown at its URL plus `index.md`. ## Posts - [Keeping vLLM's Prefix Cache Warm Between Agent Turns](https://doug.sh/posts/vllm-kv-cache-agents/index.md): What vLLM's cache tiers hold, why coding agent traffic keeps invalidating them, and the Bifrost tool schema bug that cost 90 to 180 seconds on the turns it hit. - [Tuning a Local Coding Agent: Oh My Pi and Qwen3.8-27B on Two RTX 3090s](https://doug.sh/posts/tuning-a-local-coding-agent-oh-my-pi/index.md): How I cut a self-hosted coding agent's wait per turn from 28 seconds to 7 with Oh My Pi, a thinking budget and a warm vLLM prefix cache. - [erm: A Local CLI That Strips Ums, Uhs, and Erms From Speech](https://doug.sh/posts/erm-a-local-cli-that-strips-ums-uhs-and-erms-from-speech/index.md): A tour of erm, a local CLI that removes disfluencies from English speech recordings using faster-whisper, a few detectors that look at the audio directly, and ffmpeg. - [Give Your Coding Agent a Journal](https://doug.sh/posts/give-your-coding-agent-a-journal/index.md): A plain markdown journal file, updated as the agent works, is a simple and effective form of memory for LLM harnesses like Claude Code. - [Route53 as a Key Value Store, 2026 Edition](https://doug.sh/posts/route53-as-a-key-value-store-2026-edition/index.md): A modernized take on using Route53 TXT records as a key-value store from GitHub Actions: OIDC auth, no static keys, and a cleaner update flow. - [Using Route53 as a Key Value Store in GitHub Actions](https://doug.sh/posts/using-route53-as-a-key-value-store-in-github-actions/index.md): Use Route53 private hosted zone TXT records as a cheap key-value store for GitHub Actions, with composite actions that set and get values through the AWS CLI. - [Using Composite Actions with GitHub Actions](https://doug.sh/posts/using-composite-actions-with-github-actions/index.md): Composite Actions let one GitHub Action run several shell steps in bash, Python, Node or PowerShell. How to write one, pass inputs and outputs, and call it. ## Pages - [About](https://doug.sh/about/index.md): Who writes this and why. - [Projects](https://doug.sh/projects/index.md): Open source I maintain, with docs under https://doug.sh/docs/. ## Optional - [Subscribe](https://doug.sh/subscribe/): New posts by email. - [RSS](https://doug.sh/index.xml): The feed. - [JSON Feed](https://doug.sh/feed.json): The same feed as JSON Feed 1.1. - [JSONL](https://doug.sh/index.jsonl): One post per line. - [CSV](https://doug.sh/index.csv), [TOML](https://doug.sh/index.toml), [YAML](https://doug.sh/index.yaml), [Markdown](https://doug.sh/index.md): The post list in other formats.