Where I've worked

Experience

Sherlock AI

Software Engineering Intern

Owned the public demo interview flow end to end in Next.js: adaptive interview behavior, in-browser recording and submission. It is the surface prospective customers evaluate before they ever talk to the team. I also prototyped a Google Meet add-on that shows audit logs and checks interview integrity from a sidebar inside the live call, so review happens where the interview already takes place.

  • Owned the public demo prospects evaluate, in Next.js
  • Prototyped a Google Meet add-on for interview integrity

Jun to Aug 2026 Remote

Comcast

Software Development Engineer Intern

India Engineering Centre

I was asked whether low-code agent tooling could work inside engineering teams. I scoped the problem, chose Langflow and shipped the pilot: one place for planning, budget tracking, structured data and team communication, plus a surface that turns a coding question into a generated solution. Then I watched how the team actually used it and added RAG over internal documentation.

  • Adopted across a 40-person engineering team
  • Cut ~40% of the team’s recurring planning and coordination work
  • RAG over internal docs: a further ~18% gain in communication efficiency

May to Aug 2025 Chennai, India

Penn State

Learning Assistant · Math Peer Tutor

B.S. Computer Science, Math minor

As a Learning Assistant I ran calculus review sessions, and as a peer tutor I work one on one across introductory math. The work is explaining hard ideas to people who do not share my context, and finding the exact spot where a mental model broke. It is the same skill a forward-deployed engineer uses with a customer.

  • GPA 3.84 of 4.00
  • Dean's List, 6 of 6 semesters

Learning Assistant · Aug 2025 to May 2026 Tutor · Jan 2026 to Present University Park, PA

What I've built

Builds

Fifteen builds, flagship first: products, hackathon wins, a first-author paper and the smaller tools in between. Every number here has a source I can show you.

PrismAI agency release: a client asks for an iPhone app on a weekly call, PrismAI checks it against clause 3.2 of the agreement and drafts change order #3 for approval

Agency release, in development: a client’s extra ask, checked against the agreement and drafted as a change order you approve.

Now building · agency release, Dec 2026

For agencies and client-services teams, PrismAI checks each client request against the signed agreement, quotes the clause, and drafts a priced change order at the agency’s own rates. Code computes every dollar, and nothing reaches the client until the owner approves.

Product · live betaMar 2026 to Present

PrismAI approval-first meeting agent

A meeting agent that turns what people promise on a call into finished work, and asks before it acts.

I took PrismAI from an empty repo to a live beta in about six months. A Recall.ai bot joins Meet, Zoom or Teams, and 12 LangGraph agents turn the call into decisions, action items, follow-up emails and Jira or Linear tasks.

Hybrid search (pgvector plus BM25) answers questions across every past meeting, an MCP connector brings that context into Claude and ChatGPT, and a cross-tenant attack suite blocks CI.

I wrote 1,120 of its 1,352 commits, starting with the first one.

PrismAI live-meeting view with highlighted commitments, a meeting health score, decisions and action items with owners
The live-meeting view, from PrismAI’s landing page.
PrismAI after the call: a health score with clarity, participation and outcomes, and action items with owners checked off
Twelve agents work through every meeting (from PrismAI’s landing page).
PrismAI stand-in tab: open action items, decisions, and notes on what PrismAI should know about you
Stand-in: PrismAI covers a meeting you cannot attend.
  • 14live beta users in isolated workspaces
  • 100+meetings analyzed in the beta

React · FastAPI · LangGraph · Claude · OpenAI · Supabase/pgvector · BM25/RRF · MCP · Recall.ai · Deepgram · Cartesia

BetterBill: "Know the price before you go. Fix the bill after. We make the call." beside its price, bill-check and billing-call screens (sample bill, synthetic)
1st · Visa track1st · Photon, Best Voice Agent
Hackathon · 24 hours · team of 4Oct 2026 · AI Hackathon 2026 by LA Hacks, UCLA

BetterBill hospital bill advocate

Snap a hospital bill. It finds the charges worth questioning, shows the proof, and calls the billing office once you approve.

I owned bill intelligence: the deterministic rules engine, the photo and text bill readers, the API, and Sentry monitoring of every AI call.

  • 22 of 22seeded billing errors caught, zero false flags on clean bills
  • 88.8%of bill lines recovered from 35 phone photos

TypeScript · TanStack Start · Expo · oRPC · Drizzle · Postgres · StepFun · Gemini · ElevenLabs · Photon · Sentry

Read more about BetterBill

We took 1st place in the Visa track and 1st place for Photon’s Best Voice Agent, the agent that calls the billing office over a Photon line once you approve the script. The model only transcribes the bill; a deterministic rules engine computes every flag and dollar in integer cents, each tied to its source. On test bills seeded with errors it caught every one, with zero false flags on clean bills.

MVR logo, "Verified software modernization", beside its evidence view: "Every claim is linked to evidence." (local run on a synthetic codebase)
Product · working proof of concept · soloSep 2026 to Present

MVR verified software modernization

Before anyone rewrites a legacy system, MVR rebuilds it as a model where every claim links to evidence.

Solo build: every commit in the repo is mine.

  • 0false-certainty claims on held-out synthetic fixtures
  • 2,320unit tests passing, plus 312 tenant-isolation tests

FastAPI · React 19 · TypeScript · PostgreSQL (forced RLS) · Temporal · S3 · OIDC · OpenTelemetry

Read more about MVR

MVR captures a codebase as an immutable, content-addressed snapshot, and seven deterministic analyzers turn it into a system model where every claim points to the exact evidence behind it. Anything they cannot prove is recorded as unknown, never guessed. In its own evaluation, on held-out synthetic fixtures, it never claimed certainty it could not prove, with tenant isolation enforced by forced Postgres row-level security.

Vytal logo, "One place to coach. One place to train.", beside its coach workspace showing which trainee needs attention first (synthetic data)
Controlled beta
Product · controlled beta · soloJul 2026 to Present

Vytal coaching platform for fitness coaches

Coaching software where the coach stays in charge: every score explains itself, and AI acts only where a person confirms it.

Solo build: 333 commits in 12 weeks, all mine.

FastAPI · SQLAlchemy · PostgreSQL · React · TypeScript · TanStack Query · Claude Haiku 4.5 · Cloudflare R2 · Render · Vercel

Read more about Vytal

Live at joinvytal.live in a controlled beta for multi-coach organizations. Every score is deterministic, versioned and explained with reason codes; the one model in the loop turns a meal photo into a macro estimate that the trainee confirms before it is logged. Access control runs through a single policy check, and every trainee reassignment leaves an append-only audit trail.

Match Day wordmark, "Play. Compete. Belong.", beside its command center flagging matches that are running late
Live
Product · live · team build2026 · live at joinmatchday.com

Match Day racket tournament platform

Tournament day, coordinated: registration, draws, courts and live scoring for racket sports in one system.

Built with a team, badminton-first, for organizers, players, scorers, officials and spectators.

React 19 · Vite · React Router · Tailwind CSS · Motion · Supabase (Postgres, Auth, row-level security, Realtime, Storage, Edge Functions)

Read more about Match Day

Replaces the spreadsheets, WhatsApp threads, paper check-in sheets and separate scoring tools most tournaments still run on. Players register for singles or doubles, check in, and follow their courts, live scores, rankings and history. Organizers configure categories, manage waitlists, seed players, generate draws, schedule matches, assign staff and handle disputes.

Live scoring runs inside the tournament workflow, with game-state management, score corrections and an offline scoring queue for unreliable venue internet. Spectators follow draws, courts and live matches without an account. Scoring, draws, scheduling, rankings and the tournament lifecycle sit in isolated, testable business logic behind one repository layer.

Yinzone logo over a 3D street-scale map of Pittsburgh: "Where could new housing go in Pittsburgh, and what stands in the way?"
Hackathon · 30 hours · team of 5Sep 2026 · AI Horizons 2026: AI for Housing Hackathon, Track 3

Yinzone where new housing can go in Pittsburgh

Click any lot in Pittsburgh and see which of 16 housing types fit, by what approval path, and what stands in the way.

I built the AI chat: voice, cited answers, what-if reruns of the real scorer, and a guard that drops any sentence with a number that is not in the facts.

  • ~142,000Pittsburgh parcels scored on 53 indicators

TypeScript · React 19 · TanStack Start · MapLibre GL · oRPC · Drizzle · Neon Postgres + PostGIS · Gemini · Vercel

Read more about Yinzone

Yinzone scores the city’s parcels on indicators drawn from 134 public datasets. Deterministic code decides every score and every legal status. AI explains and advises: a site-fit model rates each housing type with a confidence, and when it is unsure, it flags a human instead of guessing.

Terrametric wordmark, "Soil, weather and crop stress, turned into early warnings", beside a globe marking an Iowa field cluster
2× 1st · Bitcamp 2026
Hackathon · 36 hours · team of 3Apr 2026 · Bitcamp 2026, University of Maryland

Terrametric crop drought intelligence

Tells farmers which fields are heading into drought stress, and what irrigating them will cost and save.

The idea was mine, and I led the build: system orchestration, model training, the grounded RAG chat and the stress metrics. I also led the live pitch to the judges.

  • 14-daydrought-stress forecast for every field

React · Three.js · Leaflet · FastAPI · XGBoost · Qwen 2.5-7B · Twilio · WebSockets

Read more about Terrametric

Three prizes at Bitcamp 2026, including 1st in the Real World track (Ambrook) and 1st in the Intermediate Data Science track. It scores drought stress per field, forecasts it 14 days ahead with XGBoost, and writes an irrigation prescription with cost and savings projections that a farmer can simulate before committing. A RAG agent grounds its answers in Iowa and USDA agronomy documents, and alerts go out by SMS for farmers who never open a dashboard.

The paper title and "83.7% fewer CodeQL errors" beside a diagram of the GCC, CodeQL and repair loop, with KLEE as the final check
  • 15,088 → 2,463CodeQL errors in CodeLlama 7B’s C code, across 5,000 tasks
  • 42% → 22%compile failures for DeepSeek Coder 1.3B
Research · arXiv preprint · first authorSep 2025 to Jul 2026 · 2nd Place, Engineering, Penn State Undergraduate Exhibition 2026

Tool-guided repair for LLM-generated C GCC · CodeQL · KLEE

A repair loop that sends compiler and static-analyzer findings back to the model, so LLM-written C comes out compiling and safer.

Without help, the models we tested failed to compile up to 46% of their C programs and left security defects in up to 49%. My loop feeds GCC and CodeQL findings back to the model for up to three repair rounds, guided by a growing library of past fixes ranked by how far each got through GCC, CodeQL and KLEE symbolic execution.

Across 5,000 C tasks it cut CodeLlama 7B’s CodeQL errors by 83.7%, and nearly halved DeepSeek Coder 1.3B’s compile failures while its security defects fell from 35% to 15%.

First author, with Saatvik Pradhan and Suman Saha.

Python · GCC · CodeQL · KLEE · retrieval · DeepSeek Coder · CodeLlama

More builds

A hackathon meeting agent, an interview-prep product, public tools and side projects. Every one has a public repo you can open.

Quorum logo, "Joins your meeting, listens, takes the action, and speaks back", beside a meeting where someone says "Hey Q, file a GitHub issue for the auth bug"
Hackathon · weekend · team of 4Mar 2026 · YHack

Quorum AI meeting participant

An AI teammate that sits in the meeting, listens, talks back, and does the task you ask for out loud.

I wrote most of the code.

Read more about Quorum

Quorum joins a live meeting as a participant: it listens in real time, contributes ideas, speaks back, takes actions like filing a GitHub issue on request, and can drive a shared screen. Built over a weekend on Recall.ai, Deepgram, Claude and ElevenLabs, it attacks the same problem I keep working on in PrismAI.

Python · FastAPI · Claude · Recall.ai · Deepgram · ElevenLabs

FilingWatch "8K" mark, "Reports what was filed, never what it means", beside its feed of recent SEC 8-K filings with notable ones marked
Tool · solo · public repoSep 2026

FilingWatch SEC 8-K monitor

Watches SEC filings for the companies you follow and tells you what was filed, never what it means.

Read more about FilingWatch

Once a day it checks EDGAR for new 8-Ks, marks each one notable or routine with fixed rules on item codes (every verdict names the rule that decided it), and emails a digest. Claude Haiku 4.5 writes a one-sentence factual summary, and an output check throws out any summary that drifts into advice, price prediction or opinion. A missing summary is acceptable; a slanted one never ships.

Python · FastAPI · Claude Haiku 4.5 · SEC EDGAR · APScheduler

NextRound logo and the line "Readiness, measured." beside its interactive prototype
Product · private build · public prototypeJul to Sep 2026

NextRound interview readiness, measured

Interview prep for software engineers: it plans each day, diagnoses what went wrong, and computes every score in code instead of asking a model.

I wrote 75 of the 78 commits across its two repos, including the architecture.

Read more about NextRound

I built the working version for my own prep first. It plans each day to a minute budget, picks problems just above my level in each topic, schedules spaced re-solves and runs a mock interview with a voiced interviewer. When a problem goes badly, Claude diagnoses why, but every rating and the green, amber or red verdict a mentor sees are computed in code, with the reasons attached.

On the multi-user platform I measured cost from the first week. Every model call is logged with its tokens and cost, and live probes showed prompt caching cut the input cost of a 12-turn mock interview by 73%. A teammate set up the staging deploy. The public prototype is a concept demo of that platform, not the working build.

  • 73%lower input cost per 12-turn mock interview, with prompt caching

React 19 · Vite · Vercel functions · Supabase · Claude API · ElevenLabs · FastAPI · PostgreSQL · Redis

CinemaChat wordmark, "Turns vibes into watchlists.", beside its landing page with a row of movie posters
Side project · soloMar to Apr 2026

CinemaChat agentic movie and TV picks

Ask for a movie the way you would ask a friend, and get picks with reasons.

Read more about CinemaChat

Every request runs a Claude tool-use loop: Claude decides which tools to call (semantic search over about 1,000 movies, actor and director filmographies, a friend’s taste profile) and how many times, then ranks its picks with a reason for each. It also handles the social part: ask for something you and a friend would both love, or blend your tastes into one shared playlist.

React · Node/Express · Claude tool use · Pinecone · PostgreSQL · TMDB

TransitGuard logo, "Missed-connection risk for transfer bags, before the bag misses the flight", beside high, medium and low risk levels
Project · soloMar to Apr 2026

TransitGuard baggage risk dashboard for airport ops

Flags the transfer bags most likely to miss their connection, while there is still time to save them.

Read more about TransitGuard

A machine-learning model gives every transfer bag a live risk score from its connection window, delays, gate or terminal changes and congestion. The dashboard ranks bags by urgency, recommends the fix (prioritize the transfer, expedite customs, escalate to a supervisor), and lets staff log each action from flag to resolution. It retrains on historical outcomes from a CSV upload, so it can adapt to a different airport.

FastAPI · Next.js · TypeScript · ML risk model

PaperTrail wordmark, "Give it a topic, title, DOI or link. It maps the lineage and the reading path.", beside its search screen
Side project · team of 2Apr 2026

PaperTrail reading paths for research papers

Give it a topic, title, DOI or link, and it maps the papers to read first.

I wrote most of the code.

Read more about PaperTrail

PaperTrail finds the likely seed paper, builds its ancestor tree from Semantic Scholar and arXiv citations, and lays it out in learning layers, from the paper itself back to its earliest foundations. Broad prompts like "rag" or "agents" get a short clarifying question first, so the tree starts from the right paper.

React · Vite · D3 · Node/Express · PostgreSQL · Redis · Neo4j

AlgoQuest logo, "Learn data structures and algorithms through play", beside decorative sorting bars
Side project · team of 2Apr to May 2026

AlgoQuest algorithms as a game

Data structures and algorithms taught as a game instead of a problem set.

Read more about AlgoQuest

Eight core algorithms, from bubble sort to Dijkstra, each with a step-by-step visualizer, code in JavaScript and Python, and a short quiz. XP, levels, badges and a timed daily quest keep a learner coming back.

React · React Router · CSS Modules

In one line each

  • Cut ~40% of recurring planning and coordination work for a 40-person engineering team at Comcast.
  • Took PrismAI from an empty repo to 14 beta users and 100+ meetings analyzed in about six months.
  • Cut CodeLlama 7B’s CodeQL errors by 83.7% across 5,000 C tasks, as first author on an arXiv preprint.
  • Won 1st place in four hackathon tracks in 2026: two at the AI Hackathon by LA Hacks, two at Bitcamp.
Proof of work

Verify me in one click.

Most of what is above leaves a public trail: the graph counts my private-repo work too, and every hackathon win links to its Devpost page.

GitHub · last 12 months@vs-githjk
1,750contributions
19 dayslongest streak
612contributions, Oct 1 to 20
NovDecJanFebMarAprMayJunJulAugSepOct

The graph shows the latest six months on a phone; the totals cover the whole year.

Updated Oct 20, 2026Less More
How I build

Principles

The model explains. Code decides.

In BetterBill, Vytal, FilingWatch and NextRound, deterministic code computes every score, flag, verdict and dollar, and the model reads, drafts and explains. PrismAI’s agency release (in development, Dec 2026) prices change orders the same way. When a number matters, it should never come from a guess.

Something has to be able to say no.

Every system I build has at least one check that can reject the output: a compiler, a static analyzer, an output guard, a test that fails the build, or a person at the approval gate. If nothing can say no, the output is a guess with good formatting.

Measure, then claim.

Every number I publish says what it measures, and where I can, how: BetterBill’s catch rate comes with the fact that we planted the errors, and the paper’s error reduction comes with the set of tasks it was measured on. "Feels better" stays a hunch until a number backs it.

End to end first, then polish.

Terrametric ran from field data to a 14-day forecast to an SMS alert inside 36 hours, because the whole path worked before any part of it was pretty. You cannot tune what does not run.

Who I am at work

What you get

Reliability

I care most about the gap between a good demo and a system people can depend on.

  • BetterBill’s rules engine does all of its arithmetic in integer cents, so a model’s rounding can never reach a dollar figure.
  • In PrismAI, a cross-tenant attack suite blocks CI, so a data leak between customers fails the build before it can ship.
Forward-deployed

I want to work where the system meets the people using it.

  • At Sherlock AI I owned the demo prospective customers evaluate before they talk to the team.
  • At Comcast I scoped the question, picked the tool and shipped the pilot, then improved it based on how the team actually used it.
Owner

I run what I build, from the first commit to the first users.

  • PrismAI: 1,120 of its 1,352 commits are mine, from an empty repo to a live beta.
  • Vytal and MVR are solo builds: Vytal is live in a controlled beta, MVR is a working proof of concept.
Modernizer

When I see a manual workflow, I want to rebuild it.

  • At Comcast the pilot I shipped put planning, budget tracking and team communication in one interface.
  • MVR exists to modernize legacy software safely: every claim about the old system links to evidence.

What that adds up to: an engineer who can own an AI system end to end, keep it safe and measurable, and stay close enough to the people using it to know whether it helps.

Toolkit

Shipped with, not read about.

Languages

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

AI systems

  • LangGraph
  • Tool calling
  • RAG
  • pgvector
  • BM25 / RRF
  • Pinecone
  • MCP
  • Prompt caching
  • Anthropic API
  • OpenAI API
  • Gemini
  • Langflow
  • XGBoost

Voice & meetings

  • Recall.ai
  • Deepgram
  • Cartesia
  • Pipecat
  • ElevenLabs

Backend & data

  • FastAPI
  • PostgreSQL
  • Row-level security
  • Multi-tenant isolation
  • Supabase
  • Redis
  • SQLAlchemy
  • Drizzle
  • Temporal
  • SSE / WebSockets

Frontend

  • React 19
  • Next.js
  • TanStack Start
  • Tailwind CSS
  • Chrome extensions

Verification & testing

  • GitHub CodeQL
  • KLEE
  • GCC
  • pytest
  • Vitest
  • Playwright

Infra & observability

  • Docker
  • Vercel
  • Render
  • OpenTelemetry
  • Sentry

Integrations

  • Slack
  • Microsoft Teams
  • Jira
  • Linear
  • Notion
  • GitHub
  • Twilio
Contact

Tell me what’s broken.

Hiring a forward-deployed engineer or an AI engineer, or building agents that have to hold up with real users? Write to me. I am available from January 2027 and open to relocating. If you think I got something on this page wrong, tell me that too.