profile
Analytics engineer — Atlanta, GA
Prudhvi Vuppalapati
I build the warehouse layer other teams query.
Four years of backend work on Postgres, MySQL, RDS and DynamoDB: tuning queries, sizing caches, and keeping the dashboards that told us when they broke. What I build now sits on the other side of that boundary. The pipelines that turn those operational databases into something a team can actually ask questions of.
My paid work so far has been backend engineering. The data-platform work is the five repositories below, and it is the job I am moving toward.
Each one runs end to end across ingest, model and serve. Each boots from a clean clone against synthetic data, with no warehouse account or credentials required, and each is tested at the layer where it would actually fail.
pipeline
Ingest, model, serve
Five repositories, arranged the way a warehouse is: raw change comes in on the left, tested models sit in the middle, and the things people query come out on the right.
- Ingest 1 repo Raw change, captured as it happened.
- Model 2 repos Cleaned, joined, and tested before anything downstream reads it.
- Serve 2 repos The tables and measures people actually query.
-
ingest
most complete
StreamGuardchange data capture
Postgres write-ahead log to ClickHouse in seconds, not hours.
Reads Postgres logical replication through a Debezium connector, streams every committed row change onto Kafka topics, and lands them in ClickHouse. It handles the three things that actually break CDC pipelines in practice: duplicate events, schema evolution, and windowed aggregation. Parse and sink failures go to a dead-letter topic rather than being dropped, and consumer lag and throughput are provisioned onto a Grafana dashboard.
Ships with a documented failure-injection guide, so the recovery paths are demonstrable rather than asserted.
-
model
Lakehouse Quality Gateenforcement, not reporting
Data quality that stops the pipeline instead of filing a report.
Most lakehouse data quality is passive: tests run, a report goes red, and nobody notices until the numbers look wrong days later. Here a Great Expectations checkpoint sits physically between the dbt staging layer and the marts on an Apache Iceberg lakehouse. When expectations fail the Airflow DAG stops, so no mart is ever built on top of bad data, and a structured alert naming the exact failing expectations and a sample of offending row IDs goes out over a webhook.
A chaos module injects the failures on demand, so the gate is proven to hold rather than assumed to.
lakehouse-quality-gate — open Lakehouse Quality Gate on GitHub
-
model
Field Ops Cost Auditcost-to-serve modelling
True cost per job, and where SLA breaches actually concentrate.
Field-service operators need two answers they usually can't get, because dispatch, routes, timesheets, fuel and tickets live in disconnected tables in inconsistent shapes. This reconciles them through a tested dbt pipeline: staging views, a business-logic layer, then reporting views. The hard SQL is written once and covered by tests, including recursive route sequencing, utilization windows and cost allocation.
Runs fully offline on DuckDB against a generated dataset. No warehouse, no credentials, reproducible from a clean clone.
field-ops-sql-cost-audit — open Field Ops Cost Audit on GitHub
-
serve
Retail Margin Cockpitgoverned star schema
One governed margin number, replacing five spreadsheets.
At small retail and DTC companies, "what's our margin?" is a multi-hour exercise across POS, Shopify and a hand-maintained inventory sheet that never joins cleanly, so finance and ops quote different numbers. This turns those raw exports into a tested dbt star schema, with not_null, unique, relationships and accepted_values tests on every key column, then adds the DAX measure library and row-level-security design that let a regional manager open Power BI and see only their own region.
A seeded generator produces two years of internally consistent retail history. Same seed, same bytes, every run, which is what makes everything downstream testable.
retail-margin-cockpit — open Retail Margin Cockpit on GitHub
-
serve
cohortkitretention analytics library
Cohort triangles and RFM for any customer/order/revenue table.
Every subscription and e-commerce business needs the same three retention views: a cohort-retention triangle, an RFM segmentation, and revenue by acquisition cohort. They usually live in a BI tool or a pile of copy-pasted SQL. This turns them into three tidy-DataFrame calls and a CLI, running in-process on DuckDB, so they work in a notebook, a test, or a cron job with no infrastructure at all.
24 tests, no network, no configuration.
record
4 yrs 3 mos of engineering
Backend and platform work on the operational systems that the pipelines above are built to read.
-
Nov 2024 — Present
1 yr 9 mo
Full Stack Developer
CGI · USA
- Cut average API response latency by ~25% with Redis caching and query optimization across Spring Boot REST services.
- Built and ran a Spring Boot microservices estate with Netflix Eureka service discovery and Spring Cloud Config.
- Deployed backend infrastructure on AWS Lambda, App Runner and S3.
- Validated API contracts, performance and security with Postman and Swagger ahead of each release.
-
Jan 2021 — Jul 2023
2 yr 6 mo
Junior Full Stack Developer
Lumen Technologies · India
- Tuned data access with Spring Data JPA over MySQL and PostgreSQL, and integrated Amazon RDS and DynamoDB for high-volume transaction workloads.
- Instrumented services with Spring Boot Actuator, Prometheus and Grafana dashboards, cutting mean time to resolution by ~40%.
- Added AWS CloudWatch logging and monitoring, reducing incident response time by ~35%.
- Migrated monolithic applications to Spring Boot microservices, cutting deployment time by ~30%.
Education
-
May 2025
Master of Science
Kennesaw State University · Georgia, USA
stack
Tools
Marked skills are used by a repository listed above.
Pipelines & orchestration
Warehouses & stores
Languages
Modelling & analysis
AWS
Backend
From four years of Java service work — the operational systems these pipelines read from.
contact
Get in touch
Open to analytics and data engineering roles. The fastest way to reach me is email.
Or find the code on GitHub, or take the one-page résumé (PDF).