Mobasshir Shakil Khan AI for regulated domains
Say it. Then prove it.
0%
booting
Bengaluru · open to remote
Résumé coming shortly — email me and I'll send it straight over
01 The rule

I didn't set out to have a thesis. I found it by noticing I had made the same decision five times without planning to: a system should refuse to assert what it cannot ground.

Portrait of Mobasshir Shakil Khan, AI engineer for regulated domains
Bengaluru AI engineer, regulated domains

Before I wrote any of that, I was learning it in a different room. In British Parliamentary debate you get seven minutes and an opposing bench whose entire job is to find the one claim you didn’t substantiate. Adjudicators don’t score confidence. They score whether you backed it up.

Three tournaments so far, and I ran the tab on two of them — Tabbycat end to end: pairings, scoring, break calculations. Tab is the job you get handed when the numbers have to be right and there’s no time to check them twice.

Debate record verified via Calico Tab

  • Equinox 2025 Nova Logos
  • NLSD 2026 Novice · break eligible
  • East India Pre-ABP 2026 Novice · break eligible
  • Tab team ×2 Tabbycat, end to end

I build AI systems for domains where being confidently wrong is expensive: regulatory compliance, evaluation, and developer tooling. Every one of them has a deterministic floor. I didn’t realise I’d ported the debate rule into my code until someone read five of my repos back to me.

Where I have been responsible for the thing working.

01

SMVIT DebSoc

Tech Head · Dec 2025 — present

smvitdebsoc.com live, role-gated, daily digest piped in

  • in production
  • tabbycat
  • axiom

Everything the society runs on is mine to keep working — the site, Axiom, and the tab. During a live tournament there is no staging environment: the pairings go up in front of the room, or the round does not start.

02

Klaer

Founding Engineer

  • founding engineer
  • end-to-end design

First engineer, so every call was mine to make and mine to answer for: architecture, data model, agent design, interface. Building what you specified yourself is the fastest way to find out which of your own decisions were wrong.

03

Wedsey

Freelance Engineer

  • freelance
  • client delivery

Paid client work, delivered against someone else's deadline and someone else's definition of done — which is where you learn that the requirement you were handed is rarely the requirement you actually have to satisfy.

Flagship

I built an AI to coach me at the thing that taught me to think this way. Then strangers found it.

A 14-agent system that researches one motion a day, builds the case both ways, coaches the framing, quizzes me at night, and distils the week on Sunday. It runs live every morning for my debating society.

08:00

Researches the motion

RSS, Tavily, Wikipedia and my own PDFs, ranked by FAISS.

08:04

Builds the case both ways

Proposition and opposition, so I cannot rehearse only my side.

08:06

Coaches the framing

Where the clash actually is, and which burden I keep dropping.

21:00

Quizzes me

Adversarial follow-ups. Survive them or the point was never made.

Sun

Distils the week

Seven days of motions into what I still get wrong.

Multi-model routing by task

Groq-hosted Llama and Qwen for the cheap deterministic lanes, Gemini for the reasoning lanes. Every agent is labelled with which lane it is.

RAG across four stores

FAISS-backed, over RSS, Tavily, Wikipedia and my own PDFs.

Fallback chains for rate limits

A free-tier 429 should degrade the output, not kill the run.

Zero budget

State lives in a JSON file and the Actions cache. No database, no server.

Regulated AI

Contracts scanned against regulator circulars, routed green or red.

Unnamed on purpose, specific anyway. I architected it — system design, agent harness, RAG layer and the specs. My collaborator implemented.

Contract
Regulator circulars
Recall-gated review
Green / Red

01

Gate on recall, not precision

The brief

The accuracy target was gating on false positives — keep the model from crying wolf.

I argued the opposite

A missed non-compliant contract is the precise regulatory failure the bank is paying to avoid. A false positive costs a lawyer an hour; a false negative is the thing that reaches the regulator.

What shipped

Recall became the primary gate. Precision stayed, as the secondary metric.

200-contract sample, illustrative
Flag more (recall) Flag less (precision)
0 non-compliant contracts shipped
49 clean contracts sent for review

02

Baseline the humans before trusting the model

Nobody asked for this

Before any AI-versus-human number gets trusted, two independent adjudicators label the same 50-contract set and their disagreement rate is recorded.

Why it matters

That number is the ceiling on any accuracy the system can honestly claim.

The consequence

If two compliance lawyers agree only 85% of the time, a model scoring 92% against one of them is measuring noise, not performance.

Read the decisions

Client and product unnamed by agreement. The engineering decisions are not.

Selected work

Installable, inspectable, running in someone else’s terminal.

01 Shipped

DocsGuard

A finding without a quoted source line is downgraded to a warning — never reported as a violation.

npm i -D @mobasshirkhan/docguard
338
installs / month
2
registries
0
marketing
02 Shipped

dockgate

v1 scope, in writing: no LLM calls at all. Some problems don’t need a model.

npx dockgate setup
0
LLM calls
pre-push
gate
03 In build

LRNR

Every agent keeps a deterministic fallback. The pipeline runs offline under test and never hard-fails on a model error.

8
agents
185
tests green
04 In production

SMVIT DebSoc

Four services behind one login, carrying about fifty people a day. Every one is scoped in writing — and if it breaks on a Saturday, the round does not run.

curl -s pd-virtual-assistant.vercel.app/health
~50
daily users
4
services
481
commits on the site
05 In production

Axiom

Tournament operations for a live debate event — check-in, pairings, rooms, results, leaderboard. I ran tab on Tabbycat for two tournaments first; this is that job rebuilt so the software does it.

  • pairing round 1 random draw, then power-matched to unbeaten only
  • check-in time-windowed, so a no-show never gets paired
  • rooms + results allocation, scoring and a live leaderboard
  • stack Express + TypeScript, Prisma/Postgres, Clerk roles, socket.io
POST /api/pairing/:roundId/power-match
104+
debaters run through it
admin
gated mutations
live
socket updates
06 Co-built

CodeLogs

A coding-practice platform that coaches while you type, then makes you defend the answer. It never just hands you the solution — the constraint is the product.

  • 3 services event-driven, talking over Redis Streams
  • constrained AI hints and probes, never the finished answer
  • defend it a passing solution still has to survive follow-ups
3
services
Redis
streams as the bus
co-built
not solo work

Nothing here needs my word for it — read the commits.

44 repositories
all public

An essay alone is an opinion. An essay above the software it caused is a track record.

All essays on Medium

Written before anyone asked for the position they argue.

05 How I work

I write the decision down before I write the code.

Not because it’s tidy, but because I work alone, asynchronously, with AI agents that need to be told exactly what “done” means.

0 / 5 practices, each with the artefact

If you want to know what I’m like to work with before we ever speak, read a repo. That’s what it’s there for.
Read a repo
  • Decisions are written before code

    Specs, phase-gated build plans and operating manuals — including which document wins when two of them disagree.

    AGENTS.md, in every repo
  • Tests are green before merge

    Not a policy I claim. 185 on the evaluation pipeline, 23 on the society site, and a benchmark suite on DEBASS that scores citation validity, not just latency.

    debass benchmarks
  • Every agent has a declared fallback

    Each of the 14 agents is labelled deterministic-lane or LLM-lane, with a chain to fall back through when a free tier returns 429.

    Debating-coach
  • Scope says what it will not do

    dockgate v1: no LLM calls at all. The event assistant refuses debate coaching outright. Written down before the first commit, not discovered later.

    pd-virtual-assistant
  • “Production-ready” is a checklist, not a feeling

    A health endpoint that has to report Redis up, LLM configured and an explicit CORS allowlist before the thing is considered live. Wildcards are rejected in production.

    GET /health
06 The stack

What I actually reach for.

No ratings out of ten — a number I award myself is not evidence. Every group below names the repo where you can watch it being used.

Agentic systems

  • multi-agent orchestration (AI agents, agentic workflows)
  • tool calling & function calling
  • deterministic vs LLM lanes
  • fallback chains & graceful degradation
  • guardrails and scope guards
  • context engineering, prompt engineering
  • spec-first design
seen in Debating-coach

Retrieval

  • RAG — retrieval-augmented generation
  • vector search & vector databases (Qdrant, FAISS)
  • semantic search, BGE embeddings
  • hybrid search: BM25 + dense, rank fusion
  • rerankers, cross-encoders
  • chunking & grounded citations
  • local MiniLM sentence-transformer embeddings
seen in debass

Models

  • Gemini, GPT, Claude via OpenRouter
  • open-weight LLMs: Llama, Qwen, Mistral on Groq
  • model routing by cost tier and task
  • streaming inference, token budgeting
  • rate-limit degradation
  • structured output / JSON mode
seen in pd-virtual-assistant

Evaluation

  • LLM evaluation & eval harnesses
  • citation-validity and groundedness benchmarks
  • hallucination detection, recall-gated metrics
  • adversarial probing & red-teaming
  • inter-annotator agreement baselines
  • regression testing for prompts
seen in debass benchmarks

Backend & data

  • Python — FastAPI, Pydantic
  • TypeScript — Next.js, React, Node.js
  • PostgreSQL + Prisma ORM
  • Redis caching and sessions
  • REST APIs, SSE streaming, WebSockets
  • background jobs & schedulers
seen in debsoc-frontend

Shipping

  • CI/CD with GitHub Actions
  • Docker & containerisation
  • Vercel deployment, observability
  • open-source publishing: npm + PyPI
  • git hooks, semantic versioning
  • testing: pytest, Playwright end-to-end
seen in dockgate
07 Questions

The things people ask before they email.

Answered here rather than on a first call, so you can decide whether the call is worth booking.

What kind of AI engineer are you?

I build applied AI systems — LLM applications, agentic workflows and retrieval-augmented generation (RAG) pipelines — rather than training foundation models from scratch. In practice that means the work sits between machine learning and backend engineering: shipping AI features that hold up in production, with evaluation and guardrails around them. Titles that map to what I do: AI engineer, LLM engineer, generative AI engineer, AI application engineer, machine learning engineer (applied).

What does "AI for regulated domains" actually mean?

Domains where being confidently wrong is expensive — banking compliance, legal and contract review, anything a regulator can audit. The engineering difference is that a plausible-sounding answer is a failure, not a partial success. So every system I ship has a deterministic floor beneath the model, gates on recall rather than precision where a miss is the costly error, and refuses to assert anything it cannot ground in a citation. This is the work sometimes labelled RegTech, compliance automation, or trustworthy and responsible AI.

Do you have production RAG and vector search experience?

Yes. I have built retrieval-augmented generation pipelines using Qdrant and FAISS for vector search, BGE and MiniLM sentence-transformer embeddings, hybrid retrieval combining BM25 with dense search and rank fusion, and cross-encoder rerankers on top. DebateIQ runs RAG across four separate stores with model routing and fallback chains. The retrieval code and its benchmarks are public on GitHub.

How do you evaluate LLM systems and prevent hallucination?

With eval harnesses that run like tests rather than demos. I benchmark citation validity and groundedness, not just latency; I gate on recall where a false negative is the expensive error; I baseline human inter-annotator agreement before trusting a model score at all; and I probe adversarially for the failure mode rather than the happy path. The benchmark suite on DEBASS scores citation validity directly.

What is your technical stack?

Python with FastAPI and Pydantic on the backend; TypeScript with Next.js, React and Node.js on the front; PostgreSQL with Prisma, and Redis for caching and sessions. Models via Gemini, Groq (Llama and Qwen) and OpenRouter. Qdrant and FAISS for vectors. Docker, GitHub Actions CI/CD and Vercel for shipping, with pytest and Playwright for tests.

Have you shipped anything people actually use?

Yes — DocsGuard is published on both npm and PyPI and runs at roughly 338 installs a month in other developers’ terminals. The site and tournament software for SMVIT DebSoc run live in production, where a live round cannot wait for a staging environment. Every project on this site links to its own repository so the claim is checkable rather than asserted.

Are you available for hire, and do you work remotely?

Yes — I am open to AI engineering roles, full-time or contract, remote or based in Bengaluru (Bangalore), Karnataka, India. The fastest way to reach me is email at mobasshirkhan9931@gmail.com, or through LinkedIn and GitHub.