AI & Machine Learning Engineer · Bengaluru

I engineer AI systems — and direct what they imagine.

B.E. in Artificial Intelligence & Machine Learning, 2026. I don't stop at the notebook: every system here is trained, wrapped in a typed API, given a front end and put somewhere you can actually click it. Five systems, two running live right now.

0
Systems shipped
0
Live services
0%
Best model accuracy
0
Largest dataset
0/10
CGPA
AWS
Cloud practitioner
Line 01

Systems

Five machine learning systems, ordered by how much of the stack they cross. Every number below comes out of the notebook or source that built it — nothing rounded up, nothing borrowed from a tutorial's results. Two run live; press Wake service and the container spins up in front of you.

01

ResearchMind

A research assistant that searches, reads, writes and then criticises its own draft. Two tool-using agents feed two LCEL chains; the last one scores the report out of ten and says what's missing.

LangChaincreate_agentTavilyBeautifulSoupStreamlit
Local build
Pipeline
01 Search
Agent + Tavily
02 Read
Agent + scraper
03 Write
LCEL chain
04 Critique
Score / 10
Stages 01–02 are real tool-calling agents. 03–04 are prompt→LLM→parser chains. State moves between them as one dictionary.
Notes
  • The search agent gets one tool, web_search, wrapping Tavily and returning title, URL and a 300-character snippet per result.
  • The reader agent picks the most relevant URL itself and scrapes it, stripping script, style, nav and footer before returning clean text.
  • The critic returns a fixed format — score, strengths, gaps, one-line verdict — which turns a non-deterministic model into something you can actually compare across runs.
  • Streamlit shows each stage flipping from waiting to running to done, and the report downloads as markdown.
02

AI Video & Meeting Assistant

Give it a YouTube link or an audio file and it returns a title, a summary, action items with owners, key decisions and the questions nobody answered — then lets you interrogate the transcript.

WhisperSarvam AIMistralLangChainChromaDBpydub
Local build
Audio path
yt-dlp downloadsource
pydub → 16 kHz mononormalise
split into 10-minute chunkssegment
Whisper (EN) · Sarvam (HI/Hinglish)transcribe
map-reduce summarise · 3000 / 200mistral-small
Chroma · MiniLM-L6-v2 · 500 / 50index
LCEL RAG chain · k = 4answer
Notes
  • Hindi and Hinglish route to Sarvam's speech-to-text-translate endpoint, which rejects anything over 30 seconds — so each 10-minute chunk is re-cut into 25-second pieces with a safety margin and stitched back together.
  • English stays local on Whisper, no API cost and no upload.
  • Summarising happens map-reduce style because a two-hour transcript doesn't fit a context window: summarise each 3,000-character slice, then summarise the summaries.
  • Three separate extractor chains run over the full transcript for action items, decisions and open questions, each with its own system prompt and a defined "none found" answer.
03

Emotion Detection API

Six-class emotion classification over the HuggingFace emotion corpus. Four architectures trained head to head, the winner served behind a typed FastAPI endpoint that returns the full probability distribution, not just the label.

TensorFlowKerasFastAPIPydanticBiGRU
Local build
Test accuracy by architecture
SimpleRNN26.4%
GRU28.9%
LSTM34.0%
Stacked BiGRU92.1%
Same data, same optimiser, same class weights. The entire 58-point jump is architecture: reading the sentence in both directions, 300-dimension embeddings and dropout at 0.5.
Notes
  • The corpus is badly skewed toward joy and sadness, so class weights are computed balanced — a mistake on surprise costs the model roughly twenty times more than one on sadness.
  • Early stopping watches validation loss with restore_best_weights, so training keeps the good epoch rather than the last one.
  • Model and tokenizer load once at startup through a FastAPI lifespan handler and stay in memory — loading a Keras model per request is the standard way to make a fast model feel slow.
  • Pydantic bounds the input at 1–2000 characters and the response ships the confidence plus all six probabilities, so the caller can decide what "unsure" means.
04

Mental Health Score Predictor

Predicts a student's mental-health score from social-media and lifestyle habits. The interesting part isn't the model — it's that every transformation lives inside one pipeline object, so the API can't accidentally preprocess differently than training did.

scikit-learnColumnTransformerRandom ForestFastAPIRender
Local build
Model comparison · R² on held-out test
Linear Reg.0.740
Random Forest0.878
RF + tuning0.865
Mean absolute error fell 0.54 → 0.35 alongside it. Tuning with RandomizedSearchCV came out marginally worse than the defaults, so the untuned forest is what got deployed — reporting that honestly is the point.
One pipeline, four branches
Study hours · skewedlog1p → scale
Age, usage, sleep, activityscale
Stress level · orderedordinal 0–3
Gender, platform, purpose…one-hot
111 countries → top 10 + Otherengineered
  • Stress is ordinal-encoded with an explicit category order, because sklearn's default is alphabetical — which would file High below Low and destroy the ordering the encoder exists to preserve.
  • The whole fitted pipeline is pickled, so the API loads one file and calls predict on raw form input.
05

NYC Airbnb Room-Type Classifier

Three-way classification across 48,895 real listings. Shared rooms are barely 2% of the data, which makes plain accuracy a liar — so the whole model selection runs on macro-F1 instead.

scikit-learnclass_weightmacro-F1FastAPIRender
Local build
Cross-validated candidates · macro-F1
Logistic Reg.0.522
Decision Tree0.647
Grad. Boosting0.705
Random Forest0.715
Gradient Boosting ties Random Forest on raw accuracy (0.850 vs 0.851) but loses on macro-F1 — because sklearn's implementation takes no class_weight, so it quietly gives up on the rare class. Final tuned model: 85.6% accuracy, 0.741 macro-F1.
Notes
  • The split is stratified, so train and test carry the same class proportions as reality — a plain random split can hand you a test set with almost no shared rooms and a score that means nothing.
  • Price and minimum-nights outliers are capped at the 99th percentile, not deleted. A $10,000-a-night entry is one bad field, not a bad row.
  • Missing reviews_per_month is filled with 0, because it isn't missing — those listings genuinely have no reviews. Imputing the median there would invent review activity that never happened.
  • Identifier columns (id, host_id) are dropped even though they're numeric and would happily correlate with something.
Line 01 / B

Capability

What I've actually built with, not what I've read about. Everything listed here appears in a project above or in the coursework behind it.

Machine learning

scikit-learn end to end — Pipeline, ColumnTransformer, GridSearchCV and RandomizedSearchCV, cross-validation, class weighting. Linear and logistic regression, decision trees, random forests, gradient boosting, AdaBoost, XGBoost, KNN, SVM, naive Bayes, K-Means, DBSCAN, PCA.

Deep learning & NLP

TensorFlow and Keras — ANN, CNN, RNN, LSTM, GRU, bidirectional layers, seq2seq, attention and transformers. NLTK, tokenization, padding, bag-of-words, TF-IDF, n-grams and word embeddings.

Generative & agentic AI

LangChain — LCEL, Runnables, tool calling, agents. LangGraph state machines. Retrieval-augmented generation over ChromaDB and FAISS with HuggingFace embeddings. OpenAI, Mistral and Whisper. Pydantic-typed structured output.

Serving & deployment

FastAPI with Pydantic validation, lifespan model loading, CORS and static mounting. Streamlit. joblib and pickle serialisation. Git and GitHub, Render, Firebase. AWS Certified Cloud Practitioner.

Data

Python and SQL on PostgreSQL. NumPy, pandas, Matplotlib and Seaborn. Exploratory analysis, distribution and skew diagnosis, IQR outlier detection, correlation analysis, feature engineering.

Mobile & other

Kotlin with Jetpack Compose and Firebase, built during the MindMatrix internship. HTML, CSS and JavaScript for the front ends every project above ships with.

Line 02

Obsidian Line Studio

The other half. Character models trained for identity consistency, scenes generated on a local GPU through a node graph, frames sequenced into motion and graded, cuts published. Same discipline as the engineering line — pipelines, reproducibility, a build that has to actually finish — pointed at something you watch instead of something you query.

01

Train

Character models trained until a face survives across shots, angles and lighting.

02

Generate

Scene generation through a node-based pipeline running on local GPU.

03

Compose

Frames sequenced into motion, then graded and timed against the track.

04

Publish

Finished cuts released on the Obsidian Line channel — lo-fi series, character work, vertical shorts.

Line 03

Research & record

A peer-reviewed IEEE paper, an internship, a degree — and the links to check all three.

Best Paper Award IEEE · DOI registered ICKECS 2026 · Chikkaballapura

Toxibot — Rover with Camera and Sensor for Identifying Toxic Gases and Hydrocarbons in Enclosed Spaces

D. Kumar, S. Ambareesh, D. P. Verma, A. Agarwal and S. Patil, “Toxibot — Rover with Camera and Sensor For Identifying Toxic Gases and Hydrocarbons in Enclosed Spaces,” 2026 4th International Conference on Knowledge Engineering and Communication Systems (ICKECS), IEEE, 24 April 2026, pp. 1–5.

DOI 10.1109/ICKECS70176.2026.11528017

Experience
Generative AI & Android Development Intern
MindMatrix · VTU MoU partner · Remote · Feb – May 2026
Built Android apps in Kotlin and Jetpack Compose, taking screens from prototype through debugging in Android Studio. Wired generative-AI features in with Google AI Studio and Google Cloud Labs, and used Firebase for auth and data. Rated Excellent overall.
Obsidian Line Studio
Independent · Bengaluru
Self-directed AI film and visual work — training, generation, composition and release.
Education & credentials
B.E., Artificial Intelligence & Machine Learning
Sir M. Visvesvaraya Institute of Technology (VTU), Bengaluru · Dec 2022 – June 2026
CGPA 8.5 / 10.
Credentials
Co-author on an IEEE conference paper that took Best Paper at ICKECS 2026 (see above). NCC ‘B’ and ‘C’ certificates. Team lead at Under25.
AWS Certified Cloud Practitioner IEEE ICKECS 2026 · Best Paper NCC ‘B’ + ‘C’
Open to AI / ML engineering roles

Let's talk about what you're building.

Bengaluru, or remote. Fastest way to reach me is email — I answer everything.