I like problems that don't come with instructions.

I'm an AI Developer at ADMRLS in Chennai, finishing a B.Tech in CSE (AI & ML) at VIT Chennai in May 2027.

Over the past year I've scoped client work at ADMRLS, built data pipelines and CI/CD at Tech Mahindra, and supported production NLP pipelines at Virtusa.

Selected work

Hover to scroll a screenshot · click for a quick look

Habits from these projects

  • In Mandate Retry the agent only suggests a retry. Five hard rules check each suggestion before anything runs, and they turned down 11. Mandate Retry →

  • The PAD copilot compares each [n] with the passages it actually retrieved and removes any that don't match. PAD Copilot →

  • Mandate Retry shows all ₹82L it didn't recover, largest first, next to the ₹44L it did. Mandate Retry →

  • A verdict counts as traced only when its quotes are found in the FDA label and it carries every figure the claim states. OnLabel →

  • MAE, RMSE and outbreak detection accuracy were fixed before I chose the architecture. EpiGraph-AI →

Experience

  1. Jul 2026 – now

    AI Developer · ADMRLS

    Own end-to-end delivery of AI features for external clients, from requirement scoping through deployment. Single point of contact between client and engineering: I turn loosely defined requirements into structured specs, manage timelines and surface blockers early.

  2. May – Jul 2026

    Backend & Data Engineering Intern · Tech Mahindra

    Designed PostgreSQL schemas with SQLAlchemy, built modular Pandas ETL pipelines and deployed FastAPI microservices with JWT auth and Docker. Automated a GitHub Actions CI/CD pipeline (PyTest, Docker build, AWS EC2 deploy) with test-first merges, and wrote the team's SOPs.

  3. May – Aug 2025

    Technology Intern · Virtusa

    Supported production NLP pipelines for automated document extraction and handled ML data preparation (preprocessing, annotation, quality checks) in Python. Documented the pipeline architecture as an internal reference.

  4. Jun – Jul 2025

    Interdisciplinary Technical Content Intern · FlyBrand Digital Solutions

    Built predictive and risk-avoidance models on sensor, failure and maintenance-log data across Mechanical, Civil and ECE domains, and wrote about AI tools and model outputs for non-technical readers.

Leadership

  1. Jul 2025 – May 2026

    Event Lead · Open Source Programming Club, VIT Chennai

    Led a cross-functional team (content, logistics, outreach) that ran 10+ workshops and hackathons for 600+ students, from planning to post-event retrospectives.

  2. Sep – Dec 2025

    Campus Ambassador · Perplexity AI

    Drove user acquisition across 3+ universities through demos and outreach; tracked sign-ups and adjusted the campaign, reaching registrations from the US.

Skills

Product

Requirements scoping, stakeholder management, cross-functional coordination, SOP and spec writing, Agile, Jira (basic)

Analytics & data

, SQL, Pandas, NumPy, Excel / Google Sheets, Matplotlib, Seaborn, EDA, statistical modelling, PostgreSQL, ETL

ML, AI & GenAI

, , , , , , , NLP, Hugging Face Transformers, , LangChain, , ,

Backend & DevOps

, , , SQLAlchemy, , , AWS (EC2, S3), , , Git, Java, C++

Underlined skills are used in the projects above. Pick one to see which.

Email me

It's the quickest way to reach me.

OnLabel reviewing an Ozempic banner: three claims underlined in the copy, the first marked not in the label, with the label's Indications text highlighted as evidence and a boxed-warning risk notice below
The live demo reviewing its Ozempic banner sample (synthetic test copy).

OnLabel

Checks pharma promo claims against the FDA label and shows the label text behind every verdict.

Try it: pick a claim in the copy

There's only one Ozempic. Ask your doctor about Ozempic.

Claim 1: Not in the labelunsupported absolute claim

The label lists Ozempic's approved uses and says nothing comparing their number with other GLP-1 drugs.

Label text · 1 Indications and Usage

OZEMPIC is indicated: as an adjunct to diet and exercise to improve glycemic control in adults with type 2 diabetes mellitus; to reduce the risk of major adverse cardiovascular events (…) in adults with type 2 diabetes mellitus and established cardiovascular disease; to reduce the risk of sustained eGFR decline, end-stage kidney disease, and cardiovascular death in adults with type 2 diabetes mellitus and chronic kidney disease.

Claim 2: Traced to the label

Both parts are in the clinical studies section, quoted word for word.

Label text · 14.1 Glycemic Control Trials in Adults with Type 2 Diabetes Mellitus

Treatment with OZEMPIC resulted in a statistically significant reduction in HbA1c after 30 weeks of treatment compared to placebo (see Table 8).

The mean changes from baseline to week 30 were -1.2 kg, -3.5 kg, and -6 kg in the placebo, OZEMPIC 0.5 mg, and OZEMPIC 1 mg arms, respectively.

Claim 3: Reviewer decidesthe model said traced

gpt-oss-120b called this traced. Its own quote limits the benefit to adults with type 2 diabetes and chronic kidney disease, and the claim leaves that population out, so a plain-code check sent it to the reviewer.

Label text · 1 Indications and Usage

to reduce the risk of sustained eGFR decline, end-stage kidney disease, and cardiovascular death in adults with type 2 diabetes mellitus and chronic kidney disease.

Whole piece: the copy has none of the boxed warning (risk of thyroid C-cell tumors), so the review says that first.

The live demo's Ozempic sample: synthetic test copy whose first lines echo claims FDA cited in a February 2026 untitled letter. Verdicts by gpt-oss-120b, checked by the guards.

Problem
Every pharma promotional asset goes through medical, legal and regulatory (MLR) review, where reviewers check by hand that each claim traces to the FDA label. ZS writes that approval takes 21 to 56 days per asset, and FDA sent more than 100 untitled and warning letters about drug ads in September 2025 alone.
What I built
Hybrid retrieval over 12 DailyMed labels (bge-small int8 embeddings on ONNX, BM25 that keeps figures whole, rank fusion, and routing to the sections that govern each claim), an open-weight LLM judge returning strict JSON with verbatim quotes, and plain-code guards that decide what is reported. Copy is read as untrusted input: hidden text is exposed and instructions aimed at the reviewer are caught before anything is traced.
Result
On a 132-claim benchmark, the production model traced 0 of 42 violative held-out claims with the guards (2 on its own) and 25 of 28 faithful ones. The governing label text reached the judge for 98% of claims, and no prompt-injection attack got its claim traced.
Product decision
Nothing is reported as traced unless plain-code checks find its quotes and figures in the label and the claim carries the conditions of the indication it quotes. Copy that tries to instruct the reviewer gets no traced claim at all. Uncertain cases go to the reviewer, whose decisions export as an audit file.

Python · FastAPI · ONNX Runtime · BM25 + bge-small · gpt-oss / Qwen / Gemma · React · Docker · Render

Mandate Retry Sequencer dashboard: a rail showing 500 debits in, 187 stopped by a rule, 248 routed to the agent, 266 executed and ₹44L recovered, above a Sankey of where the 500 went
The live dashboard on the committed synthetic batch.

Mandate Retry Sequencer

Recovers failed UPI Autopay debits. An AI agent suggests retries and five compliance rules approve or block each one.

Try it: point at an hour

000612180 / 266in blocked hours

0 of 266 debits ran in a blocked hour.

NPCI peak window (10:00–13:00, 17:00–21:30)
Allowed; darker means more debits ran

Every debit from the committed run on synthetic data, by hour (IST).

Problem
Merchants retry failed debits, but can't easily show which retries were allowed, which were refused and what each one cost.
What I built
A LightGBM recoverability score, five hard compliance rules checked before and after every decision, and an LLM agent limited to the uncertain score band. Each decision is written to an append-only ledger.
Result
₹44.25L of ₹1.26Cr at risk recovered (35%) across 500 synthetic records. 187 records stopped by a rule, 11 agent proposals vetoed, 0 of 266 debits in an NPCI peak window. 214 tests.
Product decision
No score or agent proposal can override a rule. Every unrecovered record is listed on the dashboard, largest first.

Python · FastAPI · LightGBM · SHAP · Claude API · React · d3

PAD Risk Copilot: a PAD probability, the top SHAP factors as bars, and a written explanation citing numbered NHLBI and CDC passages
The copilot explaining a demo record with numbered citations. The model shown here was trained on synthetic test data.

PAD Detection + Risk Copilot

Predicts peripheral artery disease, then explains the score with sources you can check.

Try it: hover or tap a citation

Statins lower cholesterol and certain fats in the blood, and can slow the progression of plaque buildup in the arteries, which is a key cause of PAD NHLBI · PAD: Treatment · Medicinesretrieved passage · retrieval score 0.725.

Diabetes and hypertension are both risk factors for PAD, as they can damage blood vessels and increase the risk of atherosclerosis NHLBI · Peripheral Artery Disease: What Is PAD?retrieved passage · retrieval score 0.722.

A citation the model invents gets removed: StrippedNo passage 7 was retrieved, so the code removes it and flags the answer. Illustrative example from the README.

From a demo run of the copilot. The model in that run was trained on synthetic test data.

Problem
Someone reading a risk score needs to know why it came out that way, and where each claim in the explanation comes from.
What I built
A leakage-controlled pipeline over MIMIC-IV (13 features, 6 classifiers) and a local RAG copilot that explains each score with SHAP attributions and cited passages.
Result
Best AUC 0.88. The copilot retrieves the right passage for 24 of 24 golden questions, and no unresolvable citation survives. 54 tests.
Product decision
Each citation is checked in code against the retrieved passages. When nothing relevant is found, the copilot says it can't answer.

Python · scikit-learn · XGBoost · LightGBM · SHAP · Ollama · Streamlit

EpiGraph-AI surveillance homepage: a dark map of India with Gujarat highlighted as active, the headline India Under Watch, and a live district risk ticker
The surveillance web app, running locally.

EpiGraph-AI

Forecasts dengue outbreaks across connected districts from cases, weather and news.

Problem
Outbreaks spread between connected districts and show up in local news before case counts, and single-signal forecasts miss both.
What I built
A hybrid GAT + LSTM model that fuses district connectivity, case and weather history, and BioBERT news embeddings, with a surveillance web app on top.
Result
R² 0.585, MAE 26.74 cases, and 63% outbreak detection accuracy (prediction within 50% or 10 cases of actual).
Product decision
I fixed the metrics before choosing the architecture, and used Huber loss so sudden case spikes don't dominate training.

Python · PyTorch · GAT · LSTM · BioBERT · Flask

Madhar Sha customer intelligence dashboard: yesterday at a glance with visitors, busiest hour, section dwell time and unstaffed time, above a bar chart of people at the counter by hour
Phase 1 preview. Figures are illustrative until it is connected to the showroom's cameras.

Madhar Sha Customer Intelligence

Turns showroom camera footage into plain-language staffing and layout advice.

Problem
A shop owner can see the floor but not the pattern: when it is actually busy, which sections hold attention, and where shoppers wait with nobody serving them.
What I built
A Phase 1 preview dashboard reporting footfall, busiest hour, section dwell time, unstaffed time and billing-counter pressure.
Result
Live preview. Its figures are illustrative until it is connected to the showroom's own cameras.
Product decision
Each metric comes with one sentence the owner can act on, like where to put staff.

Computer vision · Next.js (static)

The backend's real routes.

Finstox

The backend of a stock-trading course project: NSE predictions with the reasons attached.

Problem
A bare price prediction gives a non-technical user no way to judge whether to trust it.
What I built
A FastAPI backend serving LSTM predictions for NSE stocks, with LIME and SHAP explanations for each prediction, plus auth, wallet and trading routes.
Result
Shipped as the backend of the course project: 18 API routes, including a per-stock prediction endpoint.
Product decision
Each prediction gets its own LIME and SHAP explanation, because users ask about one stock at a time.

Python · FastAPI · TensorFlow/Keras · LIME · SHAP

A Comprehensive Analysis of Lightweight CNN for Fall Detection in Hallway Monitoring

Sherly Alphonse, Bhenedix Paul, Madhav K and Joshnavi Pokala. 10th International Conference on Inventive Systems and Control (ICISC), Coimbatore, pp. 890–896, published 5 August 2026. DOI 10.1109/ICISC69558.2026.11681696

Problem
Fall detection research mostly targets elderly care, where a system must tell a fall from lying down or sleeping. A school, hotel or office hallway needs one answer, fast: did someone fall?
What we built
A lightweight binary CNN (one sigmoid output, augmentation, dropout and batch norm) that runs on existing CCTV without a GPU, plus an email alert to reception or security when it detects a fall.
Result
Under 50 ms per frame on CPU. On 115 test samples: 70% accuracy and AUC 0.71; on the fall class, 0.82 precision and 0.66 recall.
Trade-off
It needs far less compute than R-CNN-style detectors, and gives up accuracy for it: GPU-based methods in the literature report around 90%. A single decision threshold can be tuned to catch more falls.