Journal
Posts and long-form series on AI, startups, venture capital, and more.
All Posts
Pedal Wrencher Is Back
Eleven years after launch and eight years after shutting it down, my Strava-powered bike maintenance tracker is live again at pedalwrencher.com.
Easy Beans (Borracho-Style Pinto Beans)
Lazy borracho-style beans built on rendered pork belly scraps, poblano, tomato, and a can of beer, simmered low until they turn creamy and rich.
Charred Roasted Salsa
A smoky roasted salsa built on broiler-charred plum tomatoes, onion, and chiles, blended with garlic, cumin, chipotles in adobo, and lime.
Distilling Skills From a Knowledge Base You Build While You Work
How to combine Swamp and the Open Knowledge Format: grow an OKF knowledge base across your projects as agents work, then distill reusable skills from it.
PyGeoHash v3.3.1: A Round of Sharp-Edge Fixes
PyGeoHash v3.3.1 is a bugfix release that closes a buffer overrun, rejects bad coordinates, fixes distance and bounding box edge cases, and ships py.typed.
Swamp Club: Deterministic Automation for AI Agents
Swamp is an automation framework built to be operated by AI agents rather than by people writing pipelines. What it is, and how I run my autopilot on it.
Mexican-Style Grilled Meat Marinade (With a Little Miso)
A bright, citrusy carne asada-style marinade with lime, orange, cilantro, and chiles, plus a couple tablespoons of white miso for depth. Great on skirt steak, flanken ribs, or pork belly.
Setting Up Lexicon with Claude Code and Claude Desktop
A walkthrough of connecting Lexicon's MCP server to Claude Code and Claude Desktop so your prompt library becomes available as slash commands.
Google's Open Knowledge Format
Google Cloud's Open Knowledge Format is a tiny markdown spec for feeding curated context to AI agents. What it is, and how I've been using it.
Building Reusable Prompt Templates in Lexicon
How to use Lexicon's template system to build reusable, parameterized prompts with variables, validation, and multi-message chains.