I work on the performance and numerical correctness of scientific and ML software. Most of my open-source work is algorithmic speedups and correctness fixes in libraries that other people build on: Google JAX, statsmodels, xarray, Hugging Face candle, Apple MLX, the Rust cc crate, Apache ShenYu, ONNX, and tools run by CISA, USGS and Sandia National Laboratories.
M.S. in Computer Science, University of Cincinnati. AI Engineer at Zasti Inc. (Ashburn, VA).
flowchart TB
me(("Bhaskar Gurram")):::me
me --> jax1
me --> jax2
me --> cc
subgraph perf["Performance"]
jax1["JAX: batched lexsort / unique"]:::node
sm["statsmodels: closed-form LOO influence"]:::node
xr["xarray: interp skips redundant sort"]:::node
candle["candle: tiled CPU quantized matmul"]:::node
jax1 ~~~ sm ~~~ xr ~~~ candle
end
subgraph corr["Numerical correctness"]
jax2["JAX: zeta JVP, pareto support"]:::node
mlx["MLX: left-padding mask in batched generation"]:::node
onnx["ONNX: DynamicQuantizeLinear all-zero scale"]:::node
pygsti["pyGSTi: default POVM on sub-models"]:::node
pylint["pylint: pyreverse recursion hang"]:::node
bokeh["Bokeh: layout border alignment"]:::node
jax2 ~~~ mlx ~~~ onnx ~~~ pygsti ~~~ pylint ~~~ bokeh
end
subgraph sec["Security and reliability"]
cc["Rust cc: PGO flags no longer leak to C"]:::node
shenyu["Apache ShenYu: no HTML rendering of responses"]:::node
cset["CISA CSET: PBKDF2 work factor"]:::node
usgs["USGS: open-ended date ranges"]:::node
ls["LangSmith: keep HTTP response on errors"]:::node
cc ~~~ shenyu ~~~ cset ~~~ usgs ~~~ ls
end
classDef me fill:#2a78d6,stroke:#1f4e9c,color:#ffffff,font-weight:bold
classDef node fill:#f5f7fb,stroke:#9fbce6,color:#0b1b3a
style perf fill:#eaf1fb,stroke:#2a78d6,color:#0b1b3a
style corr fill:#eaf1fb,stroke:#2a78d6,color:#0b1b3a
style sec fill:#eaf1fb,stroke:#2a78d6,color:#0b1b3a
Each bar is a change that was reviewed and merged by the project's maintainers. Timings are from the pull requests.
| Project | Contribution | Result |
|---|---|---|
| Google JAX | Batched lexsort / unique(axis=...): new batch_size keyword, designed with a core maintainer over six review rounds |
Compile time no longer grows with the number of keys: jnp.unique 15.5 s → 0.28 s; lexsort on 100 keys 162 s → 0.22 s |
| statsmodels | Closed-form leave-one-out influence measures (dfbetas, dffits, cov_ratio, studentized residuals); closes maintainer issue #9009 |
35 s → 2.7 ms at n = 10,000; matches R's influence.measures to 12 decimals |
| xarray | interp skips sortby on already-sorted coordinates |
Vectorized interp 164 ms → 2.9 ms |
| Hugging Face candle | Row tiling in the CPU quantized matmul for prefill | About 1.45x faster prefill for Q4K / Q8_0; outputs bit-identical |
Rust cc crate (rust-lang/cc-rs) |
Stop forwarding -Cprofile-generate/-Cprofile-use to the C compiler; fixes #1986 |
PGO builds no longer segfault when the C compiler's LLVM differs from rustc's (the cause behind rust-lang/rust#163640); shipped in cc 1.8.0 the same day |
| Bokeh | Row/Column layout reserves room for aligned borders (BokehJS) | Fixes cropped axes and legends; milestone 4.0, backported |
| Apple MLX (mlx-lm) | Left-padding mask in batched generation | Fixes wrong logits for left-padded batches in two model families |
| Google JAX | zeta JVP rule, pareto support boundary |
Correct values and gradients outside the domain and at the support edge |
| ONNX (Linux Foundation AI) | Define DynamicQuantizeLinear scale for all-zero inputs |
Spec and reference fix: all-zero inputs no longer give a zero scale (NaN downstream); now matches ONNX Runtime |
| Apache ShenYu (Apache Software Foundation) | Render non-JSON API debug responses as plain text; fixes security issue #614 | The admin console no longer renders upstream response bodies as HTML; merged by a ShenYu PMC member |
| pylint | Fix pyreverse hang/RecursionError with --all-associated; closes #3602 |
Class diagrams of code that rebuilds classes on each inference no longer hang or crash; merged by the pylint maintainer and backported to 4.1.x |
| CISA CSET (US DHS) | Raise the PBKDF2 work factor to OWASP guidance | Password-hash hardening in CISA's Cyber Security Evaluation Tool |
| USGS dataretrieval (US DOI) | Open-ended (..) date ranges in the OGC client |
Fixes silently unfiltered results and HTTP 400s in the official USGS water-data client |
| Sandia National Laboratories pyGSTi | Default POVM for circuits on a subset of a model's qubits; fixes #721, a 0.11 release blocker | Circuits on part of a multi-qubit model no longer fail with "Missing POVM"; merged by a Sandia maintainer |
| Microsoft Olive | Declare requests as an install dependency |
Fixes import olive failing after a fresh install; also hit by Microsoft's olive-recipes |
| LangSmith SDK | Keep the HTTP response on raise_for_status_with_text errors |
Shipped in v0.14.2 |
| ogx | Dependency floor for the inline provider | Fixes a user-reported install failure |
| cartography (CNCF) | Handle empty Google Workspace groups | Fixes a sync crash |
In review right now (30+ open pull requests)
Features and fixes under maintainer review as of October 2026, among them:
- anchore/grype:
--fail-on risk=Nthresholds and--fail-on no-vex-statement - anchore/syft: Maven scope exclusion for the pom cataloger
- mermaid: flowchart
linkStyleselecting links by label text - cargo-binstall:
--dns/BINSTALL_DNSresolver selection - rust-lang/socket2:
SO_EXCLUSIVEADDRUSEgetter and setter - plotly.py:
custom_dataforpx.histogram - fsspec: download progress callbacks on caching filesystems; gcsfs: generation pinning at
open(), IAM signBlob URL signing - plus pandas, hickory-dns, Sphinx, LightGBM, Prometheus exporters, gitleaks, git-lfs, modin, tower-http, resvg, ureq and others
- Valid Per-Field Selective Risk Control for Document Extraction: Three Failure Modes, a Validity Ladder, and When Conditioning Pays. B. Gurram. arXiv:2608.14639, 2026. Code: verifydoc.
- Auditing Automated Evaluation, Error Propagation, and Runtime Mitigation in Tool-Using Language Agents. B. Gurram. arXiv:2604.16706, 2026. Code: agenthallu-bench.
- Agentic systematic literature review: a multi-agent LLM pipeline evaluated on 62 randomized controlled trials across five medical specialties. Submitted to Expert Systems with Applications, 2026. Code: agentic-slr.
- M.S. thesis (2024): EEG-fMRI fusion with temporal convolutional networks for decoding visual stimuli. Accuracy is 84.8% within subject and 81.1% leave-one-subject-out, compared with 65.5% for EEG only and 74.6% for fMRI only. Advisor: Prof. Vikram Ravindra.
- verifydoc: calibrated per-field confidence and source grounding for document-to-JSON extraction, with accept/review abstention.
- unwind: a reversibility layer for agent tool calls. It is an MCP proxy with a cross-server undo log.
- provio: authorization and provenance for AI agent tool calls.
- HARNESS-DB: a coded dataset of 1,256 agent harnesses.
Numerics and ML: JAX, NumPy/SciPy, PyTorch, statsmodels, xarray, quantized inference (candle, MLX, GPTQ). Systems: Rust, Go, Python packaging, CI. Agents: MCP, retrieval, evaluation harnesses.
- AI Engineer, Zasti Inc. (2024–present): agentic and retrieval systems for clinical research. Retrieval over 50M+ document embeddings, and 4-bit GPTQ deployment that cut model size by 75%.
- Graduate Teaching Assistant, University of Cincinnati (2022–2024): Python, cloud and ML labs for 500+ students.
- Deep Learning Developer, Technocolabs Softwares (2021–2022): led a four-person team building medical pattern-recognition models.
- M.S. Computer Science, University of Cincinnati, 2024. GPA 3.95/4.0. Graduate Incentive Award.
- B.Tech. Computer Science, SRM Institute of Science and Technology, 2022. GPA 3.98/4.0.
- MicroMasters in Data Science, UC San Diego, 2022.