Data engineer working on open lakehouse systems Β Β·Β Apache Hudi contributor Β Β·Β Bengaluru, India
I spend my time on the storage layer of the lakehouse: how a table applies a stream of changes efficiently, what it costs to read afterwards, and which knob is actually responsible when a job slows down. Most of that is Apache Hudi, Apache Iceberg and Apache Spark, at @onehouse.
| Area | What that means day to day |
|---|---|
| Apache Hudi | Indexes, the timeline, compaction and table services. Where most of my open-source time goes |
| Apache Spark | Tuning the write and read paths, memory and shuffle behaviour, and diagnosing jobs that got slower without changing |
| Open table formats | Hudi, Iceberg and Delta Lake, plus Apache XTable for reading one copy of the data as any of them |
| Platform | Kafka and Flink ingestion, catalogs, and the maintenance jobs a lakehouse quietly needs |
I also answer a fair number of Spark and Hudi questions on Stack Overflow.
I write long-form guides and reference sheets at rangareddy.github.io. The ones people come back to:
| Apache Spark cheat sheet | Execution model, memory, joins, shuffle, AQE, Catalyst, streaming and tuning, with the default and version for every config |
| Apache Hudi cheat sheet | Table types, timeline, indexes, the metadata table, concurrency, table services and migration |
| Apache Iceberg cheat sheet | Snapshot tree, hidden partitioning, row-level modes, procedures and maintenance |
| Apache Hudi: a complete guide | What Hudi is, how a write and a read actually work, and what is genuinely different about it |
| Open table formats in practice | What actually differs between Iceberg, Hudi and Delta Lake, past the feature checklist |
Everything in those is read from the release tag rather than recalled, which is the whole point of them.
| Repository | What it is |
|---|---|
| ranga_spark_experiments | Runnable Spark experiments, the scratchpad behind a lot of the writing |
| spark-history-server-docker | A Spark History Server you can start with one command, for reading event logs locally |
| spark-logs-collector | Pulls application and event logs off a cluster so you can debug a finished job |
| spark_project_template_generator | Generates a Spark project skeleton so you skip the boilerplate |
| ranga-java-oom | Reproducible Java OutOfMemoryError examples, one per flavour |



