Most of my work sits at the same junction: a model that has to survive contact with a real deployment. Behind an API, inside an app somebody actually opens, on a machine that costs money to keep running.
Now / October 2026 – present
Infosys
AI Intern
Developing and evaluating applied AI/ML solutions in Python, covering data preparation, modeling and evaluation.
Working in an Agile team with code and design reviews, documenting experiments and presenting results to mentors.
Experience / May – September 2025
VideoLAN
Google Summer of Code 2025 Contributor
Built an AI media recommender module for VLC Media Player, in VLC's C/C++ and Qt codebase, personalising suggestions from user playback behaviour.
Nothing merged because I said it worked; it merged because the checks agreed.
Selected by VideoLAN to build an AI media recommender inside VLC's C/C++ and Qt codebase — a codebase measured in decades, not sprints.
Implemented a native module combining media feature extraction, metadata analysis, playback-based user-preference profiling and multiple recommendation algorithms, integrated into VLC's build system.
C
C++
Qt
QML
CMake
GitLab
Machine Learning
Selected work
Six samples out of twenty-one.
Every number here is the number the repository reports, including the ones that are not flattering.
S.01Machine learning2026active
AquaSafe
Five models for waterborne disease risk, built twice
A full-stack mobile health platform that predicts seven waterborne diseases and scores water safety, water quality, sanitation and outbreak risk. Five models behind a Flask REST API with JWT authentication, consumed by a 19-screen Flutter app.
A three-backbone ensemble for dermoscopic lesion classification
Eight-class skin lesion classification on ISIC 2019, built as an ensemble of three modern vision backbones with learnable attention-weighted fusion, and trained inside a seven-hour budget on a single H100.
Medical visual question answering, fine-tuned on an 8-billion-parameter model
A medical visual question answering system: Qwen3-VL-8B fine-tuned with LoRA on 150K+ samples, answering natural-language questions about X-ray, CT, MRI, ultrasound and pathology images, with Grad-CAM heatmaps showing where it looked.
Moving files across an air gap, one screenful at a time
An optical file-transfer protocol. One phone animates QR frames, another films them, and bytes cross a gap with no network, no pairing and no radio — encrypted per packet, on a looping carousel that brings dropped frames back round.
A password manager that has nowhere to send your data
A zero-knowledge, offline-first password manager. AES-256-GCM with PBKDF2-SHA256 key derivation, biometric unlock, and one Flutter codebase running on Android, iOS, Windows, macOS and Linux.
A civic engagement platform giving citizens a direct, transparent route to report potholes, garbage dumping, broken streetlights and drainage leaks — and to watch what happens next. Spring Boot behind a React client.
Disease, 8 classes, 500,000 records, macro F1 0.2020
95.19%
Current version
Disease, 8 classes, 5.25M records
Both numbers stay on this page. Neither one is a field result: both came from generated data, and that caps how far either can be trusted.
The lab / don't take my word for it
Try it here.
L.01 Runs on this device
Draw a digit
A small convnet I trained on MNIST, running right here. There is no server and no ML library: the layers are about 170 lines of TypeScript, and they match PyTorch's output on the test images.
Draw a digit from 0 to 9
–
Loading the model
What it saw, and where it looked
0
1
2
3
4
5
6
7
8
9
Test accuracy
98.02% on MNIST
On shifted, rotated test images
96.82%
Size
10,010 parameters, 40 KB
It learned from scanned American handwriting, not mouse strokes, so expect it to get some of yours wrong. A confident wrong answer is a useful thing to see.
L.02 Real protocol, real frames
Send me across the air gap
This page is a PhotonQR sender. Type a message and transmit it, then point the app's Receive screen at these frames. Each one is AES-256-GCM encrypted in your browser and looped until you stop.
Waiting for a message
Starting it makes the code flicker at 6 frames a second, or 1 with reduced motion on.
Frame
Position
Size
Shown
Header
Checked by decoding these frames with the app's own Dart code: header, key derivation, decryption, reassembly and digest. Not yet tried with a real camera and screen. The key travels in the first frame, as in the app's default mode, so anyone filming the whole loop can read it. Get the app or read how it works.
October 20242nd Runner-UpHackByte, a national-level hackathon with 300+ teams, at Vellore Institute of Technology, Andhra Pradesh.VIT-AP
October 2024Honorable Mention — SDG 11Sustainable Cities and Communities track at Hack4SDG, for Communitfx, among more than 200 competing projects.IIT Hyderabad
September 2024FinalistSpecathon 2024, a 36-hour national-level hackathon.St. Peter's Engineering College
2023Intinta InnovatorSelected as an Intinta Innovator by the Government of Telangana.Government of Telangana