# Aravindan TR

> I ship agents that survive contact with production.

**AI / Software Engineer** · Open to work · Chennai, India · Remote-friendly

AI / software engineer with 2+ years building production multi-agent systems with measurable business impact. LLM orchestration, RAG, agentic harnesses, and evaluation — taking agents from prototype to reliable, externally-facing products.

- Web: https://aravindan.cc
- Email: aravindsriraj@gmail.com
- GitHub: https://github.com/aravindsriraj
- LinkedIn: https://linkedin.com/in/aravindan-tr
- Résumé (PDF): https://aravindan.cc/Aravindan_Resume.pdf

---

## At a glance

- **700K+** — Data assets documented (50 customers · 14 days)
- **200+/mo** — Support tickets deflected (up from 50)
- **110K** — Hours of manual work saved (~450× faster)

## About

I like taking prototypes from “look, it demos” to “look, it’s reliable.”

I'm an AI / software engineer with **2+ years shipping production multi-agent systems** — LangGraph orchestration, RAG, agentic harnesses, and evals — that solve real problems for real users.

At Atlan I built support automation, an AI SDLC platform, metrics-glossary agents, and documentation agents that ran at tenant scale with measurable business impact: deflected tickets, saved hours, and shipped documentation for 700K+ data assets.

The interesting part was never the model call. It's the eval loops, the tool boundaries, and the boring plumbing that decide whether an agent is usable on a Tuesday afternoon when something upstream breaks.

- **Based in:** Chennai, India · Remote-friendly
- **Previously:** SWE II, AI at Atlan
- **Looking for:** AI-native product teams

Currently building: support agents that deflect real tickets; AI SDLC platforms that open review-ready PRs; doc agents running at tenant scale; eval loops that catch the regressions.

## Work experience

**Software Engineer II, AI**, [Atlan](https://atlan.com) · Feb 2024 – Jun 2026

All four systems ran in production for paying customers. Figures are measured, not projected.

### Nora — AI Support Agent

**200+ tickets/mo** — deflected, up from 50

Stack: LangGraph, RAG, Glean, Zendesk

Support-automation system on Zendesk: doc-grounded triage over Glean, specialist sub-agent routing, and human-escalation workflows.

- 20–30% of tickets resolved end-to-end, no human
- First response under 5 min for 95% of tickets
- $30K–$50K saved annually (≈1.5 support engineers)

### Mothership — AI SDLC Platform

**2× first-pass correctness** — ≈40% → ≈75% on benchmark QA

Stack: LangGraph, Claude Code, Linear, Harness, Cloudflare

In-house platform where an autonomous code-generation agent takes an engineering ticket and ships the functionality end-to-end.

- Linear ticket → Harness API → Cloudflare sandbox
- Clones the repo and implements the change itself
- Opens review-ready GitHub PRs, not patches

### Metrics Glossary Agent

**70% less effort** — to document a metric

Stack: Deep Agents, BI tools, SQL lineage

Auto-discovers KPIs from BI tools and SQL lineage, converts them into governed business metrics, and publishes a tenant-wide glossary.

- Ships lineage, formulas and docs per metric
- Runs at tenant scale
- Bounded on measurable quality and cost

### Description Agent

**700K+ assets documented** — in 14 days, across 50 enterprise customers

Stack: Context Agents, Lineage, Usage patterns

Auto-generates plain-English documentation for tables and columns by learning from data lineage and how the data is actually used.

- 90%+ user acceptance
- ≈450× faster than writing it by hand
- ~110K hours of manual work saved

## Stack

- **Languages:** Python, TypeScript, SQL
- **Agents:** LangGraph, Deep Agents, MCP, RAG, Evals
- **Models:** Claude, Gemini, GPT, PyTorch
- **Backend:** FastAPI, Postgres, Docker, Snowflake
- **Frontend:** React, Next.js, Tailwind
- **Infra:** Vercel, Cloudflare, GitHub Actions

## Projects

### Natural Language Insights Engine

*Grounded text-to-SQL · AI Agents*

Point it at a CSV it has never seen and it works out the schema for itself — column roles, whether returns are present, the grain of a row, and a revenue expression derived rather than read from a column. No configuration, no code changes, nothing about any particular dataset baked in. A constrained ReAct agent queries DuckDB through a single guarded tool, reads the rows, and queries again until it can answer; it cannot leave the loop without either a successful query or an explicit refusal. Answers come back with the queries that produced them, their row counts and timings, the assumptions made, and a confidence — so an answer is something you can check rather than something you have to trust.

- Handles an unseen CSV end-to-end: sniffs delimiter and dates, then infers roles, grain and a derived revenue expression
- Measured statistics and inferred meaning are kept apart — exact SQL for one, a single model call for the other, shown in a correctable schema panel
- Cannot answer without querying: an after-model hook counts real tool results and blocks any ungrounded answer
- Refusal is a tool call, so it is structured, logged and testable — 7 of 21 eval questions pass only by being refused
- SQL runs on a read-only connection behind parse checks, a row cap and a timeout; 25 attack strings are covered in the tests

Tech: Python, FastAPI, LangChain, DuckDB, Gemini, Docker

[Case study](https://aravindan.cc/projects/natural-language-insights-engine) · [Source](https://github.com/aravindsriraj/natural-language-insights-engine)

### AI Mail Client

*Full-stack AI · AI Agents*

AI Mail is a Gmail client with a first-class conversational surface: a Python LangGraph agent plans multi-step actions and drives the React UI using CopilotKit's AG-UI protocol. Users write, filter, and manage mail in natural language while Gmail OAuth stays server-side. The tools-on-the-frontend design keeps the UI as the source of truth and the agent as the orchestrator.

- LangGraph agent orchestrates multi-step Gmail actions
- Tools-on-the-frontend via CopilotKit AG-UI protocol
- Server-side Gmail OAuth; zero client-side tokens
- Streaming UI updates with optimistic state

Tech: Next.js 16, LangGraph, FastAPI, CopilotKit, Vercel

[Case study](https://aravindan.cc/projects/ai-mail-app) · [Source](https://github.com/aravindsriraj/ai-mail-app)

### Conversation Canvas

*Voice-first canvas · AI Agents*

Conversation Canvas listens as you think out loud and turns your voice into a live, structured graph on tldraw. Two AI surfaces — a passive voice orchestrator and a multi-step chat agent — share a Zod-validated action vocabulary and a Postgres long-term memory, so decisions, blockers, and next steps stay linked across sessions.

- Passive voice orchestrator + active chat agent
- Zod-validated action vocabulary shared across surfaces
- Postgres long-term memory for cross-session recall
- Live tldraw graph updates via streaming actions

Tech: Next.js, tldraw, Gemini, Speechmatics, Postgres

[Case study](https://aravindan.cc/projects/conversation-canvas) · [Source](https://github.com/aravindsriraj/conversation-canvas) · [Live](https://canvas.ai-application.xyz)

### AI Voice Receptionist

*Real-time voice agent · AI Agents*

A production-grade voice receptionist for clinics. Callers reach the agent on a real phone number or in the browser; it checks live calendar availability, books appointments, and sends email/WhatsApp confirmations. A custom μ-law ↔ PCM audio bridge lets Twilio telephony ride on top of Gemini Live in real time.

- Real-time phone + browser voice via Gemini Live
- Custom μ-law ↔ PCM bridge for Twilio
- Live calendar lookups and booking
- Email + WhatsApp confirmations

Tech: Python, FastAPI, Gemini Live, Twilio, Firestore

[Case study](https://aravindan.cc/projects/ai-voice-receptionist-agent) · [Source](https://github.com/aravindsriraj/ai-voice-receptionist-agent)

### API Endpoint Executability Validator

*AI agent for API validation · AI Agents*

Composio exposes 42,000+ endpoints across 1,000+ apps — but many are fake, mis-scoped, or need path params resolved from other calls. This project is a LangGraph orchestrator that spawns one Claude-powered ReAct agent per endpoint via the Send API, all running concurrently. Each agent uses an execute_endpoint tool (Composio proxy with OAuth) and a resolve_path_param tool that dynamically fetches IDs from list endpoints and caches them. Claude then reads status + body to classify each endpoint as valid, invalid_endpoint, insufficient_scopes, or error, and merges everything into a single report.

- LangGraph Send API fans out ReAct agents in parallel
- Dynamic path-param resolution with a shared IdCache
- Composio proxyExecute for authenticated OAuth calls
- LLM-based classification of status + response body

Tech: TypeScript, Bun, LangGraph, Claude, Composio

[Case study](https://aravindan.cc/projects/endpoint-tester) · [Source](https://github.com/aravindsriraj/endpoint-tester)

### Gemini Media Agents

*Self-correcting media agents · Media*

Two self-correcting media agents built on the Gemini API and Google ADK. The image mockup agent extracts brand DNA from a style guide, generates two design concepts, renders each as a mockup with Gemini image, then scores the output against the guide and retries on failure. The video explainer agent turns a topic into a narrated, multi-scene explainer: Gemini image → Veo video per scene → evaluate → retry, then stitches the final cut with ffmpeg.

- Brand-DNA extraction + evaluator-scored image retries
- Multi-scene explainer pipeline (Gemini image → Veo → eval)
- ffmpeg scene stitching
- Runs as plain CLIs against the Gemini Developer API

Tech: Python, Google ADK, Gemini, Veo, ffmpeg

[Case study](https://aravindan.cc/projects/gemini_media_agents) · [Source](https://github.com/aravindsriraj/gemini_media_agents)

### SciSplainer

*Science, explained · Research*

SciSplainer turns any scientific paper or webpage into an immersive, auto-playing documentary — generating visuals with Imagen, narration with TTS, and running live voice Q&A over the content with Gemini Live. Powered by 7 Gemini models on Google Cloud. Built for the Gemini Live Agent Challenge 2026 (Creative Storyteller).

- 7 Gemini models orchestrated end-to-end
- Imagen-generated scene visuals
- TTS narration + live voice Q&A
- Runs on Cloud Run

Tech: Gemini Live, Imagen, TTS, Cloud Run, React

[Case study](https://aravindan.cc/projects/scisplainer) · [Source](https://github.com/aravindsriraj/scisplainer) · [Live](https://scisplainer-frontend-968299856642.us-central1.run.app)

### Ultra Doc-Intelligence

*Doc intelligence · Tools*

A POC AI system for logistics document intelligence used inside TMS workflows. Users upload PDF/DOCX (Rate Confs, BOLs, invoices), ask grounded questions across one or many documents, and run structured shipment-field extraction. Retrieval is a hybrid dense+sparse setup on Pinecone with LlamaCloud parsing; every response returns answer, cited sources, confidence, and guardrail status so downstream automation can trust or defer.

- Grounded Q&A with cited sources + confidence
- Structured shipment-field extraction (null-safe JSON)
- Hybrid dense + sparse retrieval on Pinecone
- PDF / DOCX / TXT ingest via LlamaCloud

Tech: Next.js, LangChain, LlamaCloud, Pinecone, OpenAI

[Case study](https://aravindan.cc/projects/ultra-doc-intelligence) · [Source](https://github.com/aravindsriraj/ultra-doc-intelligence) · [Live](https://doc-intelligence-alpha.vercel.app)

### Meet AI

*AI video meetings · AI Agents*

Meet AI is a video meeting app for real-time voice conversations with custom AI agents. Create an agent with its own instructions, voice, and avatar; talk to it over OpenAI Realtime WebRTC with live transcription; and after the call, Inngest background jobs save the transcript and generate a topic-based summary you can query via Ask AI chat.

- Custom agents with instructions, voice, and avatar
- OpenAI Realtime WebRTC with live transcription
- Inngest background jobs for post-call processing
- Ask-AI chat over meeting transcripts + summaries

Tech: Next.js, WebRTC, OpenAI Realtime, Inngest, Postgres

[Case study](https://aravindan.cc/projects/meet-ai) · [Source](https://github.com/aravindsriraj/meet-ai)

### Virtual Food Photographer

*Menu → photography · Media*

Virtual Food Photographer turns restaurant menus into professional food photographs. It parses menu text into structured dishes with Gemini 2.5 Flash, generates photorealistic images across multiple photography styles (Natural Light, Moody, Bright & Airy) with Imagen 4, supports text-prompt edits, and writes Instagram-ready captions for each shot.

- Menu → structured dish parsing with Gemini 2.5 Flash
- Multiple photography styles rendered with Imagen 4
- Text-prompt edits on generated images
- Auto-generated Instagram captions

Tech: React 19, Vite, Gemini 2.5, Imagen 4

[Case study](https://aravindan.cc/projects/Virtual-Food-Photographer) · [Source](https://github.com/aravindsriraj/Virtual-Food-Photographer)

### Message Notification Router

*Hybrid AI notification routing · AI Agents*

An AI-powered, personalized notification router for WhatsApp-style messaging. A single Gemini call per message makes the final notify/digest/mute judgment, informed by a deterministic feature layer that joins user, group, business, and historical-message data to compute recipient engagement/dismissal history, group trust and quiet hours, and a scored shortlist of that user's own relevant past messages. Images and voice notes are described/transcribed by Gemini before classification, and evidence message IDs are restricted at the schema level to the real shortlisted candidates, so hallucinated evidence is impossible. A system prompt treats message content as untrusted data to defeat prompt-injection attempts embedded in the messages themselves.

- LLM (Gemini) makes every routing decision, grounded in verified deterministic context
- Schema-restricted evidence IDs make hallucination a validation error
- Multimodal: Gemini describes/transcribes images and voice notes before routing
- Prompt-injection resistant — message text is data, never instructions

Tech: Python, Gemini, Pydantic, Pandas

[Case study](https://aravindan.cc/projects/message-notification-router) · [Source](https://github.com/aravindsriraj/message-notification-router)

## Contact

- Email: aravindsriraj@gmail.com
- GitHub: https://github.com/aravindsriraj
- LinkedIn: https://linkedin.com/in/aravindan-tr
- Résumé (PDF): https://aravindan.cc/Aravindan_Resume.pdf

Looking for: AI-native product teams.
