Projects across systems, games and machine learning.
BattleCP
Live product
Asynchronous multiplayer Battleship where solving Codeforces
problems earns you turns. A Rust backend handles the rules and
keeps players in sync over WebSockets.
The server owns game rules and coordinates match state.
Codeforces submission checks connect programming progress to
gameplay, while reconnect handling keeps a match recoverable.
Public launch feedback informs iterations on the rules and
interface.
Bluff
In development
An imperfect-information card game where lying and catching lies
matter. I’m exploring whether agents can learn an opponent’s
habits when they play against the same person over several rounds.
Experiments compare agent variants against scripted opponents
over seeded matches. The current evaluation is synthetic; human
play and broader generalization are not established.
PokeForge
In progress
A Pokémon battle-agent project investigating decision-making with
hidden opponent information, legal action constraints and
reproducible baselines.
Python / PyTorch / Pokémon Showdown
Baseline comparison
Pinned FoulPlay and Metamon baselines complete legal local Gen 9
OU battles. Paired measurement is in progress.
The current focus is reproducible comparison against pinned
third-party baselines. Competitive strength, benchmark-server
conformance and public ladder performance have not been
evaluated.
Drishti-XAI
Research prototype
An explainable diabetic-retinopathy screening prototype combining
retinal image analysis, lesion evidence and Grad-CAM to support
clinician review.
MATLAB / Python / PyTorch / Simulink
What the evaluation showed
Strong internal results did not transfer to an external
population. Domain shift became the central evaluation lesson.
Source private
Evaluation and limitations
The current MATLAB pipeline reports sensitivity 0.908 and
specificity 0.877 on a sealed APTOS test split (733 images).
With its threshold unchanged on Messidor-2, sensitivity falls to
0.363, specificity is 0.865, and AUC is 0.666. These are
separate internal and external evaluations, not clinical
deployment evidence. The repository is private; this summary is
based on the project's current evaluation reports.
Quality gating, vessel/lesion analysis, calibration and Grad-CAM
support the workflow. Clinician assessment and clinical
validation remain open.
To-Do-or-Die
Linux utility
A Rust CLI for todos, with escalating consequences for missed deadlines: notifications, audio and desktop effects. Optional file deletion is disabled by default.
A few projects I’ve worked on with teams through classes, clubs and hackathons.
Algorithima
Openverse
Interactive DSA visualizations built through Openverse. Our team gave a lightning talk at OOSC 3.0 and presented the tool at T4E 2025, IIT Madras. Selected for OOSC 4.0.
An online judge built with a team at IIIT Kottayam. I worked on contest lifecycle, staff workflows, submission dispatch validation and per-test verdict persistence.
Team Hogorithm's trauma-support prototype, awarded Best Software at IEEE MACE .hack(); '26. I contributed Kotlin safety routing, domain models, UI and tests.
A team image-geolocation project using ResNet, quadtree geographic cells and transfer learning. Experiments compare data efficiency and adaptive cell methods.
Some of my other interests are fiction, especially Star Wars, The Lord of the Rings and Dune. I’ve read a good chunk of the books too. I also enjoy video games, Pokémon, poker and other card games, basketball, trekking and travel.
I also like ricing my OS (I use Arch btw). I do way more typing tests than a normal person should be doing. Monkeytype ↗