Software engineer, systems and ML

Parth Auti

Eight systems that run, and every one of them runs right here.

Pune to Manipal to Charlotte. 9,083 miles, three cities, eight systems that run.

8/8 checks passingbuilt

Most of my work is AI agent reliability and applied ML. There is a flight recorder for agents here, a matching engine, and a detector on the live global BGP feed. Each runs live where it can and from a labelled recording where it can't.

New-grad SWE / ML-infra · B.S. CS, UNC Charlotte · available December 2026 · US

The work

Eight systems

Every one of them executes on this page. The figures below were measured when the site was built. Press run it on any of them and they're replaced by numbers from your own machine.

SystemCHK-01

Reflight

A flight recorder for AI agents.

full-run replay
~7 ms
byte-identical, with the network hard-blocked, for $0.00
to instrument an agent
3 lines
wrap the client, wrap the tools, end the session
case-study catch rate
15/15
one 15-line promoted assertion, every time

This replays the site's own build-verification run. The recorded failure comes first, then the green run.

Figure 1 Reflightverified at build
support-run-19recorded failure, network hard-blocked, $0.00
  1. 01
    llm call

    assistant → "refund order #8841, $129.99"

  2. 02
    tool call

    refund(amount="129.99")str, schema wants float

  3. 03
    tool err

    TypeError: amount must be a number

  4. 04
    tool call

    refund(amount="129.99")identical retry

  5. 05
    tool err

    TypeError: amount must be a number

  6. 06
    classifier verdict

    wrong_tool_args · loop

    Computed from the five events above rather than stored with them. The same function produces this label here and in the check.

this site's own build-verification runrecorded 2026-09-13, re-run in this tab
Each field of the recorded build-verification run compared with a re-run performed in this browser.
fieldrecorded at buildre-run in this tabΔ
events replayed6/66/6match
classificationwrong_tool_args · loopwrong_tool_args · loopmatch
cost$0.00$0.00match

All 3 fields identical. The page replays its own recording cleanly. The replay never touches the network, which is why it costs $0.00.

Reference on an M3: a full-run replay takes ~7 ms and costs $0.00.

Limits: Replay is deterministic for the recorded path. It is not time travel for arbitrary code changes.

github.com/pauti04/reflight

SystemCHK-02

ChainCheck

Claim-level hallucination detection for LLMs.

precision on HaluEval-QA
94%
judge P=0.936, R=0.644, F1=0.763 on n=500, balanced 50/50
latency cut by the NLI pre-filter
19×
clear-cut inputs served in 60 ms locally, no judge call
client-code changes
0
a drop-in OpenAI proxy, so you only swap the base URL

A five-detector ensemble scores a known hallucinated claim. Six TruthfulQA samples with recorded judge scores sit alongside it.

Figure 2 ChainCheckverified at build

fixture

the judge alone on TruthfulQA, recorded run n=500, F1 0.70

claim

"This PR adds rate limiting to /v2/predict"

checked against

app/v2/predict.py
+ result = await model.run(req)
+ log.info("predicted", req_id=req.id)
+ return result

five detectors, recorded

nli entailment
contradicts 0.94
llm-as-judge
disagrees 0.91
self-consistency
5/5 disagree 1.00
token logprobs
2.1σ anomaly 0.83
qa cross-check
no support 0.88

ensemble verdict, computed here

hallucination0.915/5 detectors flag, 4-of-5 required

Detector scores are the shipped detector's recorded outputs, since a browser tab makes no model calls. The vote itself runs here.

Reference: the NLI pre-filter answers in 60 ms locally. The judge is only called when the input is ambiguous.

Limits: Recall is 64%, so roughly a third of hallucinations get through. This browser check replays the ensemble's recorded scores rather than making live model calls.

github.com/pauti04/chaincheck

Shares the core aboveCHK-03

ChainCheck Action

The merge gate blocks the PR whose description doesn't match its diff, and passes the ones that do.

fail-threshold
0.80
any claim scoring above it fails the workflow step
pr #142
exit 1
"adds rate limiting to /v2/predict" scored 0.91, so it was blocked

The threshold gate, run over per-claim scores for three sample PRs.

Figure 3 ChainCheck Actionverified at build

the workflow step

- uses: pauti04/chaincheck-action@v1
  with:
    fail-threshold: 0.80
0.80

claims in the description

"refactor cache eviction"
0.04
"adds rate limiting to /v2/predict"
0.91
"bumps tokio to 1.40"
0.07

gate decision

exit 11 claim at or above 0.80, merge blocked

Per-claim scores come from the same detection core as CHK-05, recorded. The gate arithmetic runs here. Move the threshold and the exit code follows.

Reference: the threshold is 0.80 and the gate decision is deterministic.

Limits: The threshold is a policy choice. At 0.80 it favors letting legitimate PRs through over catching every hallucination.

github.com/pauti04/chaincheck-action

SystemCHK-04

Bourse

Order matching engine in Rust.

in-process round-trip
~225 ns
M-series, release build, multi-tenant Hub
TCP RTT loopback p50 / p99
~78 µs / ~307 µs
same setup, measured separately from the walk rate
matcher walks 1000 price levels
~94 µs
~10M trades/sec on the matcher alone. TCP-bounded end-to-end, ~88k orders/sec

A price-time-priority burst match, executed in this tab.

Figure 4 Bourseverified at build
price-time priority, matched in this tabseeded book, not yet run
qtybid
  • 9
    100.49
  • 7
    100.48
  • 5
    100.47
  • 3
    100.46
askqty
  • 100.51
    6
  • 100.52
    10
  • 100.53
    5
  • 100.54
    9
best100.49/100.51spread 0.02 · mid 100.500

The engine running here is a TypeScript port of the Rust matcher, so this number is the browser's, not the release build's.

Reference on an M3: ~225 ns in-process, and a 1000-level walk in ~94 µs.

Limits: The engine running in this tab is a TypeScript port for demonstration. Browser ops/sec is not the Rust number.

github.com/pauti04/bourse

SystemCHK-05

NetPulse

BGP anomaly and route-leak detector.

labeled historical incidents detected
7 / 7
0 false negatives on the public benchmark. Runs in ~1 s with no API keys
RPKI validate per call
~43 µs
859k VRPs with a warm cache, ~23k calls/sec
speedup shipped on RPKI
500×
linear scan → patricia trie, on the same machine, dataset and workload

A heartbeat on the RIPE RIS live feed. If the feed can't be reached, it falls back to a labeled recording.

Figure 5 NetPulserecorded replay
ris-live at rrc00, the global BGP feedfeed not opened yet

Nothing counted yet. Run it and this panel opens a socket to RIPE RIS and counts real announcements for six seconds. If the feed cannot be reached it replays a recorded session instead, and the label above changes to say so.

rpki validity
announcement checked against the signed ROA, ~43 µs per call
moas conflict
more than one AS originating the same prefix
path distortion
an AS-path that is implausibly short, or simply odd

A verdict only fires when at least two signals agree. On the public benchmark that catches 7 of 7 labeled historical incidents.

Reference on an M3: an RPKI validate takes ~43 µs and the benchmark runs in ~1 s.

Limits: Cold-cache numbers are 1.5–3× slower. The live check depends on the RIPE RIS feed being reachable, and when it isn't, the fallback is labeled as a recording.

github.com/pauti04/netpulse

SystemCHK-06

CostDNA

Behavioral attribution for untagged cloud spend.

AWS spend that's typically untagged
40–60%
the gap CostDNA closes
bill coverage after inference
~95%
up from the ~half that tags alone explain
raw cost report → per-team breakdown
90 s
end to end, and no data leaves the account

Attribution over two synthetic CloudTrail windows. The totals have to reconcile.

Figure 6 CostDNAverified at build

window

checkout, recommendations and ingest on one account. 3 teams, 9 resources, synthetic by design.

reference shares for the ecommerce window

recommend≈70%
recommend-fn → sagemaker
checkout≈25%
checkout-api → dynamodb
ingest≈5%
ingest-fn → kinesis

from the repo's own synthetic-window runs. Run the check and this window is generated and reconciled here, on your device.

verified at build, both windows

ecommerce: ledger $35.95, attributed $35.95, unexplained $0.00

data-platform: ledger $54.15, attributed $54.15, unexplained $0.00

Reference on an M3: a full attribution pass takes 90 s end to end.

Limits: The post-audit behavioral accuracy is 6.9%. The 97% first-cut number was label leakage, and both are published in the repo.

github.com/pauti04/CostDNA

SystemCHK-07

Dispatch

An AI-curated morning brief for developers.

stories in the sample edition
4
three sections, and every story carries its why-it-matters line. Counted from the committed edition, client/public/sample-brief.json
story candidates pooled for it
118
hn 30 + gh 18 + lobsters 20 + reddit 20 + arxiv 15 + show hn 15, from the edition's own counts. Clustered and pre-filtered to 30 before the model chose 4. The hiring feeds brief the editor and don't compete
tests in the server suite
41
vitest, reproduced locally 2026-09-13. The repo runs them in CI

A real edition, replayed as the server streams it: start, deltas, complete.

Figure 7 Dispatchrecorded replay
sample editionrecorded 19 May 2026, 22:59 UTC, $0.00

Open source projects face challenges amid new tools and releases

software engineer, intermediate, standard, 4 domains. 4 stories from 118 candidates.

Open Source

  1. HN7

    Challenges that lead to open source project decline

    why it matters — Understanding these pitfalls can help you navigate project contributions and avoid burnout; consider your project's focus.

    hackernews

Developer Tools

  1. GH6

    CloakBrowser: A stealth browser for bot detection

    why it matters — If you're involved in web scraping or automation, this tool could enhance your strategies against detection.

    github trending

  2. GH11

    12-Factor Agents: Building LLM-powered software

    why it matters — If you're working with machine learning, this framework could inform your architecture decisions.

    github trending

Security

  1. HN18

    CISA accidentally leaked sensitive AWS keys

    why it matters — This incident highlights the importance of secure coding practices; review your credential management.

    hackernews

editor's take

Open source projects need clearer boundaries to avoid scope creep and maintain contributor interest.

pick HN7. Pull quote: “A focused tool that does one thing well starts getting PRs for tangential features.

POST /api/brief/stream, replayed as 93 eventsstart, delta ×91, complete
  1. 1.assert the 91 deltas reassemble deep-equal to the committed edition
  2. 2.observe the first headline parsed before “complete”
  3. 3.assert 4/4 why-it-matters lines, Editor's Take present, 118 candidates → 4 chosen

verified at build

events replayed 93/93, deep-equal , why-it-matters 4/4

41 tests, reproduced locally on 2026-09-13 (cd server && npx vitest run). The repo's own report, not measured here: ~800 ms submit-to-first-headline, Lighthouse best practices 100, 0 a11y violations (README + scripts/audit-*.js).

The repo's own report: first headline in ~800 ms server-side, Lighthouse Best Practices 100, 0 a11y violations. Live at dispatch-six-rho.vercel.app/demo.

Limits: The panel replays a committed real edition at a simulated cadence. It does not generate one. The ~800 ms first-headline figure and the Lighthouse / a11y audits are the repo's own reports, and were not measured here.

github.com/pauti04/dispatch

SystemCHK-08

RasoiBot

A pantry-aware recipe assistant for Indian cooking.

Indian recipes indexed
12
paneer butter masala, aloo gobi, chole, bhindi masala, tadka dal, masoor dal, sambar, butter chicken, rajma masala, cucumber raita, kadhi pakora, gobi manchurian
API calls per query
0
entirely local. The streaming is sleep(14ms) between characters

A pantry-to-recipe lookup. The smallest thing on this page.

Figure 8 RasoiBotverified at build

pantry

what that makes

paneer butter masala

40 min, and you'll also need cream, garam masala, kasuri methi

the 5 lookups the check asserts

  • paneer + tomatopaneer butter masala
  • okrabhindi masala
  • ricedeclines (a deliberate miss)
  • chicken + tomatobutter chicken
  • lentilstadka dal (a tie, first in index wins)

Set-intersection over a curated index of 12 recipes lifted from the app's recipes.json. This is the index, not the app. 0 API calls. The "streaming" in the real app is sleep(14 ms), and the README says so.

Reference: the lookup is O(recipes × ingredients) over an index of 12.

Limits: The streaming feel is a UX trick, and the README says so out loud.

github.com/pauti04/RasoiBot-clean

Pune to Manipal to Charlotte

The road here

Three cities and 9,083 miles, in the order they happened.

Chapter One

Pune

Maharashtra, India

2023mile zero

Where the route starts.

  • 2023

    JEE Advanced — qualified

    Top ~1.3% of 1.4M+ candidates (India's national engineering entrance exam)

The first move

Pune, Maharashtra to Manipal, Karnataka

362 miles

The first move. Same country, different state, two years.

Chapter Two

Manipal

Karnataka, India

Aug 2023 – May 2025362 miles from home

Three hundred and sixty-two miles from home, for two years.

  • Aug 2023 – May 2025

    Manipal Academy of Higher Education (MAHE)

    Computer Science, GPA 3.63 / 4.0

  • 2024

    Smart India Hackathon 2024 — 3rd place

    IoT precision agriculture: ESP32 sensor nodes, Firebase, ML irrigation recommendations, GSM/SMS alerts for low-connectivity rural areas

    The first real project was already built for someone who needed it.

  • 2024 – 2025

    Undergraduate research — ML for medical imaging

    Multiclass brain-tumor classification on MRI, with baselines in PyTorch and scikit-learn.

  • Aug 2023 – May 2025

    IT Support Assistant

    500+ tier-1 and tier-2 helpdesk tickets.

The move

Manipal, Karnataka to Charlotte, North Carolina

8,720 miles

Two years in, transferred. Everything after this line was built on the other side of it.

Chapter Three

Charlotte

North Carolina, USA

Aug 2025 – present8,720 miles further, 9,083 travelled

Eight thousand seven hundred and twenty miles further. The work got harder here.

  • Aug 2025 – Dec 2026

    University of North Carolina at Charlotte

    B.S. in Computer Science, GPA 3.7 / 4.0, graduating December 2026

    Chancellor's List (Spring 2026) · Dean's List (Fall 2025)

  • Oct 2025 – Apr 2026

    Starbucks — barista, then barista trainer

    Promoted to Trainer ahead of standard tenure. Onboarded new hires on beverage standards, POS, and food safety.

    Ran the bar through 200+-transaction morning rushes while carrying a full CS course load.

  • Mar 2026 – Jun 2026

    T-Infosystem — Software Engineering Intern

    Built uptime, response-time, SSL-expiry, and incident-detection services for an automated maintenance-reporting platform covering 400+ client sites. AWS Lambda, SQS, EventBridge, DynamoDB, SES.

    Created a 40-case evaluation suite for summary accuracy and factual grounding. Pass rate rose from 64% to 87% through prompt and validation improvements.

  • May 2026 – present

    Charlotte Machine Learning Lab (CharmLab) — Undergraduate ML Researcher

    LLM-judge failure modes, advised by Prof. Minwoo Lee.

    Built a fully reproducible analysis pipeline — all 99 manuscript statistics verified against committed artifacts. Targeting a NeurIPS 2026 workshop submission.

  • May 2026 – present

    UNC Charlotte — AV Technician

    Live event production: audio and video for campus events up to 800+ attendees — setup, live mixing, on-the-fly troubleshooting.

Arrival

December 2026

I graduate from UNC Charlotte then, and I'm looking for the next place to build things and measure them.

Looking for

  • Full-time SWE, ML infrastructure, or systems roles — graduating Dec 2026
  • Charlotte, NC — remote or relocation, US or international
  • AI agent reliability · LLM tooling and evals · low-latency systems · GNNs · cloud/platform engineering
  • Interviewing now

Get in touch

Charlotte, NC · open to relocationfull cvwriting

Every demo above runs

Every figure on this page was checked when the site was built, before you touched anything. Run the demos yourself and those build numbers are replaced with ones from your own machine.

8/8 passing

What this page does not claim: No production traffic at scale. Nothing here has been hardened by strangers' load. Every benchmark is a single-machine measurement, documented and reproducible. None of it is a distributed-systems claim. Numbers measured in your browser vary by device, load, and thermals. That is why every figure is labeled with where it came from.

Built and verified 2026-09-13 14:06 UTC. Great-circle distances, city to city.