Planning a Rutgers semester means bouncing between WebReg, Degree Navigator, SIRS and RateMyProfessors. AtlasRU puts them in one place: live seat counts, ratings, prereqs, degree audits, a schedule generator, and an AI advisor that looks up your audit and the catalog before it answers.
| 300+ | 2,000+ | 1,800+ |
|---|---|---|
| students | course monitors | advisor chats |
How it's built
flowchart LR
U([Student]) --> FE[Next.js + React<br/>Vercel]
FE --> API[NestJS + Prisma<br/>Railway]
API --> DB[(PostgreSQL<br/>+ pgvector)]
API --> LLM{{AI advisor<br/>tool calling}}
LLM -->|audit, catalog,<br/>schedule tools| API
P[Python + Node<br/>pipelines] --> DB
SRC[WebReg · Degree Navigator<br/>SIRS · RateMyProfessors] --> P
Things I spent way too long on:
- getting the audits to agree with Degree Navigator, down to the weird edge cases
- stopping the advisor from recommending courses you can't take yet. Prompting didn't fix it, so the check lives in code now
- turning bugs real students hit into replay tests so they stay fixed
The code is private for now. Happy to walk through it.
| eufy-controller-bridge | The eufy app's joystick is miserable to drive with, so why not use a PS5 controller instead? Reverse-engineered the vacuum's protocol to make it happen | Python · MQTT |
| HackRU | Rebuilt the Fall 2026 landing page for 600+ hackers (yes, including the mushroom cursor), then went into the backend and fixed bugs | Next.js · AWS Lambda |
| Job Ops | Got tired of refreshing job boards, so I automated it: it finds internships, scores each one 0-100 on how well it fits me, and tailors a LaTeX resume for the good ones. It never hits apply without me | Python · LaTeX |
| ticket-classification-gh-action | Built at the NJ Innovation Authority to triage TechOps tickets for 300+ staff. Doubled tickets resolved per session (4 to 8), so the people building New Jersey's public services get unblocked faster | Python · Sentence Transformers |
Experience, more projects and my resume are on my portfolio.



