Creative & Adaptable
I try to stay creative and adapt to whatever a problem actually needs, rather than force the same approach onto everything.
Welcome — this is my portfolio. Almost everything in this workshop is something real you can click into. Look around and pick up whatever catches your eye.
Scroll to pan the room · pick anything up
I'm Devasurya, currently in my fourth year of a Computer Science degree at Jain University.
I like making things — especially things that are actually useful or mean something. I'm curious by nature, and I'd rather understand how something works than just use it. That's probably why I got into AI and building around it.
I spend a lot of my time building projects and picking up new tools along the way — a few of them are on the bench in this workshop if you want to look. I'm also learning Japanese on the side.
Outside of tech, I listen to a lot of music, watch a lot of movies, and spend a fair amount of time bouldering — I like picking harder routes to keep it interesting. I ride my bike a lot too. More on all of that on the shelf, if you're curious.
I try to stay creative and adapt to whatever a problem actually needs, rather than force the same approach onto everything.
If I don't fully understand something, I stop and figure it out before moving on — no matter how long that takes. I'd rather get there properly than fake it.
I think AI should make people more efficient, not replace the understanding underneath. Using it well still comes down to knowing the domain and directing it properly — the direction matters as much as the tool.
I'd rather ship something complete and working than leave it half-built. If I build something, I want it to run end to end, not just look good in a notebook or a demo.
TraceFlow looks at a fault report from a factory machine and puts together a root-cause analysis automatically. You send it details about what went wrong, and it comes back with a written report instead of a raw log dump. It's built to run as a proper background service — nothing waits around for the analysis to finish — and it's set up to handle more than one client's data at once without any of it mixing together.
When a machine reports a fault, the API doesn't make you wait for an answer. It responds right away with a tracking ticket (a 202 Accepted), and a background worker picks up the real analysis from there.
The worker looks at the machine's fault history in PostgreSQL, then searches technical manuals stored in ChromaDB for anything relevant to those symptoms. Everything is scoped to the tenant that submitted it, so one customer's data never mixes with another's.
The fault history and the relevant manual excerpts get combined and sent to Gemini 3.5 Flash, which writes up a preliminary root-cause report. I tested this across two different manufacturing setups — injection molding and CNC calibration — using the same code path for both.
So a fault report turns into a written root-cause analysis without anyone needing to sit and wait for it. There's also a small React + Vite frontend for submitting incidents, checking status, and reading the report — the whole thing works end to end, not just the backend half.
NEEDS: real request/response screenshots or a recorded incident walkthrough, to extend this centerpiece with an actual incident submission → queued → RCA report reveal.
This project detects eye diseases from retinal images, and — just as important — shows why it made that call. Every prediction comes with a heatmap of what the model was actually looking at, not just a label. It covers four diagnostic categories, and the whole point was to treat explainability as something the model has to earn, not a nice extra tacked on afterward.
A model that's just accurate isn't enough for something medical. If it can't explain itself, there's no way for a doctor to catch it when it's confidently wrong.
I trained two different architectures on the same retinal images — a ResNet18 CNN and a Swin Transformer — and compared them side by side instead of picking one and hoping it was good enough. Both produce a Grad-CAM heatmap with every prediction.
I also checked whether the model's attention actually made sense — glaucoma predictions should focus on the optic disc, diabetic retinopathy should pick up scattered spots across the retina. That's a real check on whether the model is right for the right reasons, not just a nice-looking overlay.
The CNN hit 91.12% validation accuracy, the Swin Transformer hit 94.08%. The transformer did better because it picks up on broader patterns across the image instead of just local details. It's deployed live, not sitting in a notebook.
Trained on ~4,200 retinal images across four diagnostic categories (Kaggle's Eye Diseases Classification dataset).
NEEDS: real prediction + Grad-CAM heatmap image pairs for a few example cases, to extend this deep-dive with an actual raw-prediction vs. Grad-CAM overlay toggle.
AutoPrompt automatically improves prompts for an LLM instead of me tweaking them by hand. It runs on Groq's API using Llama-3.1-8B, and the idea is simple: instead of guessing which phrasing works best, let a separate process generate variations and actually test them. It grew out of wanting prompt engineering to be less trial-and-error and more of a measured process.
A separate model generates and tests candidate prompts against the task. Baseline and optimized versions run at the same time using asyncio, with rate limits managed through semaphores so nothing gets throttled or dropped. Both versions get scored against held-out test data, so the better prompt is picked on actual results, not a guess — and running everything concurrently is also what makes the whole pipeline noticeably faster than testing prompts one at a time.
This work also became a co-authored, accepted paper, which was a good lesson in the difference between a tool that works and a result that holds up to review.
This tool estimates a fair resale price for second-hand items. A scraper pulls real listings, an XGBoost model predicts the price, and the whole thing is wrapped in a proper backend and dashboard instead of living in a notebook. The goal was to build something a person could actually open and use to check what their stuff might sell for, not just a proof-of-concept script.
FastAPI serves the backend, a Streamlit dashboard is the frontend, and everything runs containerized with Docker — a complete path from raw listing data to a usable price estimate. The scraper handles data collection on its own, feeding real listings into the model instead of relying on a static dataset, so the predictions stay grounded in what's actually being sold.
NEEDS: real CI-score / SHAP output examples, to extend this piece with a live prediction-breakdown interaction like the brief originally envisioned.
This project compares a batch of different machine learning algorithms to see which one actually predicts diabetes best from patient health data — glucose levels, BMI, blood pressure, age, and a few other clinical measurements. Instead of picking one model and going with it, the idea was to run many side by side under the same conditions and let the results decide. It was a shared project with a teammate, and each of us tried a different way of preparing the data before classification.
My part used PCA for dimensionality reduction paired with a kernel SVM (RBF kernel), run against the standard eight-feature diabetes dataset — Pregnancies, Glucose, Blood Pressure, Skin Thickness, Insulin, BMI, Diabetes Pedigree Function, and Age — across a few different train-test splits. The rest of the project tested a much wider set of algorithms, from boosting methods to neural nets, on the same data, which made it a good way to see how much the preprocessing choice alone changes the outcome.
These are the skills I actually use — I've applied all of them in a real project, and I've got at least a working knowledge of everything else here.
Apart from work, I'm also into these things.
Probably my main one — always looking for something new. Right now that's a lot
of Blood Orange, Mac DeMarco, and Inner Wave.
I play regularly, mostly to keep the habit alive. Cleared most of the
FromSoftware games — Elden Ring, Bloodborne,
Sekiro, Dark Souls 3 — along with Persona 5,
OMORI, and Undertale. Currently working through
Blasphemous and Hades. Favorite's probably the
Infamous series.
Favorite anime is Steins;Gate. For movies, I'd say Jumper
or Palm Springs.
Hiking, football, and bouldering — I like taking on harder routes just to keep it interesting. I ride my bike a lot too.
Pokémon cards, physical and on TCG Pocket, and I've played a good number of the games. Also still slowly learning Japanese — JLPT N5 so far.
Always looking for new things to get into.
If the workshop was worth the walk, hang your sigil on the shield. Every visitor gets one strike — pick a sigil, pick a metal, sign it with your initials.
0 MARKS ON THE SHIELD