Every figure on this page is emitted by a script inside the repository it describes. Where a harness later contradicted one, the ledger below keeps both numbers.
MS Artificial Intelligence at LIU Brooklyn, graduating January 2027. Brooklyn, NY. I build camera-only bird's-eye-view perception and the test rigs that break it. Open to perception and applied-ML internships.
Three scenes, recorded from the live page. Everything below is running in a browser, not rendered offline: open the deck to drive it yourself.
Camera-only BEV, with fault injection. W A S D drives the ego vehicle. Break a camera and its sector of the occupancy grid dies, the trust score drops, and the picture-in-picture shows what that lens actually sees.
Every repository, three ways. Clustered by domain, laid out on a timeline by last push, or ranked by stars. The nodes morph between layouts; the amber struts are the shared BEV encoder feeding three separate systems.
A year of commits as a surface. 53 weeks across, 7 days deep, height and colour by count. Hover any column for the date, click it to open that day.
Four fields per system, same four every time: what it does, what it runs on, the number it ships at, and the number it fails at. The last column is the one most portfolios omit.
| System | Role | Ships at | Fails at |
|---|---|---|---|
| opendrivefm nuScenes · TorchScript · C++ |
Camera-only BEV occupancy + trajectory, with a camera-trust scorer and a fault-injection harness wrapped around it | AUROC 0.764 [0.750, 0.777] 71.2 FPS · p50 13.9 ms |
Pooled metrics still hide a per-camera spread. Worst-camera AUROC trails the pooled figure. |
| guardian-drive BEVFormer · DDPM · C++17 · TensorRT |
Eight physiological and environmental hazard detectors fused with the BEV stack, arbitrated by a rule-based safety FSM | cardiac AUC 0.961 drowsiness AUC 0.951 subject-independent |
No CARLA server, no nuPlan closed-loop, no VLA steering, no real OBD-II. Needed hardware I did not have. |
| autonomy-vision FastAPI · React · Metal |
Trucking stack: forecasting with uncertainty, deterministic guardrails, Normal → Caution → Min-Risk → Stop | ADE 18.78 m ~45% better than constant-velocity |
Scene classification is hand-written rules, not a learned model. The RL planner is a study, not a planner. |
| talentra_copilot LangGraph · FastAPI · Prometheus |
Five agents — screener, ranker, interviewer, bias auditor, copilot — with a rule-based fallback at every layer | p95 4.81 ms vs a 1.5 s SLO $0.000 / request |
Top-1 accuracy of 1.0 is measured on a fixture, not on a real candidate pool. |
| noise-robust-kws MFCC · CNN · Apple MPS |
In-cabin distress keyword spotting under real noise, sized for the edge | 77.02% @ 0 dB SNR 0.43 MB · p95 2.18 ms |
Distress-class recall is 0.02. Class imbalance. Weighted-loss fix in progress. |
| two-stage-recommender Spark ALS · LightGBM · bandits |
ALS retrieval → LightGBM ranker → REINFORCE + LinUCB exploration, with 27 policy gates and sub-30 s rollback | NDCG@10 0.1409 +253% over ALS p95 < 50 ms |
Offline evaluation only. Doubly-robust IPS is not a live A/B test. |
Every entry is a number I published, then disproved with my own tooling. Both values stay on the record. This table is the actual argument for hiring me.
| Caught in | Metric | Published | After the fix | Root cause |
|---|---|---|---|---|
| opendrivefm | Trust-scorer AUROC | 0.434 CI [0.419, 0.449] |
0.764 CI [0.750, 0.777] |
Scorer was inverted. Confidence interval sat entirely below chance: trust rose as a camera degraded. |
| opendrivefm | Occlusion detection | 0.487 |
0.689 |
No spatial pooling. Grid-4 pooling recovered the signal that global averaging destroyed. |
| opendrivefm | Checkpoint loading | silently passing | hard failure | Weights failed to load without raising. Every downstream metric had been measured on an untrained graph. |
| opendrivefm | Frame handoff | FIFO queue | 11.5× lower e2e latency | Queue was serving stale frames under load. Replaced with a seqlock latest-frame buffer. |
| talentra_copilot | v1 → v6 | 5 defects | all 5 fixed, CI-gated | Accuracy and latency gates now block promotion, so the same class of regression cannot ship again. |
Three of the systems above are not three projects. They are one encoder and three consumers, which is why the AV cluster is the part of this portfolio that compounds.
| Signal | Value |
|---|---|
| Public repositories | 35 · 30 original, 5 forks |
| Stars earned | 11 |
| Contributions, rolling 365 days | 754 |
| Pull requests authored | 35 |
| Repos carrying a description | 2 / 35 |
| Primary languages | Python (20), Jupyter Notebook (2), Makefile (1), HTML (1), Vue (1) |
Recomputed 19 Sep 2026, 09:42 UTC from the GitHub API.
Generated against my own account, published on my own profile, on a schedule I do not get to veto. If something here has been open too long, that is the point.
- 30 repositories have no description. Invisible to GitHub search. Worst offenders:
AkilanManivannanak,two-stage-recommender-als-ranker-api,talentra_copilot,Esophageal-Cancer-Detection. - 1 repository is effectively empty:
costsim-ai. - 1 starred repository carries no LICENSE, so they read as all-rights-reserved:
opendrivefm. - Upstream PR open 116 days: nutonomy/nuscenes-devkit#1203 — Improve nuScenes dataset verification messaging
- Upstream PR open 116 days: nutonomy/nuscenes-devkit#1202 — docs: clarify local clone setup
- Upstream PR open 151 days: AI-688-Image-and-Vision-Computing/Opendrivefm#1 — Update README.md
- External pull requests: 4 opened, 1 closed. Landing merged code in an upstream AV repository is the current priority.
| Layer | Components |
|---|---|
| Perception | PyTorch · BEVFormer · PointPillars · TensorRT · TorchScript · OpenCV · nuScenes devkit |
| Agentic & retrieval | LangGraph · LangChain · ChromaDB · FAISS · sentence-transformers · Ollama |
| Serving & systems | FastAPI · C++17 · Docker · Prometheus · Redis · Kafka · Streamlit |
| Data | PySpark · pandas · NumPy · DuckDB · Parquet |
| Languages | Python · C++ · SQL · JavaScript |
If a model is screening this profile, the structured version lives in
AGENTS.md and llms.txt. Both list the gaps in the same
detail as the results, and neither contains instructions about how to rank me.
Telemetry, pushes and open faults are regenerated from the GitHub API every morning. Badge values are computed by my own workflow and served from the
output branch,
so they match GitHub rather than a third-party approximation.




