Open to SDE & GenAI roles · from November 2026

Aditi Vashishtha. I build full-stackand applied AI systems,from idea to production.

Final-year student at Manipal University Jaipur on the Kalvium software product engineering track. Software engineering intern in the IT department of a Delhi government power utility, June to October 2026.

projects, built solo
5
live in production
4
open source, MIT
1

Every project says what it doesn't do.

Pixel-art portrait of Aditi Vashishtha

hello

Hi, I'm Aditi Vashishtha.

I build alone, which means I break things alone too. That's mostly how I've learned anything.

how I show work

The limitation sits on the card next to the stack, because that is the real state of the thing. A page that only lists what works is describing a good day.

a11y Agent
73 to 76% is the share of axe-detected violations of the four targeted types. It is not a claim about the whole page.
Familiar
Built as a client-rendered SPA, so shared article links preview blank and Google struggles to index it. Wrong architecture for a publishing platform.

how I ship

  1. 01axe-core verifies every fix, so the model never grades its own work
  2. 02Per-IP rate limits and a global daily cost cap on the LLM endpoints
  3. 03Uploads are ephemeral and auto-delete after 30 minutes
  4. 04Auth replies identically whether or not the account exists

Where the code has to keep working.

June — October 2026

Govt. of NCT Delhi · IT department

Software engineering intern

Indraprastha Power Generation & Pragati Power Corporation

Maintaining and shipping features on the company's live internal web portals, frontend and backend, for a power utility that serves Delhi.

Directly accountable to the IT department for uptime, functionality and production stability of systems people use to do their jobs.

Five projects. Built solo, architecture through deploy.

The agent's HTML report, showing resolution rates split across three verification tiers
01open source

a11y Agent

An accessibility agent that isn't allowed to grade its own homework.

73–76%

of axe-detected violations fixed and re-verified, across four live sites

Scans a live page, proposes a context-aware fix for one of four issue types, applies it, re-scans to confirm the violation actually cleared, and retries once with the axe error as feedback before failing honestly.

Read moreShow less

The model only makes judgment calls. axe-core owns detection and verification. Deterministic contrast fixes sit in the pipeline as a control case, and they caught two real bugs I would otherwise have shipped.

A question answered from an uploaded PDF, with the cited passages and their page numbers listed below
02live

DocuMind

Document Q&A that has to survive two retrievers before it answers.

27 / 27

top-1 recall on a hand-labelled eval, tied with plain vector search

Postgres full-text search and pgvector run side by side, and reciprocal rank fusion merges the two rankings. A passage has to place well on keyword match and on semantic similarity before it gets cited.

Read moreShow less

The unglamorous half: PDFs are byte-validated before parsing, requests are rate limited per IP, there's a global daily cost cap so a bad day can't become a bad bill, and uploads delete themselves after thirty minutes.

The Familiar home feed in dark mode, with recent essays, their cover images and a trending sidebar
03live

Familiar

A publishing platform with the boring parts done properly.

Rich-text editor, infinite feed, threaded comments, likes, bookmarks, follows and in-app notifications. Frontend, backend and deployment, all mine.

Read moreShow less

The auth surface is the part I'd point at: JWT sessions, Google OAuth with account linking, and single-use expiring tokens for email verification and password reset. Notifications are isolated on purpose, so one failing never breaks the like or comment that triggered it.

The Jaipur cafe scrapbook: natural language search, area, type and budget filters, and ranked cafe cards pinned to the page
04live

Café Scrapbook

Cafe discovery for Jaipur, ranked so new places can't game it.

45

Jaipur cafés, ranked from 44,717 reviews

45 Jaipur cafes drawn from a public Zomato dataset, with natural language search. GPT-4o-mini parses the query, Gemini takes over when it doesn't.

Read moreShow less

Ranking is a Bayesian weighted score rather than a raw average, so a cafe with four five-star reviews doesn't outrank one with two hundred good ones. Hand-built scrapbook interface, designed and deployed solo.

The conference homepage, with navigation across five sections and the hero showing dates and venue
05live

ASCI 2026

The official site for an international academic conference.

Multi-page site for a conference at Manipal University Jaipur, with scroll-triggered animations and responsive carousels, serving attendees and organisers.

Notes from when a measurement disagreed with me.

September 2026

I built hybrid retrieval, then measured it. It tied.

A 27-question eval where hybrid search tied with plain vector search, and why the test set was the problem.

Read the post

top-1 recall · 27 questions

keyword only48%
vector only100%
hybrid (RRF)100%

caveat One post. I write these up when a measurement contradicts what I expected, which so far has happened once.

What I reach for.

PythonTypeScriptJavaScriptSQLC++ReactNext.jsTailwindViteFastAPINodeExpressSSEJWTOAuth 2.0PostgreSQLpgvector / HNSWMongoDBSupabaseMySQLRAGhybrid retrievalRRFOpenAI APIGeminiLangfuseGitPlaywrightaxe-coreVercelRailwayRender