Selected work
11 projects across software, data and AI/ML, each with the tests and numbers that back it up. Hover to peek, click for the full story.
Software
-
01
Java · Spring Boot · React
Showtime: Event Ticketing
A BookMyShow-style ticketing app with live seat maps, where a seat is never sold twice however many people go for it at once.
- Java 25
- Spring Boot 4
- PostgreSQL
- React
50 → 1buyers raced for one seat, 1 got itSELECT ... FROM seats WHERE id = ANY(:ids) FOR UPDATE SKIP LOCKED;
59,119hold attempts in 60 spg_notify('seat_changes', ...) -> SSE to every browser1.6 msp95 hold -
02
Kubernetes · Terraform · Helm
Cloud-Native Platform
My job queue run the way production runs it: Kubernetes built by Terraform, autoscaled on queue depth, with a node killed mid-run and nothing lost.
- Kubernetes
- Terraform
- Helm
- KEDA
20,000 / 20,000exactly once# kill a jobs node mid-run 117 jobs taken over, 0 dup
1 → 10KEDA workerstriggers: - type: redis-streams # scale on stream lag
67pg connections, flat -
03
Python · Distributed systems
Distributed Job Scheduler
A Celery-style job queue that never runs a job's side effects twice, even when workers are killed in the middle of a job.
- Python 3.12
- FastAPI
- React
- PostgreSQL
50,000 / 50,000jobs ran exactly onceUPDATE jobs SET status='done' WHERE id=$1 AND fence=$2; -- zombie? rejected
SIGKILLa worker, every 60 s7.1 msp95 enqueue@app.task(max_attempts=5) def charge(ctx, order_id): ...
-
04
Kafka · Debezium · PostgreSQL
CDC Pipeline
Streams every MySQL insert, update and delete through Debezium and Kafka into PostgreSQL, then proves the copy is identical, even after crashes.
- MySQL 8.4
- Debezium 3.0
- Kafka 3.9
- Python
ON CONFLICT (id) DO UPDATE ... WHERE t.pos < EXCLUDED.pos;
141 msp95 lagSHA-256source = replicaALTER TABLE orders ADD COLUMN coupon ...; -- live
1,000,021changes
More projects2
- Real-Time Event Streaming A live cricket scoreboard feed where 1,000 clients receive every event exactly once and in order, through crashes and reconnects. Python 3.12 · asyncio · FastAPI
- Streaming Consumer Benchmark The same fan-out server written twice, Java 21 virtual threads and Python asyncio, measured by one harness up to 20,000 connections. Java 21 · Virtual threads · Python asyncio
Data
-
01
dbt · Airflow · Power BI
E-Commerce Analytics Warehouse
100,000 real orders replayed as a live source into a dbt star schema that is tested and reconciled to the cent on every run.
- MySQL 8.4
- Python
- PostgreSQL 16
- dbt
R$ 15,843,553.24matched to the centdbt build ✓ 85 of 85 tests passed
1.7 ★avg review when 8+ days late -
02
Kafka · Debezium · PostgreSQL
CDC Pipeline
Streams every MySQL insert, update and delete through Debezium and Kafka into PostgreSQL, then proves the copy is identical, even after crashes.
- MySQL 8.4
- Debezium 3.0
- Kafka 3.9
- Python
ON CONFLICT (id) DO UPDATE ... WHERE t.pos < EXCLUDED.pos;
141 msp95 lagSHA-256source = replicaALTER TABLE orders ADD COLUMN coupon ...; -- live
1,000,021changes -
03
BigQuery · dbt · Statistics
Product Analytics & A/B Testing
Google's GA4 store data modelled in BigQuery, and an A/B testing toolkit tested on thousands of simulated experiments before reading out a real 14M-user one.
- BigQuery
- dbt
- SQL
- Python
29.7%false positives, daily peekingSELECT COUNT(*) ... QUALIFY ROW_NUMBER() OVER (...) = 1
+27% → +19.5%confounded lift, fixed190 vs 17days to detect +10%aipw = mu1 - mu0 + ipw_residuals
-
04
PostgreSQL · SQL · MySQL
Postgres Tuning on 38M Taxi Trips
Twelve analytical questions over every 2023 NYC taxi trip, taken from a 488 ms median to 19 ms with exactly the same answers.
- PostgreSQL 16
- MySQL 8.4
- SQL
- Python
25×faster medianCREATE INDEX ... USING brin (pickup_at); -- 832 kB
38,310,226tripsIndex Only Scan Heap Fetches: 0
488 → 19 msmedian query
AI / ML
-
01
LightGBM · MLflow · FastAPI
Card Fraud Detection
A fraud model on 590,000 real card transactions, built the way production needs it: tested on the future, priced in dollars, explained per decision.
- Python
- LightGBM
- scikit-learn
- Optuna
0.87 → 0.64random split vs honestreview if p * (amount + 20) > 10 # dollars68.5%fraud cost savedlabels usable after 30 days # a chargeback takes weeks
1.1 msp95 score -
02
RAG · pgvector · LangGraph
Financial RAG QA
Question answering over 57,638 finance answers where every sentence cites its source, and every design choice was measured before it was kept.
- Python
- PostgreSQL
- pgvector
- PyTorch
+72%nDCG@10 vs BM25ORDER BY embedding <=> $1 LIMIT 100; -- HNSW
−14%the textbook rerankerInterest compounds monthly [2]. Your bank sets the rate [4].
93%sentences supported -
03
BigQuery · dbt · Statistics
Product Analytics & A/B Testing
Google's GA4 store data modelled in BigQuery, and an A/B testing toolkit tested on thousands of simulated experiments before reading out a real 14M-user one.
- BigQuery
- dbt
- SQL
- Python
29.7%false positives, daily peekingSELECT COUNT(*) ... QUALIFY ROW_NUMBER() OVER (...) = 1
+27% → +19.5%confounded lift, fixed190 vs 17days to detect +10%aipw = mu1 - mu0 + ipw_residuals
About
I'm a data engineer who cares whether the number on the dashboard is actually right. Not roughly right: reconciled against the source, to the cent, on every run.
At Fayble, game events flowed through Kafka into live sports statistics and an AI commentary system. I learned there that a pipeline is only as good as its worst late-arriving record.
Since then I've built a dbt warehouse fed by a live replay of 100,000 real orders, with a Power BI report and an Excel workbook on top that agree with it to the cent, a change data capture pipeline that proves its replica is identical, a tuning study on 38 million taxi trips, and an A/B testing toolkit checked on thousands of simulated experiments. Each one comes with the checks that caught its bugs.
- focus
- Data engineering & analytics
- based in
- Mumbai, India (IST)
- education
- M.S. Computer Science
- currently
- Open to work · relocation worldwide
Skills
Hover a skill to see where I've actually used it.
01Languages
- SQLSQL
- Python
- Java
SQL first: window functions, CTEs, and reading query plans.
02Pipelines
- dbt
- Airflow
- Kafka
- CDCDebezium
03Databases
- PostgreSQL
- MySQL
- BigQuery
- Redis
LCProblem solving @anuragb2901 ↗
04Analysis
- BIPower BI
- XLExcel
- pandas
- SciSciPy
- Metabase
- EvEvidence
05AI
- Claude
- OpenAI
- Gemini
- GQGroq
06Infra & tools
- Docker
- AWS S3
- GitHub Actions
- Git
Experience
- 01'
Integrated Kafka into the animation flow, replaying 19 games (about 1,274 messages) through an ordered, de-duplicated path served through a FastAPI API.
- 02'
Built the audio pipeline for an AI sports commentary system: dual-commentator speech with ElevenLabs, stitched per play into continuous broadcast audio.
- 03'
Moved commentary text generation from Gemini to Groq and chose a one-emotion-per-play voice design over per-segment emotion stitching, keeping full-game audio generation fast and within free-tier limits.
- 04'
Automated archery match production with ffmpeg: commentary, crossfades, 7.1 (8-channel) audio with 1 kHz broadcast trigger tones, and per-play metadata into finished match videos.
“Highly adaptable and contributed across a wide range of components, from database to APIs to media pipelines. Quickly learned new concepts, delivered solid results, and consistently met timelines.”
Resume
One page. Press the button.
LET'S TALK
online I usually reply within a day.