Hey there, I'm

Rishabh Shah.

✦ 2× hackathon winner
3 papers published
−66% enrollment time
TA · Rutgers CS205

I solve problems end to end, from a three-second API to a stroke-consult scheduler, and I sweat the details nobody asked about.

M.S. in Computer Science at Rutgers, graduating May 2027. Open to full-time SWE & ML roles.

01Things I've built

Problems I couldn't leave alone, including two hackathon wins. Hover for the punchline, click for the story.

  • Tele-neurology operations command center that replays a live event stream, spots coverage gaps before they happen, and staffs them through an approval loop.

    The problem

    Late stroke consults and uncovered shifts get noticed only once they are already late.

    What I built

    An event-replay engine that spots coverage gaps 90 minutes ahead and proposes the cheapest safe fix.

    What came of it

    Won the Sevaro × Rutgers Health Hack. Every action is approved and audit-logged.

    Lookahead
    90 min
    Roles
    3
    Engine
    Deterministic
    Pipeline
    Detect · Decide · Act

    Under the hood

    • 01Rebuilds physician and consult state by replaying an event stream server-side, with an injected clock, so every decision is deterministic and explainable.
    • 02Detect, decide, act: flags breaching time standards, demand surges, and coverage gaps; picks the cheapest safe fix (reassign, escalate, wait, or a short split shift) and names the approver.
    • 03Act loop runs propose → clinical-lead approval → send → accept, decline, or 10-minute timeout → recompute coverage, with every step in an append-only PostgreSQL audit log.
    • 04FastAPI backend with an OpenAPI contract that generates the React dashboard's types; a Flutter app gives the clinical lead and physicians their own role-based views.
    • Python
    • FastAPI
    • PostgreSQL
    • React
    • TypeScript
    • Flutter
    • ECharts
    • Docker
  • Plans a day in New York from one sentence, ordering the stops around travel time, opening hours, and how crowded each neighborhood is.

    The problem

    Days out in New York fall apart on logistics: zig-zag routes, peak crowds, closed doors.

    What I built

    One sentence in, an ordered itinerary timed to travel, opening hours and subway crowds.

    What came of it

    Best Use of Backboard (MLH) at DivHacks 2026.

    Input
    1 sentence
    Data sources
    6
    Crowd signal
    MTA ridership
    Hackathon
    DivHacks '26

    Under the hood

    • 01Turns a free-text description of the day into an ordered itinerary, timed around travel between stops and each place's opening hours.
    • 02Estimates crowds from MTA subway ridership near each stop, and schedules every stop for its quiet hour.
    • 03Shows the plan on a 3D city from Google Maps Platform, with places and streets from OpenStreetMap, weather from Open-Meteo, and photos from Wikimedia Commons.
    • Next.js
    • Google Maps Platform
    • OpenStreetMap
    • MTA open data
    • Open-Meteo
    • Vercel
  • Local-first code context engine and developer tooling: CLI, MCP server, SDK, SQLite graph index, and VS Code wrapper for coding agents.

    The problem

    Coding agents burn tokens and tool calls hunting through a repository for context.

    What I built

    A Tree-sitter symbol graph in SQLite, queried with BM25 and graph walks under a token budget.

    What came of it

    82.3% less context (1,540 → 273 tokens) over 364 tasks at 100% recall. Shipped to PyPI.

    Median context
    −82.3%
    Target recall
    100%
    Agent tasks
    364
    Symbols indexed
    177K+
    Open-source repos
    12
    Tests, 76% coverage
    379

    How the data flows

    1. 01

      Repository

      Python, JavaScript and TypeScript sources

    2. 02

      Tree-sitter

      Symbols, imports, calls and tests into a SQLite graph

    3. 03

      FTS5 · BM25

      Keyword search fused with graph proximity

    4. 04

      Token budget

      Only the context the task actually needs

    5. 05

      MCP tools

      Served to coding agents over 6 tools and a CLI

    Under the hood

    My role: Sole developer. Engineered a local-first Python developer tool spanning a CLI, MCP stdio server, SDK facade, SQLite graph index, and VS Code wrapper to generate compact repository context for coding agents.

    • 01Tree-sitter indexing pipeline for Python, JavaScript, and TypeScript extracts files, symbols, imports, calls, inheritance, tests, and source references into a transactional SQLite graph.
    • 02Adaptive retrieval combines FTS/BM25, graph proximity, token budgets, and strict schemas to return task-scoped context.
    • 03Surfaces compact context through 9 CLI commands and 6 strict-schema MCP tools, shipped as a PyPI package.
    • 04Crash-safe re-indexing: SHA-256 change detection re-parses only what changed, then swaps the index atomically so agents never read a half-built graph.
    • 05Every release is gated on PR and nightly evaluation suites across 12 open-source repos (12,245 files), including Django, pandas, and Transformers.
    • Python
    • SQLite
    • Tree-sitter
    • FTS5
    • MCP
    • VS Code Extension
  • AI mock interview platform that grades like a panel would: grounded questions, cited evidence, and weighted verdicts computed on the server.

    The problem

    Mock interview tools give vague feedback that drifts from one session to the next.

    What I built

    RAG over a curated question corpus, Gemini strict-schema grading, and a Go verdict engine.

    What came of it

    Grades 8 interview types with exact-quote citations and server-side weighted verdicts.

    Interview types
    8
    Prompt budget
    256 KiB
    Recording memory cap
    32 MiB
    Upload chunk
    5 MiB
    Rate-limited endpoint types
    4

    How the data flows

    1. 01

      Question corpus

      Curated questions, ingested idempotently into pgvector

    2. 02

      RAG

      Grounded questions retrieved per interview type

    3. 03

      Live interview

      Recorded in 5 MiB chunks straight to S3

    4. 04

      Prompt budget

      Older exchanges dropped whole to fit 256 KiB

    5. 05

      Verdict

      Gemini strict schema, exact quotes, weighted in Go

    Under the hood

    • 01Questions come from a curated corpus through RAG over pgvector, with idempotent ingestion and a retrieval verification script, so interviews stay grounded instead of improvised.
    • 02Gemini returns strict JSON Schema output with exact-quote citations; the Go server computes weighted verdicts across structure, clarity, depth, and ownership, and a cleanup job removes invalid scores.
    • 03Recordings upload directly to S3 as 5 MiB multipart chunks with retry and part reconciliation, capping in-browser memory at 32 MiB per recording.
    • 04Postgres-backed rate limits, CSRF checks, and per-user presigned S3 keys protect 4 endpoint types.
    • Go
    • TypeScript
    • Next.js
    • PostgreSQL
    • pgvector
    • Gemini
    • AWS S3
  • Computer vision backend pipeline for red-light, helmet, and speeding detection with OCR, PDF challans, cloud storage, and SMS delivery.

    The problem

    Ticketing traffic violations by hand does not scale and leaves weak evidence.

    What I built

    YOLO12-X and ByteTrack, firing checks only when a vehicle crosses a virtual line, with LLM plate OCR.

    What came of it

    93.76% end to end, with PDF challans sent by SMS. Published at IEEE ICICIS 2025.

    End-to-End Accuracy
    93.76%
    Vehicle Detection
    97.56%
    Helmet Detection
    93.26%
    Plate Extraction
    92.7%
    Plate Detection
    98%
    YOLO12-X mAP@50-95
    90.61%

    How the data flows

    1. 01

      Live video

      60 fps feeds; checks fire only when a vehicle crosses a virtual line

    2. 02

      YOLO12-X

      Best of 5 YOLO11/12 variants for red lights, helmets and speeding

    3. 03

      ByteTrack

      Per-vehicle state and duplicate-ticket suppression

    4. 04

      Llama 4 Scout

      Plate OCR, retried on the next sharpest frame, regex-checked

    5. 05

      Challan

      PDF evidence to S3, delivered by Twilio SMS

    Under the hood

    My role: Co-author. Built the OCR step (Llama 4 Scout vision, a retry on the next sharpest frame, and regex checks for Indian plates) and helped fine-tune YOLO12-X, the best of 5 YOLO11/YOLO12 variants.

    • 01Integrated Llama 4 Scout via Groq for license plate OCR, regex-based plate validation, vehicle registration verification, Jinja2/pdfkit document generation, AWS S3 storage, and Twilio messaging.
    • 02Violation checks fire only when a tracked vehicle crosses a virtual line instead of on every frame of 60 fps video, cutting wasted compute and duplicate tickets. ByteTrack keeps per-vehicle state across frames.
    • 03YOLOv12x fine-tuned on a custom traffic dataset covering red light jumping, speeding, helmet-less riding, missing insurance, and pollution non-compliance.
    • Python
    • YOLOv12x
    • OpenCV
    • Groq Llama-4
    • Django
    • Twilio
    • AWS S3
  • Conditional WGAN-GP that synthesizes realistic stock market sequences, nearly halving a forecaster's error when mixed into its training set.

    The problem

    Financial series are scarce and noisy, so forecasters overfit and miss rare events.

    What I built

    A 264K-parameter conditional WGAN-GP, causal TCN plus stacked LSTM, generating AAPL market series.

    What came of it

    Forecast error fell from 2.07% to 1.15% MAPE. First-author chapter, Wiley 2026.

    Forecast MAPE
    2.07% → 1.15%
    Hurst exponent, real 0.7626
    0.7624
    Correlation-matrix distance
    0.0107
    Generator parameters
    264K
    Pearson correlation
    >0.80
    Training epochs
    3,000

    How the data flows

    1. 01

      Market windows

      6 AAPL features modeled as conditional sequences

    2. 02

      Causal TCN

      Temporal convolutions that never see the future

    3. 03

      Stacked LSTM

      Long-range structure in a 264K-parameter generator

    4. 04

      WGAN-GP critic

      Gradient penalty plus mean-variance matching

    5. 05

      Augment

      Synthetic sequences join the LSTM forecaster's training

    Under the hood

    My role: First author. Designed and implemented the full pipeline: WGAN-GP architecture, 3000-epoch training, synthetic-data filtering, and downstream prediction evaluation on unseen data.

    • 01Conditional Wasserstein GAN with gradient penalty plus mean-variance matching, not a vanilla GAN. It stabilizes 3,000 epochs of adversarial training on high-variance series where vanilla GANs collapse.
    • 02Causal TCN layers feed stacked LSTMs, so the generator never sees the future while still learning long-range structure across 6 market features modeled as conditional sequences.
    • 03Generator concatenates past market windows with noise, then runs multi-head attention, temporal convolution blocks, two LSTM layers, and a GRU before a dense head. The critic is a Conv1D plus LeakyReLU stack trained 5 times per generator step with AdamW.
    • 04Trained on AAPL daily data (Open, High, Low, Close, Adjusted Close, Volume) preprocessed with log returns and a hybrid standard plus min-max scaling scheme. Synthetic sequences are validated with Pearson, Spearman, and R-squared before being mixed into training sets.
    • Python
    • PyTorch
    • NumPy
    • Pandas
  • Voice assistant with smart home automation: wake-word speech pipeline, Groq-hosted Llama 3.1 8B query processing, and Azure IoT Hub device control through Raspberry Pi GPIO.

    The problem

    Smart speakers fumble complex requests and are opaque about voice data.

    What I built

    A wake-word pipeline, guarded Llama 3.1 8B on Groq, and Pi GPIO control over Azure IoT Hub.

    What came of it

    A four-module assistant that runs a home end to end, privacy-first. Published at ISTE 2025.

    Modules
    4
    LLM
    Llama 3.1 8B
    IoT Platform
    Azure IoT Hub
    Edge Device
    Pi 3B+

    How the data flows

    1. 01

      Wake word

      “JARVIS”, after noise filtering

    2. 02

      Speech to text

      Spectral filtering for accents and noisy rooms

    3. 03

      Fast path

      Math, reminders and apps skip the LLM entirely

    4. 04

      Llama 3.1 8B

      On Groq, behind guard prompts for privacy

    5. 05

      Home

      Azure IoT Hub to Raspberry Pi GPIO

    Under the hood

    My role: End-to-end build: Django backend with authentication via django-allauth, Groq API integration for LLM inference, Raspberry Pi 3B+ device control, Azure IoT Hub messaging, and the wake-word speech pipeline.

    • 01Four modules: deterministic keyword tasks, multi-threaded math and reminder handling, LLM query processing, and home automation. The wake word JARVIS triggers the speech pipeline after noise filtering.
    • 02LLM queries are forwarded with guard prompts to Llama 3.1 8B hosted on Groq; prompt engineering filters harmful context and prevents exposure of private data before responses reach the user.
    • 03Home automation commands flow through Azure IoT Hub to a Raspberry Pi 3B+ that toggles appliances via GPIO pins, with device state mirrored in a database and voice commands never cached on device.
    • Python
    • Django
    • Groq API
    • SQLite
    • Raspberry Pi
    • Speech Recognition
    • Azure IoT Hub
  • Bi-LSTM ML pipeline using Librosa features achieving 98.73% accuracy with lightweight inference.

    The problem

    Accurate genre models are usually too heavy to serve cheaply in real time.

    What I built

    Librosa MFCC features into a 2-layer Bi-LSTM, then post-training quantization.

    What came of it

    98.73% accuracy, with a model 15% smaller and 22% faster at inference.

    Accuracy
    98.73%
    Model Size
    -15%
    Inference Speed
    +22%
    Genres
    10

    How the data flows

    1. 01

      Audio clip

      Uploaded track, features extracted on the fly

    2. 02

      Librosa

      MFCCs plus spectral centroid and rolloff

    3. 03

      Bi-LSTM

      Two bidirectional layers with dropout

    4. 04

      Quantize

      Post-training quantization for cheap serving

    5. 05

      Streamlit

      Per-genre probabilities and confidence

    Under the hood

    My role: Built the full pipeline: feature extraction (MFCC plus spectral features via Librosa), Bi-LSTM architecture in TensorFlow, training loop, post-training quantization, and a Streamlit demo app.

    • 01Librosa extracts MFCC coefficients plus spectral centroid and rolloff. Features are normalized and fed into a 2-layer Bi-LSTM with dropout between layers.
    • 02Post-training quantization shrinks the model by 15% and speeds inference by 22% at negligible accuracy cost. Deploy-time is materially better.
    • 03Streamlit demo app uploads audio, extracts features on the fly, runs inference, and shows per-genre probability plus a confidence spark chart.
    • Python
    • TensorFlow
    • Librosa
    • NumPy
    • Pandas
    • Scikit-learn
    • Streamlit

02Where I've been

Two internships shipping to production, two degrees, and now teaching the fundamentals at Rutgers. Pick a stop on the timeline.

Sep 2026 – Now · New Brunswick, NJ

Teaching Assistant at Rutgers University

CS205: Introduction to Discrete Structures I

50+
Students each week
  • 01Teach weekly recitations for 50+ undergraduates on logic, induction proofs, relations, and finite-state machines.

03Ideas, in print

Computer vision, generative models, and voice interfaces, written up properly.

  • Wiley · Scrivener Publishing2026

    Bridging Financial Data Gaps with WGAN-GP: Generating Synthetic Time Series for Robust Models

    Explainable Artificial Intelligence, Volume 2: Bridging Concepts, Applications, and Future Challenges (Ch. 34, pp. 739-754)

    Rishabh Shah, Fayed Hakim, Armaan Attar, Harsh Samant, Nilesh Patil, Chinmay Raut

  • IEEESeptember 2025

    Intelligent Traffic Surveillance: A Vision-Based System for Detecting Traffic Rule Violations

    2nd International Conference on Integration of Computational Intelligent System (ICICIS)

    Harsh Samant, Kush Doshi, Rishabh Shah, Shreevardhan Bhosale, Dashrath Kale

  • ConferenceJune 2025

    JARVIS: Voice Assistant with Smart Home Automation

    ISTE Journal, Vol. 48 (2025), p. 130 · International Conference on STEM for Sustainable Development

    Rishabh Shah, Alan George, Yukta Saraf, Rujuta Jariwala

04My stack

The tools I work with, grouped the way job posts list them.

Languages

What everything is written in.

  • Python
  • TypeScript
  • JavaScript
  • Go
  • Java
  • C++
  • SQL

Backend & databases

APIs that stay fast, data that stays put.

  • Django
  • FastAPI
  • Express.js
  • Node.js
  • REST APIs
  • Pydantic
  • JWT Auth
  • OAuth2
  • Clerk
  • RBAC
  • PostgreSQL
  • pgvector
  • MySQL
  • MongoDB
  • SQLite
  • Redis
  • Celery
  • Prisma

Frontend

Interfaces people enjoy using.

  • Next.js
  • React
  • Tailwind CSS
  • Streamlit
  • Bootstrap
  • HTML5
  • CSS3

AI & data science

Models, pipelines, and the numbers behind them.

  • PyTorch
  • TensorFlow
  • Scikit-learn
  • OpenCV
  • YOLO
  • RAG
  • Embeddings
  • Groq API
  • Gemini
  • Pandas
  • NumPy
  • SciPy
  • Matplotlib
  • Apache Spark
  • Hadoop
  • Tableau
  • Power BI

AI tooling

Agents in the loop, me on the review.

  • Claude Code
  • Codex
  • Cursor
  • Kiro
  • GitHub Copilot
  • MCP

Cloud & DevOps

Shipped, tested, and kept shipped.

  • AWS
  • GCP
  • Azure
  • Oracle Cloud
  • Vercel
  • Render
  • Docker
  • Kubernetes
  • GitHub Actions
  • Git
  • Linux
  • Pytest
  • Vitest
  • Playwright
  • Postman

05 · Say hi

Got a problem
worth solving?

I'm happiest on the messy ones. Send it over and I'll bring curiosity, a plan, and a very sharp eye for detail.