Principal Architect & Co-founder — agentic AI systems and the distributed backbones they run on.
I design and ship production systems where LLMs do real work: multi-agent orchestration, retrieval, and finance/operations automation on top of event-driven, multi-tenant .NET and TypeScript services. The repositories below are clean-room reference implementations of patterns I run in production — each is small, runnable, tested, and documented as a build-along guide.
| Project | What it is | Stack |
|---|---|---|
| mcp-domain-agents | A custom MCP server exposing an internal service as LLM-callable tools, with a coordinator agent delegating to specialist sub-agents. | .NET 10 · MCP + Semantic Kernel |
| finance-copilot | A controller "brain" agent orchestrating three specialist service-agents (each with its own tools) via agent-as-tool delegation. | .NET 10 · Microsoft Agent Framework |
| resilient-llm-gateway | A provider-agnostic LLM gateway: ordered failover, circuit breaking, retries, cost-aware routing. | TypeScript |
| self-improving-insights | Deterministic, cited data insights that measurably improve from user + engineering feedback. | TypeScript |
| document-rag | Grounded RAG with citations that refuses when the corpus doesn't support an answer. | TypeScript |
| Project | What it is | Stack |
|---|---|---|
| saga-orchestration | An event-driven saga with compensation for multi-service transactions — no distributed lock. | .NET 10 · MassTransit |
| Project | What it is | Stack |
|---|---|---|
| ollama-model-bench | A reproducible LLM benchmark — 902 judged responses across 22 models — with an LLM-as-judge rubric. | Node |
- Determinism first. Compute exact facts in code; let the model narrate, not calculate.
- Least privilege. Narrow, typed, read-only tools — the blast radius is the tool surface, not the database.
- Design for failure. Compensation over two-phase commit; failover and circuit breakers over single-provider hope.
- Refuse before you guess. Grounded answers with citations; a clean refusal when the evidence is thin.
- Measure before you scale. Evals and feedback loops that prove a change helped.
.NET / C# · TypeScript · event-driven (MassTransit, Azure Service Bus) · Semantic Kernel ·
Microsoft Agent Framework · Model Context Protocol · RAG · PostgreSQL · Redis
Each repository above ships a README (problem, architecture, design decisions, trade-offs) and a step-by-step GUIDE, on synthetic/neutral domains — the reusable patterns, not any employer's code.




