Aaditya Edupuganti

Aaditya Edupuganti

AI Engineer at Air India, Gurugram

I build myDiGi, Air India's multi-agent assistant for its staff, and did the crew leave analysis that sits alongside it. Outside work I build projects around agents, fine-tuning and data pipelines, and I enter Kaggle competitions.

Download resume
Portrait of Aaditya Edupuganti

About

I joined Air India as an AI Engineer in November 2024. Before that I did a dual degree in Aerospace Engineering and Data Science at IIT Madras, where I also led Team Abhyuday, a 30-student rocketry team.

Most of the projects below are my own. They take problems I know from aviation, rockets and finance and try agents, fine-tuning or plain statistics on them.

  • B.Tech + M.Tech, Aerospace Engineering and Data Science
    IIT Madras, 2019 to 2024, CGPA 8.65/10
  • Team Head, Team Abhyuday
    IITM rocketry, Chetak-1, 16th of 158 teams at the Spaceport America Cup 2023
  • Data Science Intern, Kotak Mahindra Bank
    May to Jul 2023, turnover model over 30,000 CIBIL profiles, R² 0.71
  • AI Engineer, Air India
    Nov 2024 to present, myDiGi and crew analytics

Path so far

  1. 2019IIT Madras
    Aerospace and data science
  2. 2022Team Abhyuday
    Led the rocketry team
  3. 2023Kotak Mahindra
    Data science intern
  4. 2024Air India
    AI Engineer, myDiGi
  5. 2025Crew analytics
    Unplanned leave study
  6. 2026Kaggle
    ARC Prize, Name That LLM

Projects

myDiGi

Air India, Nov 2024 to present

The assistant Air India staff use for crew, HR and travel questions. It replaced an older waterfall-dialog chatbot, and it is rolling out to about 25,000 employees. I built the platform: the agents on LangGraph, an MCP layer into the airline's internal systems, and the guardrails, memory and tracing around them. Each request goes to whichever sub-agent can answer it.

RequestGuardPII, jailbreakRoutingby personaCrewHRTravelMCP toolsInternalsystems
  • 3 agents, 14 sub-agents: 8 for HR, 5 for crew, 1 for travel
  • 30+ MCP tools across 5 enterprise systems
  • 25x fewer database writes per turn after replacing default checkpointing with my own session-state service

Python, FastAPI, LangGraph, Azure OpenAI, FastMCP, MongoDB, PostgreSQL, Azure AD, AKS

LaunchLoop

Personal project

A flight designer for a competition rocket. Several agents argue over performance, safety and recovery, change the rocket's configuration and re-simulate it in RocketPy, a real physics engine, until the design meets the mission constraints or comes back with a no-go.

Agents debatecompeting goalsChange configrocket designSimulateRocketPyCheck limitsmission constraintslimits not met: revise and run againmet: a design, or a no-go
  • About 6 simulations to reach the best design, against 28 for brute force
  • 0% constraint-violating designs, against 69% for a one-shot baseline
  • 33 m mean error predicting apogee from the first 2 seconds of flight

LangGraph, RocketPy, DuckDB, dbt, scikit-learn

Multi-Agent Due Diligence

Personal project

A research pipeline that looks into a company the way an analyst would. A planner scopes the question, four agents research it in parallel, and every claim goes into a typed graph before anything gets compared. Confidence is calculated from source quality, recency and corroboration, and a gap analyzer sends the agents back out until the evidence supports a thesis.

PlannerFinancialMarketRiskSentimentClaim graphGap analyzerThesisevidence too weak: research again
  • 0.856 groundedness over 5 traced runs, with no invented citations
  • 57 s average for a full run
  • 317 tests, all runnable offline

LangGraph, Pydantic v2, LangSmith, GPT-4o and 4o-mini

RLHF Fine-Tuning on HR Policy Q&A

Personal project

I fine-tuned Mistral 7B on HR policy questions with no human labellers. A RAG pipeline and an LLM judge produced the preference pairs, then QLoRA handled supervised fine-tuning and DPO the preferences. When I audited my own evaluation I found train/test contamination, so I dropped the affected metrics.

  • 1,978 preference pairs generated without human labelling
  • Under 16 GB peak memory, down from about 90 GB for full fine-tuning
  • About 2.5 GPU hours on a free Kaggle P100

Mistral 7B, QLoRA, DPO, ChromaDB

Unplanned Leave Prediction

Air India, Jul to Oct 2025

A study of unplanned crew leave across about 525,000 crew-date records. I tested 17 hypotheses. The usual assumption that holidays cause leave spikes didn't hold up (p = 0.33); base and fleet explain far more.

  • 525k rows covering 73+ leave types
  • 17 hypotheses tested with Welch's t, ANOVA and effect sizes

Python, pandas, scikit-learn

ARC-AGI-3 Agent

Kaggle, ARC Prize 2026, ongoing

An agent for ARC Prize 2026 that plays interactive visual-reasoning games it hasn't seen before. I started from the public Duck harness and Daniel Franzen's milestone-2 solution and have been testing changes on top. So far most haven't beaten the baseline by more than run-to-run noise.

  • Best leaderboard score 28.95. The unchanged baseline scored 20.60 in my run and 27.89 in Franzen's, so the gain isn't proven.

Python, LLM agent harness

Vayu: Delhi Air Quality Pipeline

Personal project, 2026

A data pipeline for Delhi NCR air quality. It pulls from two live APIs and a simulated station feed into a PostgreSQL star schema, transforms with dbt, and runs anomaly detection, Prophet forecasts and Granger causality tests under Prefect. The ground-station data is simulated, and over the 30 days I tested, Prophet did not beat simple baselines.

  • 1,344 Granger tests, 199 of them significant after Bonferroni correction
  • 10 dbt models with 54 data tests

Python, Prefect, PostgreSQL, dbt, Prophet, statsmodels, Streamlit

Name That LLM

Kaggle competition, 2026, ongoing

Given a short essay, say which of 18 LLMs wrote it. My solution blends n-gram TF-IDF, about 100 hand-built style measures, frozen Qwen3-8B embeddings and a two-stage LoRA fine-tune. The latest gains use public data and checkpoints shared by other participants.

  • Public leaderboard score 0.352 to 0.594 over successive versions

Python, scikit-learn, PyTorch, Qwen3-8B, LoRA

What didn't work

A few things that failed, and what I took from each.

A forecast that lost to a naive baseline

Vayu

Prophet's 24-hour category accuracy was 69.4%. Simply repeating the last observed value scored 75.9%. Most of the 30 days were calm, so a flat guess did well. The model should be tested again across the stubble-burning and winter months before anyone trusts it.

A memory fix that made things worse

ARC-AGI-3 agent

I tried rolling summaries to shrink the model's context. The practice run scored 8.57 against 45.35 for the baseline, so I dropped it. The model server was also killed when host memory spiked, which is why the agent now has a watchdog that restarts it.

An evaluation I had to throw out

RLHF fine-tuning

My first evaluation had train/test overlap at the prompt level. I found it myself, removed the ROUGE and accuracy numbers it produced, and reported win rates with confidence intervals instead.

A clever idea that cost points

Name That LLM

Training one model per topic group looked promising and scored 0.487 on the public leaderboard, below the 0.508 before it, so I reverted it. The log keeps the reverted versions alongside the ones that worked.

Contact

I'm open to AI engineering roles and happy to go through any of this in more detail.