Skip to content

Work

With a case study

Acumen — ten-year NSE backtester

Data Engineering · Quant

Acumen

A backtester and live screener that replayed one trader's intraday NSE F&O strategy over ten years of minute data and proved, with a full audit trail, that it loses money. The whole repo exists to make an unwanted answer hard to disbelieve.

188,345 trades · 2,621 tests, 0 failures · 28 adversarial reviews

  • Python
  • pandas
  • Parquet
  • pytest
Samadhan — AI civic resolution agent

Agentic AI · Live

Samadhan

An AI civic agent that takes a complaint from a single photo to verified resolution — it files in the citizen's own language, tracks the statutory SLA, and autonomously drafts the escalation ladder up to an RTI when the deadline lapses.

Live on Cloud Run · 36 tests, green CI · Open311 export

  • Next.js
  • Genkit
  • Gemini 2.5 Flash
  • Firebase
Nistula Assistance — WhatsApp AI host

Agentic AI · Production

Nistula Assistance

A WhatsApp AI host for a Goa villa company — live-priced quotes, staff job dispatch with SLAs, and an automated guest lifecycle. The model writes; seven deterministic checks decide whether what it wrote may leave the building.

1,813 tests · 7 code-enforced guardrails · 0 model-invented prices

  • TypeScript
  • Fastify
  • Postgres
  • Claude Sonnet 4.5
LLM on Kubernetes, instrumented for reliability

Infrastructure · Observability

LLM on Kubernetes

An open-source LLM on a single-node cluster where the interesting problem isn't getting it to run — it's knowing continuously whether it's still producing tokens fast enough. Ollama exposes no metrics, so I built the exporter.

8 metric families · 11 Grafana panels · alerts that fired on real degradation

  • Kubernetes
  • Prometheus
  • Grafana
  • Ollama
Smart Returns Resolver — bilingual support triage

LLM Orchestration · Live

Smart Returns Resolver

Bilingual EN/AR support triage where an LLM reads the complaint and a hand-written 36-cell policy table decides the entitlement. The classifier returns its own escalation verdict — and the engine deliberately ignores it.

88.5% on a 78-dimension eval rubric · 0 pipeline failures

  • Next.js
  • TypeScript
  • Zod
  • gpt-4o-mini
Identity Reconciliation Engine

Backend · API

Identity Reconciliation Engine

One HTTP endpoint that collapses a customer's scattered emails and phone numbers into a single identity. Instead of walking a graph, it holds the link depth at exactly one and makes merges pay for it — union-find with eager path compression.

2 SELECTs per lookup, no matter how many merges

  • TypeScript
  • Express 5
  • Prisma
  • PostgreSQL

Also built

Nistula — direct-booking villa website

Nistula Website

A direct-booking villa site wired live to the eZee PMS behind one swappable adapter, with Razorpay payment and server-side re-quoting on every write.

  • Next.js 15
  • Drizzle
  • Razorpay
Live site
Thine Qualifier — scored signup funnel

Thine Qualifier

A seven-question funnel that scores every signup and ranks the operator's outreach list. Two questions score backwards on purpose — it measures unmet pain, not seniority.

  • React
  • Vite
  • Airtable
GEO Tracker — LLM brand visibility

GEO Tracker

Asks Gemini the questions a real buyer would type, then scores whether a brand survives into the answers — a surface conventional SEO tooling cannot see.

  • Python
  • Streamlit
  • Gemini
Repository
Cone Trading — the atomic order path through a Spring Boot trading backend

Cone Trading

A crypto trading backend: users sign up, fund a wallet through Razorpay or Stripe, buy and sell at live CoinGecko prices, track a portfolio and withdraw to a bank. 37 endpoints across 14 entities, with JWT auth and email two-factor.

  • Java 17
  • Spring Boot
  • MySQL
Repository
Newsletter Brief Generator — three article URLs rendered into one email-safe HTML brief

Newsletter Brief Generator

Three article URLs in, one email-client-safe HTML brief out. Two of its four scrapers hang off generated CSS hashes rather than stable hooks, and the README says which ones will break first.

  • Python
  • BeautifulSoup
  • Jinja2
Repository