~ whoami
Kaustubh Tripathi
Software & AI engineer. I build backend systems in Java and Spring Boot at TCS, and language-model systems that hold their shape when the model doesn't.
building tollgate — an LLM gateway in Go, with payments-grade spend control
- java
- spring boot
- typescript
- react
- node.js
- next.js
- go
- python
- postgresql
- redis
- docker
- llm agents
open to software & AI engineering roles
$ fetch ktripathi2281
- user
- kaustubh@bangalore
- role
- Software & AI Engineer
- work
- Product Engineer, Tata Consultancy Services
- uptime
- at TCS since June 2025
- shell
- Java · TypeScript · JavaScript · SQL · Go · Python
- repos
- 23 public on GitHub
- certs
- Claude Certified Developer · Claude Certified Architect
- tz
- Asia/Kolkata · IST
$ git log --recent · latest push to each repo
- 66090a0 tollgate Go docs: mark M2 complete
- 93d20a2 LoopDetector TypeScript Add /loops now: Rethink from the keyboard
- 934f3a6 Leetcode-Tracker TypeScript Prepare for going live: security, account features, hosting config
- f197e1a DeepResearch Python docs: polish project for portfolio presentation
- 9f1db09 RideRadar JavaScript fix(auth): default JWT expiry to prevent 500 when env missing
$ ls -l ~/projects
7 entries · open one to read how it works
drwxr-xr-x kavach/ AI cybercrime support platform live
One case file for cybercrime victims in India: ten deadline-tracked steps, 22 languages, voice or text. Built with Ashutosh Kumar at the Build What Moves India hackathon.
voice · text ──► transcribe
│
regex ─────────┼───────── llm
UTRs, UPI IDs ▼ everything else
facts
│
draft ──► guard: does it contradict
▲ a fact the citizen confirmed?
└─ yes ─┘ │ no
▼
case file · 10 steps on legal clocks
stack GPT-5, GPT-5-mini, GPT-4o-transcribe · Next.js, TypeScript, Supabase, IndexedDB
- Strict JSON-schema outputs on every route, through a provider-agnostic client with no SDK lock-in.
- Hybrid regex and LLM extraction of transaction IDs (UTRs), phone numbers and UPI IDs.
- A guardrail throws out any draft that contradicts facts the citizen has confirmed.
drwxr-xr-x deepresearch/ Research system with verified citations
Answers questions from a document corpus with verified citations, running locally with no paid APIs.
question
├──► pgvector ──┐
└──► bm25 ──────┴──► rank fusion
│
cross-encoder rerank
│
draft answer + citations
│
verify each claim against its evidence
│
answer · or "the evidence isn't there"
stack Python, FastAPI, PostgreSQL + pgvector, Ollama · Next.js, React, TypeScript
- Hybrid retrieval: pgvector and BM25 fused by rank, then reranked by a local cross-encoder.
- Every cited claim is checked against the evidence it cites before the answer is shown.
- Says when evidence is missing or conflicting, instead of inventing an answer.
drwxr-xr-x loop-detector/ Claude Code mod
Notices when Claude Code is stuck repeating itself, using deterministic checks and no model calls.
tool call ──► record
action · target
failure · tests
│
7 signals ──► score since the
last real progress
│
normal ── suspicious ── loop
│
warn once, then you pick:
[inspect] [rethink]
[pause] [continue]
stack TypeScript · a Claude Code plugin of function hooks
- Turns every tool call into a record: its action, target, failure fingerprint and test results.
- Seven deterministic signals score the work since the last real progress: same history, same verdict.
- Never stops Claude on its own: Inspect, Rethink, Pause and Continue are buttons you press.
drwxr-xr-x leetcode-agent-tracker/ Interview-prep agents
Interview prep run by three agents: a planner, a Socratic tutor and a code reviewer.
you ──► planner
│ 4 read-only tools
│ at most 8 turns
├──► tutor asks, never tells
└──► reviewer reads your code
│
every call ──► log
tool calls · reasoning
trace · latency
stack Google Gemini function calling · React, Express, MongoDB
- The planner acts only through four read-only tools, for at most eight turns.
- Leitner-style spaced repetition, topic heatmaps and company-readiness analytics.
- Every call is logged with its tool calls, reasoning trace and latency.
drwxr-xr-x tollgate/ LLM gateway in Go in progress
An OpenAI-compatible LLM gateway in Go with payments-grade spend control. Point any OpenAI SDK at it: it checks a virtual key, enforces its rate limits and budget, routes the call with retries and fallback, streams the answer and records what it cost.
client · any OpenAI SDK
│ POST /v1/chat/completions
▼
virtual key ─► rate limits ─► idempotency
│
┌──────────────────────────────┘
▼
hold the worst case, in micro-USD
│
▼
router ─► OpenAI-compatible · Anthropic
│ retries, fallback, breakers
▼
settle the actual cost, store, respond
stack Go, PostgreSQL (pgx, sqlc), Prometheus, Docker · OpenAI-compatible and Anthropic APIs on raw net/http
- Done: OpenAI-compatible and Anthropic adapters, with retries, fallback and a circuit breaker per target, and streaming with a commit point.
- Done: hold-and-settle budgets in integer micro-USD, idempotency keys and reconciliation. 200 concurrent requests against a budget that fits exactly 37 holds: exactly 37 succeed.
- Benchmarked against a mock upstream: about 1.5 ms of overhead at the median. Next: a run with a live provider key, then a hosted demo.
drwxr-xr-x ride-radar/ Real-time group trip tracker live
A live map for groups riding together, with battery, SOS and lost-signal handling.
rider ──ws · jwt at handshake──┐
battery · sos · position ▼
trip room
│
group map
│
signal lost? ──► stays at last known
position, marked offline
trail: capped at 1,000 points a rider
stack Socket.io, React Leaflet, OpenStreetMap · Express, MongoDB
- A rider who loses signal stays on the map at their last known position, marked offline.
- JWT is checked at the socket handshake, and every event stays inside its trip's room.
- Trails are capped at 1,000 points per rider, so history stays a constant size.
drwxr-xr-x skill-barter/ Peer-to-peer skill exchange live
Trade skills without money. Matches are found both ways, your own city first, and both sides must agree.
you: teach A, want B
▲ mutual match
▼ your city first
them: teach B, want A
│
real-time chat
│
trade proposed ──► both agree?
│ yes
▼
trade on
stack MongoDB, Socket.io, JWT · React, Express
- Finds mutual matches and one-way interest, with people in your own city first.
- Real-time chat, and a trade lifecycle that needs consent from both sides.
- Dual-token JWT with silent renewal, OTP email verification, rate limiting and CORS whitelisting.
$ cat experience.log
-
product engineer · tata consultancy services
Bangalore
- Backend modules in Java and Spring Boot for a fintech and banking product, built into legacy systems.
- SQL query tuning and indexing on critical processes.
- Production debugging from logs and API traces, code review, and Jenkins build automation.
-
certified by anthropic
-
b.tech, computer science & engineering
Madan Mohan Malaviya University of Technology, Gorakhpur · CGPA 7.9
$ cat stack.toml
[ai] models = ["OpenAI GPT-5 family", "Google Gemini"] practice = ["tool calling", "agentic workflows", "structured outputs", "multi-model routing", "guardrails", "fallbacks", "observability"] [languages] daily = ["Java", "TypeScript", "JavaScript", "SQL", "C++"] also = ["Go", "Python"] # tollgate, deepresearch [frameworks] backend = ["Spring Boot", "Spring Security", "Node.js", "Express", "Socket.io"] frontend = ["React", "Next.js", "Tailwind CSS"] [data] stores = ["PostgreSQL", "MongoDB", "Redis", "MySQL", "Supabase"] [tools] ship = ["Docker", "Git", "GitHub Actions", "Jenkins", "Postman", "Vitest", "Linux"]
$ cat how-i-work.md
I am a software engineer first. At Tata Consultancy Services I work on Java and Spring Boot services for a banking product, where the job is keeping legacy systems fast, correct and debuggable in production. Lately I've been bringing the same instincts to language models.
In practice that means typed, schema-validated outputs, guardrails that reject answers contradicting what a user has already confirmed, a deterministic fallback behind every model route, and a log entry for every decision an agent makes.
The model is the least reliable part of the system. Everything I build around it is designed to hold.
$ ls ~/writing
one essay per project · each opens in the editor
- IConfidently wrongBuilding an AI assistant a fraud victim can rely on at 2 a.m.
- IIShow your workAn AI study coach with a small world, a strict examiner and a paper trail.
- IIIPointing is not provingA research system that checks its own citations, and says so when it can't.
- IVThe same failure, againNoticing when a coding agent is stuck, without asking another model.
- VThe commit pointAn LLM gateway in Go, built the way payment systems are.
- VIWhere is everyone?A live map for a group ride, and what to show when a rider goes quiet.
- VIIA double coincidence of wantsTrading skills without money, and the oldest problem with barter.