I build tools that let LLMs touch real production data safely.
Final-year CS student at VIT Vellore (CGPA 9.41). At Microsoft Ads I shipped a read-only MCP server over production Postgres and MySQL, found a silent crawler bug that hid unsafe sites, and audited LLM-based domain classifiers against legacy classification logic. Outside work I build full-stack products and in-browser AI.
Ask the database
This site is a read-only database, like the one I built at work. Click a chip or type. Writes get bounced.
Also try: help, sudo hire sujal, DROP TABLE projects;. Up-arrow recalls history.
What I work on
Safe LLM access to data
MCP servers where the guardrails are structural: AST validation, read-only transaction scopes, reusable tools for investigation.
Production forensics
Tracing silent failures to root cause, then proving the fix with a re-run. One de-indented method hid 23 unsafe sites.
AI in the browser
Local embeddings, IndexedDB vector storage and Web Workers. No backend, 53.4 ms queries.
Full-stack, shipped
Auth, payments, Docker on Azure, CI/CD and workflow automation, deployed and live for real users.
Experience
Microsoft Ads
- Read-only MCP server for Xandr Supply Quality. Built with the inventory quality team: production Postgres/MySQL exposed through reusable tools for LLM-driven investigation, across a 330B+ daily-request ecosystem.
- AST query validation and read-only transaction scopes. Safe LLM-driven database interrogation and an estimated 90% reduction in manual SQL effort.
- Silent crawler pipeline bug (ScrappNexus). Traced the root cause to a de-indented extraction method from a prior release. The fix triggered reprocessing of 21,000+ domains and surfaced 23 previously undetected unsafe sites.
- LLM-based domain classifier audit. Found a 45.7% classification mismatch across 2,553 domains between legacy and LLM-based domain classifiers, identified a verdict-storage flaw in the source of truth, and validated a post-fix re-run that captured 1,248 new adult domains.
Read-only MCP server
Send a query and watch where it stops. Reads go through. Writes die at the validator and never reach the database.
Prepisely
May - Jul 2025- AI mock-interview POC. Gemini API for behavioral question generation and automated feedback, WebSpeech API for hands-free voice interaction. Presented the implementation to the team for product evaluation.
Projects
Hover a project card to view the system architecture.
Ausadhi
Clinic platform for doctor discovery and appointment booking with Razorpay payments. Role-based access (patient, doctor, admin) with JWT refresh rotation, plus a client interceptor that queues concurrent requests during refresh so only one refresh call fires.
Deployed on two Azure VMs with Docker, Nginx and SSL. NSG rules keep the backend internal-only, and GitHub Actions ships releases. n8n handles reminders (24h and 2h before), WhatsApp booking and AI symptom triage.
Pagewise
Semantic PDF search that runs entirely in the browser. transformers.js does local inference, IndexedDB stores the vectors, and a background Web Worker handles extraction and embeddings. The main thread stayed 95.0% idle across a 99-second DevTools trace on a 95-page PDF.
One query over a 475-chunk index: 53.4 ms total (ms).
Toolbox
Education and recognition
Vellore Institute of Technology
B.Tech, Computer Science and Engineering. 2023 - 2027, Vellore. CGPA 9.41.
Award: Merit Scholarship
Awarded for three consecutive years of academic excellence, ranking 10th, 2nd and 3rd in branch.
Co-curricular: Team Sammard
Avionics subsystems (ESP32, sensor integration) for VIT's collegiate rocketry team, contributing to embedded flight software.
Co-curricular: Football
I watch a lot of it, and Messi is the reason.
Co-curricular: Formula 1
Race weekends are blocked off. Max Verstappen all the way.
Building something with LLMs and real data?
Looking for SDE and AI engineering roles. Let's talk.
sujalagarwal0987@gmail.com