Data Engineer · Bangalore, India

Kavali Yashwanth Royal

I build pipelines that land messy data, test it, and refuse to publish a number that fails a check — batch on AWS, streaming with Kafka and Spark, and dbt on top.

Open to data engineering roles · Bangalore or remote
4
Pipelines shipped
75
Automated tests
4/4
CI pipelines green
12
Data quality gates

Test count is current as of the last run on each repository: 23 + 27 + 20 + 5. CI status below is live, not a screenshot — each badge links to that repo's Actions page.

Selected work

Four pipelines, each runnable from a clone

Three of the four run offline from a clean clone in under a minute — I ran each one to produce the numbers below. The fourth needs a public dataset download, and an AWS account for its cloud path. Every project carries its own test suite and states in its README exactly what it does not do.

About the numbers: the datasets behind every figure on this page are synthetic or public sample data, generated to reproduce the defects real exports have. The pipelines, the tests, the CI and the infrastructure are real and reproducible — the revenue is not a real company's. Each README says which parts run in CI and which need Docker or an AWS account.

Flagship · Batch ELT

Retail data platform on AWS

Four inconsistent CSV exports land in S3, get cleaned once in Glue, and come out as a tested star schema that Athena and Redshift can both read. A run that fails a quality gate publishes nothing.

12/12 gates 23 tests 2,944 fact rows ₹1.26 Cr revenue
Python PySpark AWS Glue Athena Redshift Terraform DuckDB
Architecture diagram: sources into S3 bronze, Glue PySpark to silver and gold, served through Athena and Redshift Serverless
Streaming architecture: Kafka topic into a Spark job with a watermark, out to a parquet lake and a dead-letter queue

Streaming

Kafka order events

At-least-once delivery, out-of-order mobile clients and poison records handled explicitly: dedupe, a 120-second watermark, and a dead-letter queue that explains every rejection.

41,236 events 7.34% DLQ 20 tests
Kafka Spark Streaming PySpark Parquet
dbt lineage graph: five raw CSV sources into staging models, then intermediate, then six marts

Analytics engineering

SaaS revenue with dbt

MRR, net new MRR and cohort retention defined once, in one model, so the numbers reconcile by construction. Incremental fact table, a type-2 snapshot, 27 tests.

13 models 27 tests $248k MRR
dbt SQL DuckDB Data modelling

Lakehouse

NYC taxi on S3

A bronze / silver / gold lakehouse over the public NYC TLC trip records: Glue transformations, Athena analysis, and Terraform for every bucket and job. The project where the AWS patterns started.

5 tests Terraform Athena SQL
AWS Glue Athena Parquet pandas

Stack

What I actually work in

Only what the four repositories above can back up. Nothing listed here is something I have read about but never shipped.

Languages

  • Python — pipelines, tests, tooling
  • SQL — modelling, window functions
  • PySpark — batch and streaming jobs

Data

  • dbt — models, tests, snapshots
  • Kafka — topics, offsets, delivery semantics
  • Parquet — partitioning, compression
  • DuckDB — local warehouse, fast iteration

Cloud

  • S3 — medallion layers, lifecycle rules
  • Glue — catalog, crawlers, ETL jobs
  • Athena — external tables, partition pruning
  • Redshift Serverless — COPY, MERGE, dist/sort keys

Engineering

  • Terraform — every bucket, Glue job, workgroup and alarm in the AWS platform
  • pytest — unit and contract tests
  • GitHub Actions — CI on every push
  • Docker — local Kafka stack

Education

Where the fundamentals came from

Sri Venkateshwara College of Engineering and Technology

Bachelor of Technology — Computer Science (Artificial Intelligence & Machine Learning)

Graduated 2025

8.31
CGPA / 10

Contact

Hiring for a data engineering role?

I am looking for a first data engineering role in Bangalore, or remote. The fastest way to judge whether I can do the work is to run one pipeline yourself. For the flagship: git clone https://github.com/Yashu24-coder/aws-retail-data-platform && cd aws-retail-data-platform && make run — about ten seconds, no AWS account, no Docker. The README documents the same steps, and every project has its own Quickstart.