CTO & AI Engineer @ XCatalyst (@chumchumagency)
I build production LLM systems: RAG with citations, agents with tool use and human approval, and full-stack apps around them (Node/TypeScript, Python, React/Next).
- RAG & knowledge bases with source citations, eval sets, and cost/latency tradeoffs you can actually measure
- Agents that call real APIs; anything consequential goes through an approval step before it runs
- LLM features inside products (structured outputs, logging, retries, fallbacks) rather than chat demos that die in staging
- Full-stack delivery end to end: APIs, data model, React/Next UI, Postgres + vector store, AWS
I'm CTO at XCatalyst (formerly Chum Chum Agency). I own systems in production and still write the critical path myself.
AI / LLM: OpenAI, Anthropic, LangChain where it helps, embeddings + vector search, evals, prompt versioning
Backend: Node.js, TypeScript, Python, FastAPI, Postgres
Frontend: React, Next.js, TypeScript
Cloud: AWS (compute, storage, monitoring), Docker, CI/CD
Rule of thumb: an agent saying "done" means nothing until the tests and a real run agree.
Public samples live in ai-demos (also under the company org when published):
| Demo | What it shows |
|---|---|
rag-citations |
Retrieval + answers with source snippets and a small eval set |
agent-approvals |
Tool-calling agent with a human approval gate before writes |
llm-sql-safe |
LLM over data via vetted templates / semantic views; replayable logs |
Open to consulting and mentoring on production AI systems.





