I'm a senior AI engineer building production LLM systems — natural-language analytics, retrieval-augmented chatbots, multi-agent pipelines, test-time reasoning compute, and the data infrastructure beneath them. I run Agulhas Code, a Durban engineering studio shipping AI features for SMEs across South Africa.
The thread through my work: treat AI like any other production system. Structured outputs (Pydantic at every LLM boundary), eval-gated CI (no prompt change merges without passing the harness), guardrails by default (sqlglot AST, citation-required prompts, exception queues, read-only roles), full observability (token/cost/latency per call). The frameworks are easy; the discipline is what ships.
Available now for fractional or contract AI work. Full EMEA timezone overlap, 4 hours of US Eastern. Async-first, written-first, deliverable-shaped.
|
Test-time reasoning compute. Five published strategies (CoT, Self-Consistency, Decomposition, ToT-Lite, Direct) behind one interface, adjudicated by a critic LLM with calibrated confidence + hard budget guards.
|
Production-grade multi-agent system with structured Pydantic handoffs, shared workspace memory, full trace observability. Planner-Researcher-Writer-Critic pipeline.
|
Knowledge-graph-augmented RAG: LLM entity+relation extraction, alias-merged graph store, hybrid vector kNN + graph BFS retrieval with score blending.
|
|
Benchmark accuracy |
Faithfulness |
ROC-AUC |
|
Uptime |
Query latency |
Recall@10 |
| Project | What it does | Headline result |
|---|---|---|
| InsightEngine | NL→SQL analytics over multi-table warehouses with sqlglot AST guardrails | ~94% accuracy · 0 destructive incidents |
| RAG Chatbot | Production support bot · hybrid retrieval (cosine + BM25) · citation-guarded | Faithfulness > 0.95 · Recall@5 > 0.85 |
| Churn & MRR Forecasting | XGBoost churn classifier + Prophet MRR forecast for a SaaS client | ROC-AUC 0.87 · Top-decile precision 0.62 |
| Recommendation Engine | Hybrid content + collaborative recommender for an e-commerce client | Recall@10 = 0.41 vs 0.18 baseline |
| Lead Scorer | B2B lead-ranking with LR baseline + XGBoost ranker, scores pushed to CRM | Top-decile precision ~0.6 |
| Document-Intelligence | OCR → LLM extraction → Pydantic schema validation → human-review queue | Replaces manual data entry |
Reusable patterns extracted from production work, plus the things I wish existed when I started:
| Repo | What it does |
|---|---|
| ⭐ thinking-loop | Test-time reasoning compute · 5 strategies + critic adjudicator + confidence calibration |
| ⭐ multi-agent-orchestrator | Multi-agent with structured Pydantic handoffs, workspace memory, full trace observability |
| ⭐ rag-graph | Knowledge-graph-augmented RAG · entity extraction · hybrid vector + graph retrieval |
| rag-eval-harness | Production evals for RAG · faithfulness, recall@k, latency, cost · runs in CI · gates merges |
| prompt-eval-toolkit | A/B test prompt versions with paired-bootstrap p-values · fail-the-build on regression |
| prompt-versioner | Git-style version control for prompts · hash-stable weighted A/B routing · CLI + library |
| llm-cost-tracker | Token / cost / latency observability per LLM call · SQLite store · CLI for stats |
| semantic-cache | Production semantic cache for LLM responses · pgvector kNN · saves 30–80% on chatbot workloads |
| sql-guardrails | Make LLM-generated SQL safe to execute · sqlglot AST + EXPLAIN cost limits |
| agent-tool-router | LLM tool-use router · two-stage embedding-then-LLM with explicit refusal fallback |
Hand-curated 40-question reasoning benchmark, claude-sonnet-4-5 for strategies, claude-opus-4-7 as adjudicator. Re-run on your machine with cd benchmarks && python run.py.
| Strategy | Accuracy | Median latency | Median cost / Q |
|---|---|---|---|
| Direct (baseline) | 67.5% | 1.1s | $0.004 |
| ChainOfThought | 80.0% | 2.4s | $0.011 |
| Decomposition | 85.0% | 4.8s | $0.019 |
| SelfConsistency (n=5) | 87.5% | 6.7s | $0.045 |
| ToTLite (b=3, d=3) | 90.0% | 9.2s | $0.061 |
| ThinkingLoop (all + adjudicator) | 92.5% | 11.4s | $0.078 |
The Loop wins because the adjudicator catches the 1-2 questions per run where the strongest single strategy gets it wrong but another nailed it. 3.7× cost over baseline for +25 percentage points accuracy on hard reasoning.
What I'm chewing on right now — papers, posts, and threads shaping the work above:
- Test-time compute & reasoning — Wang et al. Self-Consistency; Yao et al. Tree of Thoughts; Shinn et al. Reflexion; OpenAI o1-style scaling. Spawned thinking-loop.
- Agentic systems with rigour — Anthropic's Building effective agents guide; deep dives on structured tool-use vs freeform. Shapes multi-agent-orchestrator.
- Retrieval beyond vectors — GraphRAG (Microsoft), HippoRAG, hybrid sparse+dense+graph. Drives rag-graph.
- Eval-driven dev — Hamel Husain's Your AI product needs evals; Eugene Yan's eval-system patterns. Why rag-eval-harness ships with a CI workflow.
- Production cost discipline — semantic caching saves 30-80% on real chatbot traffic; cost-per-feature is the metric that makes AI products actually profitable. The reason for semantic-cache and llm-cost-tracker.
Updated regularly · last revision {{lastmod}}
AI & ML · OpenAI · Anthropic · LangChain · Pydantic · scikit-learn · XGBoost · Prophet · sentence-transformers · pgvector
Data · PostgreSQL · pgvector · MySQL · SQLite · dbt · window functions · CTEs · EXPLAIN-tuning
Cloud & MLOps · AWS (EC2, S3, Lambda, RDS) · Vercel · Docker · GitHub Actions CI/CD · structured logging
- Ship end-to-end — discovery, architecture, build, deploy, monitor. Not just the AI bit.
- Async-first — written specs, weekly status updates, comfortable owning ambiguous problems.
- Test what you ship — every prompt change runs an eval suite before merge.
- Defensive by default — guardrails, citations, exception queues, read-only roles.
- Treat prompts like code — versioned, diffable, rollback-able, A/B routable.
- Structured > freeform — Pydantic at every LLM boundary; fail fast on schema mismatch.
- Spend compute deliberately — multi-strategy reasoning when accuracy matters, cheap baselines when it doesn't.
|
10–30 hrs/week |
Project / day-rate |
Single engagement |
📧 darrshangovender@gmail.com · 🌐 agulhascode.co.za · 📍 Durban, South Africa (GMT+2)
Open to: EMEA & UK remote · worldwide contract · US ET overlap roles · founding / lead AI · fractional retainers
If your team needs a senior AI engineer who can ship production LLM systems with the eval and observability discipline of a senior backend engineer — let's talk.