Projects
These are the larger personal builds. Each one exists because I wanted to learn a specific shape of system end-to-end; the write-ups focus on the decisions and the trade-offs rather than the feature list.
FPL Pulse — weekly enrichment pipeline
AWS Lambda · Step Functions · S3 · Anthropic Haiku/Sonnet · Langfuse
A weekly LLM enrichment pipeline for Fantasy Premier League. Five collectors fan out across the FPL API, Understat, and news sources into a four-stage S3 lake; a Step Function drives enrichment over ~700 players per gameweek through Anthropic Haiku and Sonnet, cost-engineered to sit inside the AWS free tier with the Claude API as the only meaningful spend. The deepest write-up on the site. Read →
Scout Agent — agentic recommendations
LangGraph · pgvector · Lambda Function URL · SSE streaming
The interactive plane on top of the FPL pipeline. A four-node LangGraph state machine (planner → tool_executor → reflector → recommender, looped up to three times) runs over a Neon pgvector store and streams transfer recommendations to the dashboard over Server-Sent Events through a Lambda Function URL. Shipped May 2026 after the OAC-on-POST landmine cost me an evening and an ADR. Read →
Knowledge vault + personal plugin
Plain markdown · Claude Code plugin · no embeddings, no MCP, no daemon
A curated personal knowledge base read directly by Claude Code via Read, Grep, and Glob. Started as a hybrid FTS5/LanceDB MCP server with an Ollama embedding pipeline, then deleted entirely once the vault was small enough to fit in context. The interesting bit is what I removed and why. Read →