EXPLAIN ANALYZE SELECT focus FROM brij_raj_kishore;
══ Physical Plan ════════════════════════════════════════════════════════════
LLMInferenceAccelerate ▏ ◄ primary focus
├─ PyTorchOOTBackend [dispatch · kernels · device mem · streams]
│ └─ OpInfo coverage → ran Llama & BERT end-to-end
├─ CUDAParityHarness [self-built correctness framework]
├─ vLLMServing [device plugin .to() / streams · in progress]
└─ FPGA / Xilinx [hardware-level execution]
QueryEngineRoots [Spark → Velox → Gluten] ▏ foundation · 5× faster, native
└─ same instincts: kernels, native code, hardware, profiling
Proof: 18 PRs merged across 8 upstream repos
Optimizer: "make it correct, then make it fly." ⚡Contributing to the LLM & data engines I accelerate — click any logo to see all my PRs there:
|
|
|
The fastest way to know how I write and review code: read the diffs. Real PRs — correctness bugs, performance, features — in the engines that power production Big Data and AI. Every ✅ Merged was approved by that project's own maintainers.
✅ Merged · 🔄 Open · ❌ Closed without merge
| PR | Description | Status |
|---|---|---|
| #185694 | [library] Improve infer_schema error message when future annotations cause NameError | ✅ Merged |
| #187861 | [nn] Raise ValueError for norm_type=0 in lp_pool{1,2,3}d and LPPoolNd | ✅ Merged |
| #188167 | [c10][cuda] Restore current device via RAII on the throwing path in CUDAGuardImpl | ✅ Merged |
| #185756 | [clamp] Fix float16 scalar overflow check inconsistency between CPU and GPU | 🔄 Open |
| #185751 | [nn] Raise ValueError early for invalid (ndim, pad_size) in non-constant F.pad modes | 🔄 Open |
| #187908 | [fix] torch.where silently overflows fp16 scalars (issue #187429) | 🔄 Open |
| PR | Description | Status |
|---|---|---|
| #44349 | [Tests] Gate Step3VL under Transformers v5 | ✅ Merged |
| PR | Description | Status |
|---|---|---|
| #12158 | [GLUTEN-12157][VL] Fix silently-skipped math/scalar test suites; add Velox native tests for sin, tan, tanh, radians, ln | ✅ Merged |
| #12199 | [MINOR][VL] Re-enable stale ignored atan2 test in MathFunctionsValidateSuite | ✅ Merged |
| #12333 | [GLUTEN-11539][VL] Improve error message for unsupported spark.io.compression.codec in native shuffle | ✅ Merged |
| #12335 | [GLUTEN-10992][VL] Fix MatchError for KeyGroupedPartitioning in native shuffle | ✅ Merged |
| #12360 | [GLUTEN-11539][VL] Improve error message when spark.io.compression.codec=none | ✅ Merged |
| #12151 | [GLUTEN-12013][VL] Fix bloom-filter bytes corruption on whole-stage AQE fallback | 🔄 Open |
| #12332 | [GLUTEN-12260][VL] Fix CheckOverflowTransformer passing wrong child dataType | ❌ Closed |
| #12374 | [UT][VL] Refresh TPC-H q19 plan stability golden file | ❌ Closed |
| PR | Description | Status |
|---|---|---|
| #17668 | perf(tpcds): Eliminate redundant map allocations in toTableName and fromTableName | ✅ Merged |
| #17669 | feat: Register Spark transform_values function | ✅ Merged |
| #17675 | docs(geospatial): Expand convex_hull_agg and geometry_union_agg docs | ✅ Merged |
| #17676 | docs: Fix duplicate object description warnings in Sphinx doc build | ✅ Merged |
| #17677 | test(parquet): Verify WriterOptions::encoding is forwarded to Arrow writer | ✅ Merged |
| PR | Description | Status |
|---|---|---|
| #56154 | [SPARK-49798][DOCS] Fix inaccurate documentation of RuntimeConfig.get | ✅ Merged |
| #56248 | [SPARK-34679][DOCS] Add inferTimestamp option to JSON data source options table | ✅ Merged |
| #56469 | [SPARK-57418][DOCS] Add singleVariantColumn option to CSV, JSON, and XML data source options tables | ✅ Merged |
| #56675 | [SPARK-47013][SS] Document spark.sql.streaming.minBatchesToRetain config | ✅ Merged |
| #56174 | [SPARK-43847][PYTHON] Throw structured error when reading Protobuf descriptor file fails | 🔄 Open |
| #56178 | [SPARK-40437][SS][PYTHON] Support string representation of durationMs in GroupState.setTimeoutDuration | 🔄 Open |
| #56473 | [SPARK-56367][SS][PYTHON][DOCS] Fix latestOffset docstring, update tutorial signature, and add Trigger.AvailableNow documentation | 🔄 Open |
| #56673 | [SPARK-43322][SQL] Document null/empty behavior in explode_outer and posexplode_outer | 🔄 Open |
| #56250 | [SPARK-56561][PYTHON][DOCS] Document order preservation for array_distinct, array_intersect, array_union, array_except | ❌ Closed |
| PR | Description | Status |
|---|---|---|
| #9 | Migrate to Python3.12 | 🔄 Open |
| PR | Description | Status |
|---|---|---|
| #23363 | Fix *COLUMNS() false rejection when operators appear in lambda bodies | 🔄 Open |
| #23366 | Fix *COLUMNS() false rejection when operator wraps function result | 🔄 Open |
| #23104 | Fix *COLUMNS() false rejection when operators appear in lambda bodies | ❌ Closed |
| PR | Description | Status |
|---|---|---|
| #2336 | Closes: #1 | 🔄 Open |
Volume is cheap. Here's the kind of problem I actually chase down — the bug that hides behind a green CI run — across both the query-engine and LLM/GPU sides:
| Track | Where | What I found & fixed |
|---|---|---|
| 🤖 LLM / GPU | PyTorch #188167 | A throw inside a CUDA op could leave the current device switched — silently corrupting state for every kernel that ran after it. Fixed with RAII so the device is always restored on the error path. |
| 🤖 LLM / GPU | PyTorch #185756 | clamp accepted an fp16-overflowing scalar on CPU but rejected it on GPU — a silent cross-device numeric divergence. Tracked down the inconsistent overflow check and aligned both backends. |
| 🚀 Query | Gluten #12151 | A whole-stage transform falling back to vanilla Spark mid-query silently corrupted serialized bloom-filter bytes. Root-caused the native↔JVM lifecycle mismatch and fixed the byte handoff. |
| 🚀 Query | Velox #17668 | Killed redundant per-call map allocations in toTableName/fromTableName on a hot path hit across the entire TPC-DS suite. |
Currently building the systems layer that makes LLM inference fast on custom hardware as Senior MTS @ Zettabolt — from the PyTorch dispatcher down to the FPGA:
- 🧩 PyTorch OOT device backend — operator dispatch, kernel registration, device memory management, and streams for a custom accelerator
- ✅ Full OpInfo operator coverage — ran Llama & BERT inference end-to-end on the custom device
- 🛡️ CUDA-parity testing framework I built — validates backend operators against the CUDA reference in CI
- 🚄 vLLM serving — extending the device plugin to vLLM (device
.to(), streams, operator/kernel integration) - 🎯 GPU / CUDA correctness & numerics across backends (see the device-guard and fp16 bugs above)
- ⚡ 100× PageRank speedup integrating NVIDIA CUDA (C++) with TigerGraph — GPU-acceleration instincts that transfer straight to inference
- 🔌 FPGA / Xilinx — pushing execution into hardware
The foundation that makes me good at it — 5+ years deep in production query engines: I drove a 5× Spark speedup (Neuroblade SPU, since acquired by AWS) — 2× over Apache Gluten — by offloading Scan/Filter/Aggregation to hardware via Velox; delivered another 5× on AMD EPYC integrating AMD AOCL with Gluten/Velox; and built ZettaProf, a Spark profiler that cut debug time 60%. LLM inference acceleration demands the exact same instincts — native code, kernels, hardware, relentless profiling. I'm bringing query-engine rigor to the transformer stack.
🎓 M.Tech CS, NIT Nagpur · 🌍 Noida, Delhi/NCR, India · Upstream (forks I work in): pytorch/pytorch · vllm-project/vllm · apache/gluten · facebookincubator/velox · apache/spark
Everyone uses AI now. The interesting question is what you build with it. I engineer the harness: 79 files · ~7,000 lines of domain-specific skills, subagents, and enforcement hooks that make an agent trustworthy inside a million-line C++ codebase.
The problem it solves. An LLM loose in a huge C++ codebase does two things badly: it invents citations, and it has no idea which files are dangerous to touch. Both are fatal when the output is an upstream patch. So the harness is built around verification and blast radius, not autocomplete.
| Layer | What it does |
|---|---|
| 🔍 Citation enforcement | A Stop hook grep-validates every file:line in the transcript against real line numbers. A SubagentStop hook rejects any subagent output missing citations. Unverifiable claims don't survive the session. |
| 🛡️ Blast-radius guards | Pre-edit hooks block writes to generated files and gate the highest-risk files. Post-edit hooks resolve each change to a risk tier and to its covering tests via a call-graph artifact. |
| 🧪 Regression gates | A Stop hook diffs test results against a baseline; a handoff-block enforcer hard-fails malformed session state instead of passing it downstream. |
| 🧭 Domain skills | 27 topic folders — dispatcher, autograd, kernels, functionalization, torchgen, Inductor, export, pybind — each with worked examples and a pitfalls section written from bugs I actually hit. |
| 🤝 Task subagents | 22 specialists: add-an-operator end-to-end, numeric backward verification via gradcheck, call-chain tracing with verified citations, PR lifecycle, compiler-failure debugging. |
The two largest skills are the ones behind my day job: cuda-parity-review (782 lines) — diffs an out-of-tree backend against an in-tree reference to catch divergence — and opinfo (566 lines), which drives standardized operator test coverage on a custom accelerator.
📐 Working method · measured usage
Method. Persistent per-repo memory is the part most people skip. Across my active repos I keep ~59 memory files: build/CI incantations, architecture maps, bug histories — and a set of feedback_* files that encode corrections back into the agent so a mistake happens once. Examples: never force-push without an explicit instruction; confirm before any externally-visible action; build and run to verify a claim before trusting it. Alongside that, per-repo CLAUDE.md onboarding docs (Velox 198 lines, Spark+Gluten K8s 189 lines) and permission allowlists tuned per project — 95 rules on the largest.
Measured across 3 machines, 2026-05-24 → 2026-07-27:
| Metric | Count |
|---|---|
| Project contexts | 19 |
| Sessions | 55 |
| Subagent runs | 95 |
| User turns | 15,741 |
Automation. This profile maintains itself. update_contributions.py polls the GitHub API nightly and rewrites the scoreboard, the merged-project badges, and the contributions table above — with fallbacks for projects whose maintainers merge by cherry-pick or bot-sync rather than the merge button, so a merged PR is never miscounted as closed. A companion job regenerates the LeetCode card. Four workflows, zero manual edits.
Why this is on my résumé and not just a hobby: the same instincts — verify before you trust, know your blast radius, automate the loop — are what let me land 18 merged PRs in codebases I didn't write.
LLM / Inference PyTorch (OOT device backend · dispatch · kernels · OpInfo · streams) · vLLM serving · CUDA-parity testing · NVIDIA CUDA · cuGraph
Languages C++ · C · Python · Scala · Java
Bare Metal / Hardware FPGA (Xilinx/AMD) · AMD EPYC/AOCL · GDB · Valgrind · uProf · CMake · Ninja
Query Engines (foundation) Apache Spark · Velox · Gluten · Hive · Hadoop · Kafka · Arrow/Parquet
Cloud & Observability AWS · Microsoft Fabric · Azure Data Factory · Docker · Linux · Flamegraph · Grafana · Netdata
🏆 Achievements · 📈 detailed metrics · LeetCode · contribution snake
- 🥇 GATE CSE 2019 — 97th percentile
- 💻 Google Code Jam 2020 — Rank 6448 / 44,434
- 🧠 TCS CodeVita 2016 — 414 AIR (Round 1) · 1st & 2nd college rank
- ⚙️ Earlier: NXP Semiconductors (Bluetooth/WiFi firmware in C) · TCS (POS REST APIs)
Open to conversations on Big Data infrastructure, accelerated computing & LLM systems.


