Akshat Khosla / engineer
Résumé

Open to new roles · Hyderabad, India

Akshat Khosla

I build production backend systems and the LLM infrastructure that sits on top of them — Python and C#/.NET services, agentic tooling shipped to real users, and evaluation systems that tell you whether any of it actually works.

~30%
less PR review time, across 8+ engineers
GEP · PR Copilot
40%
faster feature delivery across 3+ modules
GEP · config framework
500K+
student interactions modelled in research
Thapar · knowledge tracing
96%
manual setup eliminated across 50+ repos
GEP · security automation

01 — Selected work

Things I built end‑to‑end

Three open-source systems, each solving a different part of the same problem: making LLMs useful, measurable and persistent in production. Expand any card for the architecture.

PROJECT_01

MemoryOS

A persistent memory layer for LLMs, built as an MCP server

Standard LLMs are stateless — every session starts from zero. MemoryOS sits between you and the model as a memory layer, storing conversations, extracting structured facts, and injecting relevant context back at the start of each new session. It runs entirely on your machine: no API keys, no cloud, no cost.

PythonMCP SDK ChromaDBSQLite spaCy NERSentenceTransformers PyTorchOllama

How it works

  • Three memory tiers, each chosen for a different access pattern: working memory in a process dict for zero-latency exact lookup, episodic memory in ChromaDB for semantic recall without exact keywords, and semantic memory in SQLite for deterministic fact lookup.
  • Entity extraction runs on every message — spaCy NER plus regex relationship patterns, with a tech-term blocklist so "Python" never gets stored as a person's name.
  • Calibrated confidence scores per source: PERSON detection 85%, GPE 80%, ORG and regex matches 75%, so downstream reads know how much to trust a fact.
  • Exposed over MCP as a JSON-RPC server on stdio, which means it plugs straight into Claude Desktop as a tool provider.

Memory tiers

user message
      │
      ▼
extractor.py  spaCy NER + regex
      │
      ├─► working   dict      exact, 0-latency
      ├─► episodic  ChromaDB  semantic search
      └─► semantic  SQLite    structured facts
                          │
                          ▼
              context injected into
                 next session

PROJECT_02

LLM Eval Platform

Run, score and compare LLM outputs — dashboard, CLI and REST API

A full-stack evaluation platform: submit an eval config, run a model against a dataset, score every response with LLM judges and deterministic checks, then compare runs side-by-side. Every span of every run is traced and stored, so a score is always explainable rather than just a number.

FastAPIPostgreSQL 16 SQLAlchemy 2.0 asyncPydantic v2 AlembicReact 18 TypeScriptTailwind TanStackRecharts TyperDocker

How it works

  • Provider-agnostic by design — Gemini, Ollama and any OpenAI-compatible endpoint sit behind one provider interface, so adding a new model is a subclass, not a rewrite.
  • Two grades of scoring: LLM-as-judge with structured rubrics (0–10) for nuance, plus deterministic keyword and regex judges for fast, reproducible checks.
  • Purpose-built judges for Faithfulness, Relevance and Coherence, each scoring 1–5 with written reasoning attached to the result.
  • Async runner — per-sample tasks fan out with asyncio.gather, and each provider gets its own semaphore so a rate-limited API can be capped independently of the rest.
  • Full execution tracing in an in-process OpenTelemetry-style span tracer, persisted as JSONB alongside the run and replayed in the dashboard.

Request path

CLI ──┐
        ├──► FastAPI POST /api/v1/evals
React ─┘         │ add_task
                  ▼
            run_eval_background
                  │
         asyncio.gather per sample
                  │
      ┌───────────┴───────────┐
      ▼                       ▼
target LLM            judge pool
semaphore-gated        gather(...)
      └───────────┬───────────┘
                  ▼
       PostgreSQL eval_runs
       + trace_data JSONB

PROJECT_03

DocMind

Local-first document Q&A with RAG and a tool-using agent

Upload PDFs, DOCX or text files and ask questions against them. A retrieval pipeline grounds every answer in your own documents, and an agentic loop lets the model decide which documents to search and when — chaining multiple retrievals before it answers. Responses stream to the browser token by token.

PythonFlask Anthropic APITool use ChromaDBSentenceTransformers SSE streaming

How it works

  • Ingestion extracts text from PDF/DOCX/TXT, chunks it into 512-token windows with 64-token overlap so context survives the boundaries, embeds with all-MiniLM-L6-v2 into 384-dim vectors, and upserts into a persistent ChromaDB collection.
  • Retrieval embeds the query with the same model — non-negotiable for a shared vector space — and runs cosine ANN over an HNSW index, returning top-k chunks with scores.
  • Three tools exposed to the model: search_documents, list_documents and summarise_document. Tool descriptions are written with the same care as a system prompt, since they are what the model reads to decide when to call.
  • Multi-step reasoning falls out of the loop: asked to compare two reports, the agent lists documents, searches each one separately, then synthesises — rather than one-shot retrieving and hoping.

Agentic loop

while True:
  resp = claude(tools, messages)

  end_turn  ─► stream answer, done
  tool_use  ─► execute_tool()
               append tool_result
               loop ──┐
                      │
           ┌──────────┘
           ▼
  search_documents
  list_documents
  summarise_document
           │
           ▼
   ChromaDB · cosine HNSW
   384-dim · top-k + scores

02 — Experience

Where I've shipped

Two years of production engineering across enterprise SaaS, plus research and internships that pushed in the same direction: automate the tedious part, own the whole thing.

Software Engineer

GEP

Jul 2024 — Present · Hyderabad, India

  • Shipped an AI-powered PR Copilot (Claude Opus 4.6, Claude Code) into production, auto-generating test cases and readiness reports and cutting per-PR review time by ~30% across 8+ engineers.
  • Architected a scalable configuration framework spanning 3+ product modules, cutting feature delivery time by 40%.
  • Led an Angular 8 → 20 migration across 2 production repos with 150+ UI component plugins affecting 10+ pages — all 3 sprints delivered on schedule.
C#/.NETPythonAngular AzureClaude CodeSQL Server

Research Assistant

Thapar University

Jan 2024 — Jul 2024 · Patiala, India

  • Designed a Transformer-augmented Deep Knowledge Tracing model over 500K+ student interactions, beating LSTM baselines by +6.8% AUC and +5.3% F1.
  • Work published in Complex & Intelligent Systems (2025).
PythonPyTorch TransformersDeep learning

Technology Intern

GEP

May 2023 — Jul 2023 · Mumbai, India

  • Automated vulnerability-alert setup across 50+ GitHub repositories, collapsing a multi-day manual task to under 30 minutes — a ~96% reduction.
PythonGitHub ActionsSecurity automation

Software Intern

Cadence Design Systems

May 2022 — Jul 2022 · Noida, India

  • Automated IC waveform data curation and EDA analysis across 100+ simulation datasets, cutting review time by 50%.
PythonData pipelinesEDA

03 — Research

Published work

Complex & Intelligent Systems · 2025 · Springer

Knowledge Tracing-Based Intelligent Framework for Formative Assessment of Students' Skills

Khosla, A. et al.

A Transformer-augmented approach to Deep Knowledge Tracing — modelling how a learner's mastery evolves across a sequence of interactions, and using that to drive formative assessment. Trained and evaluated on over half a million student interactions.

500K+
interactions
+6.8%
AUC vs LSTM
+5.3%
F1 vs LSTM
B.E. Computer Engineering / Thapar University, Patiala / 2020 — 2024 / CGPA 8.7 / 10

04 — Toolkit

Tech stack

What I reach for. Ordered roughly by how much production time I've actually spent in each.

01 Languages

PythonC#TypeScript JavaScriptSQL

02 Backend & frameworks

FastAPIASP.NET CoreFlask SQLAlchemyPydanticasyncio REST APIs

03 AI / ML

RAGLLM agentsMCP Anthropic APIClaude Code SentenceTransformersPyTorchspaCy

04 Frontend

ReactAngular TypeScriptTailwind

05 Cloud & DevOps

AzureDocker GitHub ActionsCI/CDGit

06 Databases

PostgreSQLSQL ServerMongoDB SQLiteRedisChromaDB