Skip to content

Work

Two halves of one platform

I build and operate a production knowledge platform. The most useful way to read these is as one system: a library people search, a grounded 'Ask' that answers from it, and the pipeline that fills it.

Flagship · AI / retrieval systems01

Citation-Grounded RAGLive

A question-answering engine that retrieves with a hybrid of BM25 and dense embeddings, answers with Claude using native citations so every sentence links to the exact source span, streams the result, and abstains when the corpus doesn't support an answer — with an eval harness that scores retrieval and faithfulness and gates CI.

Next.js 16TypeScriptClaude (native citations)OpenAI embeddingsBM25 + RRFVercel
266
passages, public-domain
0.91
recall@5 (hybrid)
1.00
faithfulness (Claude, 22-q)
3/3
out-of-corpus abstained
Read case study
AI infrastructure02

LLM GatewayLive

A provider-agnostic LLM gateway whose semantic cache is proven correct — precision, false-positive rate, and a CI gate most managed gateways don't expose.

Next.js 16TypeScriptClaude Haiku (intent judge)OpenAI embeddingsOpenTelemetry gen_ai.*
1.00
cache precision (guarded)
0%
false-positive rate
Case study
Search & retrieval platform03

Shia LibraryLive

Multilingual search over a quarter-million classical passages — now with a grounded "Ask" that answers only from cited sources, or says the sources are silent.

Next.js 15React 19Supabase / pgvectorOpenAI embeddingsClaude (native citations)
~255k
hadith indexed
91%
answers grounded
Case study
Data engineering & LLM orchestration04

Usul PipelineLive

A resilient, cost-optimized ingestion + LLM-translation pipeline that turns scattered source texts into a clean, structured corpus.

Pythonasyncio / httpxClaude (Anthropic)Supabase / PostgresPrompt caching
220
books processed
35k+
passages translated
Case study

On the roadmap

What I'm building next

These aren't shipped yet — listed honestly. The first items deepen the platform; alongside them I'm branching into independent tools that solve broader problems. Depth and range, not scattered demos.

  • Deep-link each citation chip straight to its source page in the reader, now that the production corpus path is live.
  • Push the learned-threshold work further: the leave-one-out experiment shows cheap features cap at recall 0.32, so the path is a vCache-style per-prompt boundary on a richer labelled set — can it close the gap to the judge without the judge call?
  • Finish the corpus: re-ingest and embed the excluded large book so semantic recall covers the whole library, not most of it.
  • Extract the ingestion core into a config-driven, source-agnostic open-source framework with a typed SDK and CLI.
  • More broadly — distributed-systems and real-user products in new domains, to build range beyond a single platform.
See experiments →