Skip to content
View pjdurden's full-sized avatar
🤒
softmax is all you need
🤒
softmax is all you need

Block or report pjdurden

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
pjdurden/readme.md

Prajjwal Chittori

Crypto & Payments Backend Engineer - DeFi & Liquid Restaking · On-chain Settlement · Card & Payment Rails

Liquid staking & restaking  ·  On-chain ⇄ card settlement  ·  Cross-border payments  ·  Stablecoins  ·  Smart contracts (EVM / Solana / CosmWasm)

Website LinkedIn Codeforces Expert Email

$ 21 merged upstream PRs · 16 projects · 3 papers · $500M+ TVL shipped


Summary

Backend engineer specializing in the intersection of crypto infrastructure and traditional payments - systems where on-chain state must reconcile with real-world money movement to the cent.

My work spans both sides of that seam: founding-team engineer at a liquid-staking protocol that scaled past $500M+ in staked assets, four years on cross-border payments and the stablecoin initiative at Visa, and now card and vault products at ether.fi - a non-custodial Visa crypto card built on liquid-restaking infrastructure.

  • Currently: Senior Backend Engineer at ether.fi - Cash (card) & Vault products
  • Core stack: Go, Rust, Solidity, TypeScript, Java/Spring, Ethereum/EVM, EigenLayer, Kafka, PostgreSQL, Redis
  • Education: B.Tech, Computer Science - Delhi College of Engineering (now Delhi Technological University)
  • Focus areas: liquid staking & restaking, on-chain/off-chain settlement, card & payment rails, cross-border payments, stablecoins, smart contracts (EVM / Solana / CosmWasm) - plus AI inference infrastructure (vLLM) on the open-source side

Experience  2021 - now

Backend engineering across crypto and global payments.

ether.fi - Senior Backend Engineer, Card & Vault Products  2026 - Present

Building ether.fi Cash, a non-custodial Visa crypto card on liquid-restaking infrastructure where users spend ETH/USDC while their assets continue earning restaking yield.

  • Own real-time settlement bridging Visa rails and on-chain vaults (authorization, capture, reconciliation).
  • Built the Borrow Mode backend - USDC borrowing against eETH collateral via lending-pool integration.
  • Designed an event-driven cashback pipeline (wETH rewards) on Kafka.
  • Hardened KYC/AML and risk monitoring with chain-analytics providers; extended multi-chain support across Ethereum L1 and L2s.

$ Go · Solidity · Ethereum · EigenLayer · Kafka · PostgreSQL · Redis

Visa - Senior Software Engineer, Payments & Crypto Initiative  2022 - 2026

Worked across traditional cross-border payments and Visa's stablecoin / crypto initiative - the bridge between card networks and digital assets.

  • Led an 8-engineer team on a real-time payments platform (monolith plus eight microservices) sustaining 2,000+ TPS at 99.98% uptime.
  • Delivered Treasury as a Service for the APAC hub - 15 currencies, clients in 60+ countries, powering roughly 80% of APAC liquidity flows through Visa Direct A2A.
  • Built the Network Validations Framework - configurable payer/beneficiary identity checks across 100+ SWIFT message types.
  • Prototyped on-chain payment settlement in Solidity and Solana as part of the crypto/stablecoin track.

$ Java · Spring Boot · Solidity · Rust · RabbitMQ · Hazelcast · Docker · Kubernetes

Stader Labs - Software Engineer, Founding Team  2021 - 2022

Joined as an intern during the final years of my degree at Delhi College of Engineering and grew into a founding member of a ~7-person team building a multi-chain liquid-staking protocol.

  • Built Rust / CosmWasm smart contracts powering liquidity pools that scaled past $500M+ in staked assets across multiple chains.
  • Led gas-fee analysis and optimization - benchmarking storage and swap costs on Terra/CosmWasm to keep contract execution economical at scale.
  • Built a validator analytics platform monitoring 1M+ nodes (React, MongoDB, Ethereum APIs) and APR dashboards.
  • Designed cross-chain architecture and on-chain/off-chain synchronization pipelines.

$ Rust · CosmWasm · TypeScript · Python · React · MongoDB


Research  3 papers

Published, peer-citable work.

Cache-aware request planning for black-box LLM APIs  2026 · preprint

Cache-Aware Client-Side Request Planning for Black-Box LLM APIs. When you consume an LLM through a paid per-token API you pay for the tokens the server processes, so the only lossless lever a client has is re-ordering requests to hit the provider's prompt cache. Formalizes that design space and ships a greedy prefix-clustering scheduler that shapes request order to maximize cache hits - up to 60% billed-cost reduction on an agentic workload at zero quality loss, Pareto-dominating prompt compression and semantic caching.

DOI 10.5281/zenodo.21386594 · pjdurden/cache-aware-request-planning

Executable correctness under KV-cache compression  2026 · preprint

Perplexity Holds, Programs Break: Executable Correctness as a Blind Spot of KV-Cache Compression. KV-cache compression is benchmarked almost entirely on token-overlap and retrieval metrics that never check whether generated code actually runs or a tool call is schema-valid. Introduces kv-exec-bench, an open benchmark measuring code unit-test pass@1 and tool-call JSON-Schema validity under compression, built on NVIDIA's kvpress so any press works unmodified.

DOI 10.5281/zenodo.20805562 · pjdurden/kv-exec-bench

StragglerPolicy - straggler-aware decentralized training  2026 · paper

Straggler-Aware Elastic Membership for Decentralized Training. A zero-GPU discrete-event simulator of DiLoCo-style decentralized ML training plus a straggler-aware membership policy for slow-but-alive nodes that existing decentralized-training stacks don't handle. 4.59x faster than the baseline on a persistent-straggler scenario, validated against a torch.distributed/gloo DiLoCo loop.

DOI · pjdurden/churn


Open Source  21 merged · 16 projects

Merged work on the infrastructure other people build on. Star counts are live; expand a project for the actual bug.

vLLM
vLLM

stars
1 merged
Meilisearch
Meilisearch

stars
1 merged
SGLang
SGLang

stars
1 merged
candle
candle

stars
1 merged
mcp-go
mcp-go

stars
1 merged
mistral.rs
mistral.rs

stars
2 merged
Optimism
Optimism

stars
1 merged
Mooncake
Mooncake

stars
2 merged
AIBrix
AIBrix

stars
2 merged
revm
revm

stars
1 merged
Envoy AI Gateway
Envoy AI Gateway

stars
2 merged
celestia-node
celestia-node

stars
1 merged
alloy
alloy

stars
1 merged
ethrex
ethrex

stars
1 merged
llguidance
llguidance

stars
2 merged
outlines-core
outlines-core

stars
1 merged
vLLM  vllm-project/vllm

The standard high-throughput LLM inference & serving engine - build-correctness fix in the precompiled-flag test suite (#44942).

Meilisearch  meilisearch/meilisearch

Rust search engine - fixed a ranking-rules ordering bug that silently dropped matching hits (#6437).

SGLang  sgl-project/sglang

High-throughput LLM/VLM serving engine - fixed the prefill/decode router's cache-aware routing keying chat requests on the first message only; routing on the full conversation lifted KV-cache hits from ~69% to ~96% and output throughput from ~678 to ~1078 TPS (#27430).

candle  huggingface/candle

Hugging Face's minimalist Rust ML framework - Qwen3 produced incorrect output for any batch size > 1: the causal mask allocated a batch-independent buffer but claimed a (b, 1, tgt, tgt + offset) shape, so batch row 0 read the correct mask and every row after it read past the buffer; fixed by shaping the mask (1, 1, ...) and letting the existing broadcast_add apply it across the batch (#3586).

mcp-go  mark3labs/mcp-go

The leading Go implementation of the Model Context Protocol (MCP) - fixed getServerMetadata returning (nil, nil) instead of an error, closing a silent-failure path in OAuth discovery (#904).

mistral.rs  EricLBuehler/mistral.rs

The Rust LLM inference & serving engine: fixed reversed FCFS priority in the PagedAttentionScheduler preemption path so the oldest request is preempted last (#2250), and validated GGUF special-token ids against the vocab to prevent an out-of-bounds panic on model load (#2282).

Optimism  ethereum-optimism/optimism

The OP Stack monorepo powering Ethereum L2s (Base, OP Mainnet) - fixed an op-wheel metrics bug that wrote block gas twice and left the base-fee gauge unset (#21127).

Mooncake  kvcache-ai/Mooncake

The KV-cache store & transfer engine behind Kimi, used as a disaggregated KV backend by vLLM and SGLang - mooncake_master bound its RPC and HTTP servers to the numeric wildcard 0.0.0.0, which the acceptors resolved through getaddrinfo(), so environments that answer EAI_NONAME for numeric literals killed startup with bad address: 0.0.0.0; fixed by pinning the dependency to a revision that parses numeric IP literals directly (#2919), and fixed an SSD-offload duplicate-key storm under concurrency: when two offload flows shared a KV prefix block, the bucket backend's intentional single-writer-per-key OBJECT_ALREADY_EXISTS rejection was treated as fatal by FileStorage::OffloadObjects, aborting the whole offload and leaving the decode node with INVALID_KEY floods; made duplicate-key rejection a recoverable per-bucket condition (#2967).

AIBrix  vllm-project/aibrix

The vLLM project's Kubernetes-native LLM-serving control plane - fixed the ZMQ KV-event decoder dropping group_idx/medium/lora_name from vLLM's BlockStored event, which caused false prefix-cache matches on hybrid-attention models (#2384), and made the KV-event indexer purge a pod's cached prefixes on AllBlocksCleared so evicted blocks are no longer served as stale cache hits (#2385).

revm  bluealloy/revm

The Rust EVM behind Foundry & reth - removed a const-eval panic path in the stack interpreter (#3735).

Envoy AI Gateway  envoyproxy/ai-gateway

The Envoy-based gateway for AI/LLM traffic - the MCP proxy failed initialize with a 500 when a backend's initialize SSE response opened with a keep-alive / empty data: event before the JSON-RPC result (seen on some FastMCP backends); the SSE parser now skips non-response events instead of treating them as a fatal parse error (#2267), and the Anthropic translator dropped the input/cache token usage reported on message_delta, so it was left out of the final usage totals; fixed to merge it in (#2292).

celestia-node  celestiaorg/celestia-node

The Go node for the Celestia data-availability layer - unified the header TestSuite constructors behind functional options (#5041).

alloy  alloy-rs/core

The Rust Ethereum-types & sol! toolkit used across Foundry, reth and the wider Rust EVM ecosystem - the sol! macro silently dropped Debug/PartialEq/Eq/Hash derives on the event/error enums it generates for contracts with overloaded events (e.g. Uniswap V3's two Swap events), because synthetic _N-suffixed variant names didn't resolve; fixed it to compute derivability from the underlying parameter types (#1118).

ethrex  lambdaclass/ethrex

The Rust Ethereum L1/L2 execution client by LambdaClass - replaced a too-broad datadir non-empty startup check with an actual-DB probe, so unrelated files (e.g. an EthDocker JWT secret) no longer block a fresh node from booting (#6786).

llguidance  guidance-ai/llguidance

The constrained-decoding engine behind structured / JSON-Schema output in vLLM, SGLang and llama.cpp - fixed multipleOf rejecting negative multiples (#357) and made max_tokens=0 rules compile to the empty string (#356).

outlines-core  dottxt-ai/outlines-core

The Rust JSON-Schema to regex core behind Outlines' structured generation - the date format regex applied a uniform 01-31 day range regardless of month, so constrained decoding could emit impossible dates such as 2022-02-31 and 2022-04-31; made the day range month-aware, deliberately leaving leap years unvalidated to keep the compiled regex bounded (#258).


Personal Projects  8 builds

Smaller things built to learn or to prove a point.

kv-canary  KV-cache compression

A canary for silent KV-cache-compression failures - functional accuracy (code execution / tool-calls) vs perplexity under quantization & token eviction, scored by a Silent Degradation Score. pjdurden/kv-canary

churn - StragglerPolicy  decentralized training

Deterministic discrete-event simulator of elastic-membership decentralized ML training, plus the straggler-aware membership policy behind the paper above. pjdurden/churn

friendly-neighbourhood-6502  bare-metal systems

Cycle-accurate 6502 CPU emulator down to bus/processor pins, addressing modes, and internal functions, with an OpenGL / Pixel Game Engine graphics frontend. pjdurden/friendly-neighbourhood-6502

CoinSwap  CosmWasm + Terraswap

DEX swap contract for LUNA/UST/CW20 tokens, with a gas-fee analysis tool for the Terra blockchain. pjdurden/CoinSwap

Gas-Fee Benchmark  cw-storage-plus / Terraswap

Benchmarking contract measuring gas costs of storage patterns on Terra/CosmWasm. pjdurden/Gas_analysis

Solana Payment System  Rust on Solana

Rust payment-settlement program deployed on Solana. pjdurden/Solana-PaymentSystem-Visa

Stader APR Dashboard  React

React dashboard surfacing staking APR and validator analytics. pjdurden/Stader-Apr-Dashboard-

Veri5  payments identity API

Real-time identity and account verification API for cross-border payments. pjdurden/veri5-mvp


Technical Skills  stack

Languages, chains, infra and ML stack

Languages

Go Rust Solidity TypeScript Java Python C++

Blockchain & Web3

Ethereum EigenLayer CosmWasm Solana Foundry

Backend & Infrastructure

Spring Boot Kafka PostgreSQL MongoDB Redis Docker Kubernetes AWS

AI / ML Systems

vLLM PyTorch torch.distributed DiLoCo Decentralized Training


Competitive Programming  Codeforces Expert

Ratings, contests and mentoring

Achieved Codeforces Expert during university (pre-2022, before AI coding assistants) - a credential earned through unassisted algorithmic problem-solving under contest conditions.

  • Codeforces - Expert · pjdurden
  • CodeChef - peak rating 1890 · pjdurden
  • LeetCode - peak rating 1679 · Pjdope
  • Code-A-Thon - Rank 5 (College Rank 1)
  • Cleared the Facebook Hacker Cup Qualification Round (2020); Google Kick Start Round B (2021).
  • Mentored 300+ students in algorithms and software engineering through GirlScript.

Pinned Loading

  1. nanoserve nanoserve Public

    An AI inference engine from scratch. Like nanoGPT, but for serving.

    Python 3

  2. vllm-project/vllm vllm-project/vllm Public

    A high-throughput and memory-efficient inference and serving engine for LLMs

    Python 88.2k 20.3k

  3. A-Comparative-Analysis-of-YOLOv5-RCNN-and-R-FCN-with-Sparsification-of-YOLOv5-Final-Year-Project A-Comparative-Analysis-of-YOLOv5-RCNN-and-R-FCN-with-Sparsification-of-YOLOv5-Final-Year-Project Public

    Final Year Project based on A Comparative Analysis of YOLOv5, RCNN, and R-FCN with Sparsification of YOLOv5

    Jupyter Notebook

  4. friendly-neighbourhood-6502 friendly-neighbourhood-6502 Public

    Computer Architechture emulator for 6502 processor. It emulates all the bus and processor pins and also the internal adressing modes and functions. Implements OPEN GL , Universal CRT , GLUT, Pixel …

    C++ 2

  5. kv-canary kv-canary Public

    A canary for silent KV-cache-compression failures: functional accuracy (code/tool-calls) vs perplexity under quantization & token eviction, scored by a Silent Degradation Score.

    Python 1

  6. kv-exec-bench kv-exec-bench Public

    Python 1