Final Year CSE · Vasavi College of Engineering, Hyderabad
I build complete products from scratch — from ETL pipelines and ML models to real-time backends, hardware-embedded systems, and React frontends. My work spans fintech intelligence, assistive technology, and real-time systems, with a focus on making data actionable rather than decorative.
Currently seeking SDE roles in product-focused and fintech teams.
Most Indian retail investors track holdings in Excel or rely on broker apps that only show raw P&L. PortSense goes further — it runs holdings through a FinBERT NLP pipeline for real-time sentiment analysis using fresh GNews articles (with tiered freshness windows per stock), computes portfolio beta and diversification scores, benchmarks returns against Nifty 50 via XIRR, and uses Gemini 2.5 Flash to generate specific rupee-amount rebalancing advice grounded in live data.
Supports NSE stocks, mutual funds (via MFAPI), and fixed deposits — three asset classes in a single unified platform. Features a 13-category market news feed, LTCG/STCG tax classification with inflation-adjusted real returns, a "What If?" comparison against Gold/Silver/Nifty/FD using identical cash flows, and a Stock Intel drawer with sentiment, technicals, and fundamentals — all backed by a 3-tier sector detection system and background analytics prefetching for near-instant page loads.
Stack: React · FastAPI · MongoDB Atlas · FinBERT · Gemini 2.5 Flash · yfinance · MFAPI · GNews API
🔗 Live Demo · API Docs · GitHub
🎯 Demo login:
demo@portsense.in/Demo@1234
A bidirectional assistive device that closes the communication gap between the deaf/mute community and the hearing world — built entirely from hardware and software components without any third-party translation service.
The glove uses five flex sensors and an MPU6050 IMU on an Arduino Uno to capture per-finger bend angles and wrist orientation. After per-user calibration, gestures are classified against a CSV lookup and served as text through a Flask web interface — offline, no app install required. The reverse flow uses the Web Speech API to transcribe spoken or typed input and map it to sign language video playback. Both directions run in the same local interface, making it genuinely bidirectional without requiring two separate tools.
Stack: Arduino C++ · Python · Flask · pyserial · Web Speech API · HTML/CSS/JS
▶ Demo Video · GitHub
SmartTax is built around one core insight: every UPI transaction is a behavioral signal — most banks ignore it, SmartTax doesn't. It runs two parallel engines on the same underlying data pipeline. The user-facing engine converts transactions into goal-based micro-savings: when a user sets a goal, Prophet forecasts category-level spend, and the ML layer computes inversely-weighted tax percentages per category so that discretionary spending (travel, shopping) absorbs a higher contribution rate than necessities. Every transaction then nudges a small amount toward the goal automatically.
The bank-facing engine uses KMeans segmentation across five behavioral features to cluster customers into Conservative, Moderate, and Aggressive profiles — then surfaces partnership triggers, churn signals, and pre-approved loan candidates through a Power BI layer connected via REST to the Flask backend. The entire data foundation is built on a clean ETL pipeline over a Kaggle banking dataset, generating 50 synthetic users and 7,600+ transactions loaded into MongoDB Atlas.
Stack: React · Flask · Python · MongoDB Atlas · Prophet · Scikit-learn · Power BI · Pandas
GitHub
Every cricket scoring app assumes squads are locked before the match, overs never change, and no player appears on both sides. None of that is true in gully or turf cricket. CricTrack is built around these realities — handling late arrivals, mid-game over changes, and a Joker player designation that lets one person bat for one team and bowl for the other, with career stats tracked separately per innings.
The full match lifecycle runs from toss to career stats. The umpire view records every delivery — runs, extras, wickets, bench/replace, undo — syncing instantly across all connected clients via WebSockets. Architecture decisions were made deliberately: embedded player snapshots avoid populate() on the hot scoring path, atomic bench-and-replace events eliminate the race condition of recording a delivery mid-swap, and deterministic stat recalculation at match end ensures undos and mid-game changes never produce drift.
Stack: React 19 · Node.js · Express · Socket.IO 4 · MongoDB Atlas · TailwindCSS 4 · JWT
🔗 Live Demo · GitHub