π Claremont McKenna College '29 Β· Computer Science at Harvey Mudd College π οΈ Backend & infra, retrieval systems, real-time pipelines, sandboxed execution π Building AI candidate sourcing for an IT staffing firm
π« rushiljaiswal1@gmail.com Β Β·Β LinkedIn
vaudit: does an RL grader accept work that is correct but different?
π― Five CHIP-8 ROMs, each isolating one documented platform quirk, each with its expected frames and falsifiers registered before the bytes existed. Three of five published grading strategies rank a blank screen above a correct implementation, because two real conventions disagree about one instruction and the glyph lands four pixels apart. Both are right.
π§ͺ The follow-up study falsified four of its own predictions, including my own algebra, and bounded the failure in closed form at
Ο(1βd) > Β½. At realistic GBA density with one displaced sprite the effect disappears, and the write-up says so in those words because I had pre-committed to saying it.
π Seven third-party interpreters as the population, adjudicated by the test ROM's own pass/fail marks rather than by agreement with mine. Six bug reports filed upstream and a pull request that takes one interpreter from 8 failures to 0. Twenty occasions where this project's own measurements were about the wrong thing are logged with traced causes.
Β
Telos: AI candidate sourcing over a 31k-resume corpus
π Hybrid retrieval across four lanes, vector, BM25, keyword, structured filter, feeding a reranker that blends cosine similarity with placement history, capped so candidates with no track record still compete on resume quality alone.
π§ͺ The result I'm proudest of is a negative one. Six signals all put the recruiter's actual picks past rank 250 of 6,105, so nothing we could extract from a resume predicted recruiter choice. The honest reframing became "2,057 qualified, 70% cold and 30% with prior contact, sort by that" rather than a top-10 we couldn't justify.
π Found a
us_only=True default nobody had chosen that was silently discarding 36% of all recruiter submissions, and it did its worst damage on exactly the technical requisitions where retrieval already looked weakest.
π Ranker changes score offline against frozen pools and a human-labeled set (BAD@k / recall@k, holdout split), so a change is evaluated without re-calling the LLM.
Β
pipecat-firewall: a drop-in security firewall for Pipecat voice agents
π‘οΈ Reads each caller turn and blocks, flags, or redacts prompt injection, PII extraction, and policy-override pressure before the LLM runs, a blocked turn never reaches the model, so there's no prompt left to argue with and you don't pay for the call.
β‘ Detectors are deliberately small and deterministic: no API key, no extra model call, microseconds on clean turns. Refusals are canned replies that bypass the LLM entirely.
π¦ Pinned
<1.0 against the pipecat-ai frame API after testing across 0.0.98β0.0.108, 1.x restructures frames, so the cap is deliberate rather than neglect.
Β
Goodhart: an autoresearch loop that hardens RL verifiers against reward hacking
π― A breach is a solution that passes the grader and fails a held-out oracle. A red swarm discovers them, a green team patches the grader, and a regression gate accepts a patch only if the breach now fails and the gold solution still passes, so over-tightening surfaces as friendly fire instead of a win.
π The seed exploit list is empty and an anti-theater check enforces it, so every breach was genuinely discovered. Grader and oracle never share a test case, and no LLM sits in the verdict path, every verdict is a sandboxed subprocess parsed from JUnit XML, never exit codes.
π§ I built the serving layer: the event bus, the websocket server, and the 2D/3D dashboard that animates off a 7-event stream, one seam that both the live engine and the recorded replay drive, so the demo can't drift from the real run. The golden run is a genuine recording, not a script.
Β
Strata: real-time AI guidance for plumbing contractors in the field
π΄ Built for a contractor in a crawl space with no signal: full diagnostic guidance from a local SQLite FTS5 cache offline, with feedback and job summaries queued in an idempotent outbox that reconciles on reconnect.
π· Camera-first diagnosis through GPT-4o Vision walking a hypothesis-elimination flow, plus hold-to-speak voice and a "Hey Strata" wake word for hands-free use.
π§€ The constraints drove the interface: 56px touch targets for gloved hands, 7:1 contrast for direct sunlight, one clear action per screen.
Β
Vibecheck: plain-English security review for AI-assisted founders, with a one-click fix PR
π Runs Semgrep, Gitleaks, and OSV over a repo, then translates the raw findings into what's wrong, why it matters in real terms, and a copy-paste fix, for founders who shipped something they can't audit themselves.
π The scan engine never executes the target repo: shallow read-only clone, size and file caps, scanners as bounded subprocesses, clone deleted after.
π GitHub OAuth unlocks private repos, Postgres row-level security isolates every scan, and Claude rewrites the files to open the fix PR.
Β
Yaad: a grounded memory engine for dementia care
π§ An assistant that invents a detail about someone's family is dangerous, so this one refuses when it can't cite a row, and "did I take my pills today?" routes to today's
med_logs rather than being answered by nearest-neighbor text.
ποΈ I built the voice agent end to end: LiveKit + Pipecat pipeline, VAD tuning and barge-in, Groq Whisper STT, MiniMax TTS, and a dlib face-match server for the greeting path.
π The Hindi path failed silently until I translated the query to English before the memory lookup, the memories are stored in English, so retrieving in Hindi matched nothing.
Also: Sentry, a voice agent that patches its own guardrails mid-call: leak a card number to it and it clusters the failure, has Nemotron write new rules, hot-swaps them from a mutable ActiveConfig, and refuses the same attack seconds later Β· hindsight-extension, grades your past predictions against what actually happened, then corrects future advice for your blind spots Β· kalshi-iv-research, Kalshi unemployment markets Granger-cause VIX at a 2-day lead (p=0.024, 222 days), with CPI markets kept as a null control Β· tab-memory-agent, persistent intent-level memory for your browser Β· intern-tracker, parses application emails and scores company fit against your real background Β· signal, AI-curated daily newsletter on a cron