Writing
Notes on software engineering, consulting, and the projects I'm building.

My AI-automated dev setup: MCP servers for your board, Postgres, and CI
Wiring an AI coding agent into your task board, database, and CI with MCP servers — the ticket-to-PR loop, the guardrails, and where it still needs a human.

FinOps for AI: track token spend like you track cloud spend
Token bills are the new cloud waste. How to apply FinOps discipline to LLM usage — attribution, budgets, unit economics, and the optimization levers that actually move the number.

Giving an AI agent database access without losing sleep: roles, sandboxes, audit
A layered approach to letting an AI agent query your database safely: read-only roles, sandbox schemas, row-level security, allowlists, and audit logging.

Self-hosted AI: when your company legally can't use ChatGPT
A practical look at why some companies can't just use the ChatGPT API, what a real self-hosted AI stack looks like in 2025, and when it's actually the right call versus a compliant cloud option.

One GPU server for a 50-person company: minimum viable internal AI
A pragmatic, minimum-viable setup for internal AI at a small company: one GPU box, a gateway, SSO, a chat UI, and a rollout plan — without over-building.

What self-hosted AI actually costs: GPU box vs API bills
Honest cost math for self-hosted AI — purchase vs rental, power and ops time, utilization as the variable that decides everything, and when API pricing actually wins.

Choosing an open-weight model for internal use: build an eval, ignore the leaderboard
Leaderboard scores don't transfer to your tasks. A practical structure for building a 30-50 case eval set from your own data, scoring it, and running it in CI on every model or prompt change.

RAG without the SaaS: Postgres + pgvector on your own infra
You probably don't need a dedicated vector database. A practical guide to running RAG on pgvector in the Postgres you already operate — schema, indexes, hybrid search, and honest limits.