RAG pipelines, agents, and the evals that keep them honest. Consultant's questions, builder's answers, and an unreasonable interest in how things break.
they told me you couldn't build AI products in Ruby. they were wrong.
Chunking, ranking, and the unglamorous plumbing that decides whether the answer is any good.
Autonomy is a dial, not a switch. Tool design, handoffs, and knowing exactly where the human belongs.
Graders and regression suites for work with no single right answer. This is the part people skip.
barefoot on the astroturf at Madison Ruby, telling a room full of Rubyists that RAG belongs in Ruby.
The whole RAG architecture in one small gem — no vector database, a few light dependencies, and an API key. Built to be read end to end.
Ruby Faiss RAG GitHub ↗An implementation of the ReAct pattern in Ruby: reasoning, acting, and giving an LLM real access to external tools.
Ruby Agents Tool use GitHub ↗A Streamlit-like framework for Rubyists — declarative UI over a script, so an experiment could become something you show someone.
Ruby Data apps Read the write-up GitHub ↗“A rare combination of technical expertise and leadership ability — he took the time to explain new ideas clearly, no matter how complex.”
I take on a small number of advisory, coaching, and speaking engagements. Staying close to other teams' problems keeps me sharp, and keeping the number small means the ones I say yes to get everything I've got.
A standing hour or two while your team designs, debugs, or de-risks an agentic system. Flexible on timing.
A workshop on your own codebase, or 1:1 coaching for engineers moving into AI work. You leave with a harness, not a slide deck.
Keynotes, conference talks, and podcasts on agents, retrieval, evals, and doing AI work in Ruby.
Email first with what you're working on and the timeline. I'll tell you honestly whether I have room — and if I don't, who else to ask.