Data Engineer at PhonePe / Bengaluru

Hi, I’m Gokul Arumugam.

I build data
pipelines behind
India’s everyday
payments.

From chai breaks to rent day, UPI is part of everyday life. At PhonePe, I build the data platforms that keep analytics and ML teams up to speed. Five-plus years in, still trying not to get paged at 3 AM.

NOT AT MY DESK, FOR ONCE
Gokul by a river in the mountains
A different kind of stream.This one doesn’t need Kafka.

Yes, I do
go outside.

The toolbox.

Some assembly required

The stuff I reach for. Depends on the problem, not the hype.

toolbox

(01)

Languages

PythonScalaOpenJDKSQLT-SQL

Processing

Apache SparkPySparkSpark Streaming

Streaming & CDC

Apache KafkaDebeziumRabbitMQ

Orchestration

Apache Airflow

Storage & Query

Apache HiveDeltaMariaDBPostgreSQLRedisIcebergTrinodbt

Platform

Apache HadoopDockerKubernetesGitLabAzure

Cloud

AWSSnowflakeDatabricks

File Formats

JSONCSVApache ParquetApache AvroORCDelta

What I’ve been building at PhonePe.

Selected impact / PhonePe

The job behind
the job title.

A few things I’ve built and fixed: getting data in, keeping streams alive, and figuring out why that Spark job is still running.

Selected professional work. Diagrams illustrate the ideas, not internal architecture or live telemetry.

Freshness / Change data capture

400+ tables. Preferably no surprises.

A CDC platform connecting 150+ MariaDB shards and 400+ tables to the teams that need them.

3 TBof changes, every day

  1. MariaDB150+ shards / 400+ tables
  2. DebeziumMulti-tenant Kubernetes
  3. KafkaChange streams
  4. PySparkProcessing
  5. Hive ACIDAnalytical tables
Illustrative flow Schema evolution supported / Sub-hour freshness / 6 teams
Inside the system
Problem
Six teams needed fresh data from a large, sharded MariaDB estate, including tables whose schemas evolve.
Implementation
Built a multi-tenant Debezium deployment on Kubernetes, feeding Kafka, PySpark, and Hive ACID. Supported schema evolution along the ingestion path.
Outcome
3 TB/day processed across 150+ shards and 400+ tables, with sub-hour data freshness for six teams.
Scale / Data lifecycle

Turns out, not everything needs hot storage.

A cross-environment pipeline that made archival possible, with 50% less hot storage.

50+ PBacross environments

Replicate across environmentsIceberg to HiveManaged to external
1/2the hot storage
Illustrative archival path / 50% less hot storage
Inside the system
Problem
A large data estate needed a path across environments and table formats to enable archival and reduce hot-storage requirements.
Implementation
Built a pipeline spanning replication, Iceberg-to-Hive conversion, and managed-to-external table conversion.
Outcome
Enabled archival across a 50+ PB estate and reduced hot storage by 50%.
Reliability / Stream recovery

Restart the job. Not my sleep schedule.

Foxtrot StreamJobManager: turning job recovery into a system responsibility.

200+streaming jobs managed

  1. Poll YARN
  2. Detect failure
  3. Restart stream
Illustrative control loop / Kafka-to-Hive streams
Inside the system
Problem
Failed Kafka-to-Hive streams needed to be detected and restarted without repeated manual intervention.
Implementation
Built Foxtrot StreamJobManager to poll YARN for job state and automatically restart failed Kafka-to-Hive streaming jobs.
Outcome
Managed 200+ jobs with near-zero manual intervention for stream recovery.
Efficiency / Critical batch

We were counting the expensive way.

Replacing count() with Kafka offset counting cut a critical batch from 60 to 35 minutes.

650+executor-hours saved / day at peak

Illustrative comparison / Approximately 40% lower batch runtime
Inside the system
Problem
A critical batch spent unnecessary runtime counting records with count().
Implementation
Replaced count() with Kafka offset counting to avoid the expensive counting work in the batch pipeline.
Outcome
Runtime fell from 60 to 35 minutes, approximately 40% lower, reclaiming 650+ executor-hours/day at peak load.
Knowledge / On-call RAG

30% fewer inbound queries.

Joined Slack, 500+ Confluence pages, and Grafana through a two-stage Ollama/GPT workflow with Redis retrieval. Less searching for answers during on-call.

Performance / Tail latency

40% lower P99 latency.

Debugged Spark memory bottlenecks, JVM garbage-collection pauses, and Kafka partition imbalances; tuned executors and shuffle partitions for faster real-time analytics.

How I got here.

Nov 2020 to today

Commerce degree.
Slight detour into data.

I started with SQL and dashboards, then got curious about everything upstream. A few years later, here we are. Most recent stop first.

Career duration, November 2020 to Oct 2026Most recent role first. Bars are proportional to time: PhonePe, December 2024 to the build date; Bare International, November 2022 to December 2024; TTK Services, November 2020 to November 2022. Full role details follow in the same order.202120222023202420252026PhonePeData EngineerBare InternationalAnalytical EngineerTTK ServicesData Analyst
Latest chapter first. Bar lengths show time in each role, through .
  1. Chapter 03 / Current

    Dec 2024 - Present

    Bengaluru

    PhonePeData Engineer

    Building the systems behind fresh, dependable data at scale.

    • CDC platform moving 3 TB/day from 150+ MariaDB shards and 400+ tables, delivering sub-hour freshness to six teams.
    • 50+ PB cross-environment pipeline enabling archival and 50% less hot storage; automated recovery for 200+ Foxtrot streaming jobs.
    • Critical batch runtime reduced from 60 to 35 minutes, saving 650+ executor-hours/day at peak load; separately, P99 latency reduced by 40% through Spark and Kafka tuning.
    • On-call RAG across Slack, 500+ Confluence pages, and Grafana reduced inbound queries by 30%.
    Explore the case studies
  2. Chapter 02

    Nov 2022 - Dec 2024

    Fairfax, VA (Remote)

    Bare InternationalAnalytical Engineer

    From analytical models to real-time data products.

    • Processed 1M+ events per four-hour window with Kafka, Redis, and MariaDB, supporting sub-second queries.
    • Reduced Delta Lake query latency by approximately 45% for four analyst teams.
    • Built a Neo4j/FastAPI catalog for 40+ datasets and implemented RBAC and row-level security for GDPR across 30 datasets.
    • Automated loads for 15+ Domo reports through SQL Server, saving approximately five hours of manual maintenance per week.
  3. Chapter 01

    Nov 2020 - Nov 2022

    Bengaluru

    TTK ServicesData Analyst

    Making reporting reliable, from the query to the dashboard.

    • Built KPI reporting with SQL Server and Power BI; reduced query latency by 20%.
    • Automated validation to reduce manual checks by 60%.

The starting point

Bachelor of Commerce

Hindusthan College of Arts and Science
Coimbatore

Continued learning

  • Microsoft Certified: Azure Data Engineer Associate (DP-203)
  • Microsoft Certified: Azure Data Fundamentals (DP-900)
  • Google Data Engineering Professional Certificate (Coursera)
  • Google Data Analytics Professional Certificate (Coursera)

Apparently, one day job wasn’t enough.

All projects

Side projects that made it out of the “I should build that” stage. Code, demos, and the bits I learned the hard way.

opensource projects

(02)
github.com/GokulArumugam/atlas →

An AI agent that sits on top of your database: ask questions in plain English and get real insights out of your data — available to everyone on the team, not just analysts, with a firewall that decides who's allowed to see what.

What you just watched: asking the warehouse questions in plain English, the same HR question being allowed for HR and refused for engineering, phone numbers coming back masked, the per-user data map, and every decision landing in a tamper-evident audit trail — all against a Postgres warehouse running in a Podman container. The raw data never leaves the network it belongs to.

Learn more about it →fail-closed governance · 116 tests green

Some evenings look like this.

GitHub activity
OctNovDecJanFebMarAprMayJunJulAugSepOct2025-10-12: 0 contributions2025-10-13: 0 contributions2025-10-14: 0 contributions2025-10-15: 0 contributions2025-10-16: 0 contributions2025-10-17: 0 contributions2025-10-18: 0 contributions2025-10-19: 0 contributions2025-10-20: 0 contributions2025-10-21: 0 contributions2025-10-22: 0 contributions2025-10-23: 0 contributions2025-10-24: 0 contributions2025-10-25: 0 contributions2025-10-26: 0 contributions2025-10-27: 0 contributions2025-10-28: 0 contributions2025-10-29: 0 contributions2025-10-30: 0 contributions2025-10-31: 0 contributions2025-11-01: 0 contributions2025-11-02: 0 contributions2025-11-03: 0 contributions2025-11-04: 0 contributions2025-11-05: 0 contributions2025-11-06: 0 contributions2025-11-07: 0 contributions2025-11-08: 0 contributions2025-11-09: 0 contributions2025-11-10: 0 contributions2025-11-11: 0 contributions2025-11-12: 0 contributions2025-11-13: 0 contributions2025-11-14: 0 contributions2025-11-15: 0 contributions2025-11-16: 0 contributions2025-11-17: 0 contributions2025-11-18: 0 contributions2025-11-19: 0 contributions2025-11-20: 0 contributions2025-11-21: 0 contributions2025-11-22: 0 contributions2025-11-23: 0 contributions2025-11-24: 0 contributions2025-11-25: 0 contributions2025-11-26: 0 contributions2025-11-27: 0 contributions2025-11-28: 0 contributions2025-11-29: 0 contributions2025-11-30: 0 contributions2025-12-01: 0 contributions2025-12-02: 0 contributions2025-12-03: 0 contributions2025-12-04: 0 contributions2025-12-05: 0 contributions2025-12-06: 0 contributions2025-12-07: 0 contributions2025-12-08: 0 contributions2025-12-09: 0 contributions2025-12-10: 0 contributions2025-12-11: 0 contributions2025-12-12: 0 contributions2025-12-13: 0 contributions2025-12-14: 0 contributions2025-12-15: 0 contributions2025-12-16: 0 contributions2025-12-17: 0 contributions2025-12-18: 0 contributions2025-12-19: 0 contributions2025-12-20: 0 contributions2025-12-21: 0 contributions2025-12-22: 0 contributions2025-12-23: 0 contributions2025-12-24: 0 contributions2025-12-25: 0 contributions2025-12-26: 0 contributions2025-12-27: 0 contributions2025-12-28: 0 contributions2025-12-29: 0 contributions2025-12-30: 0 contributions2025-12-31: 0 contributions2026-01-01: 0 contributions2026-01-02: 0 contributions2026-01-03: 0 contributions2026-01-04: 0 contributions2026-01-05: 0 contributions2026-01-06: 0 contributions2026-01-07: 0 contributions2026-01-08: 0 contributions2026-01-09: 0 contributions2026-01-10: 0 contributions2026-01-11: 0 contributions2026-01-12: 0 contributions2026-01-13: 0 contributions2026-01-14: 0 contributions2026-01-15: 0 contributions2026-01-16: 0 contributions2026-01-17: 0 contributions2026-01-18: 0 contributions2026-01-19: 0 contributions2026-01-20: 0 contributions2026-01-21: 0 contributions2026-01-22: 0 contributions2026-01-23: 0 contributions2026-01-24: 0 contributions2026-01-25: 0 contributions2026-01-26: 0 contributions2026-01-27: 0 contributions2026-01-28: 0 contributions2026-01-29: 0 contributions2026-01-30: 0 contributions2026-01-31: 0 contributions2026-02-01: 0 contributions2026-02-02: 0 contributions2026-02-03: 0 contributions2026-02-04: 0 contributions2026-02-05: 0 contributions2026-02-06: 0 contributions2026-02-07: 0 contributions2026-02-08: 0 contributions2026-02-09: 0 contributions2026-02-10: 0 contributions2026-02-11: 0 contributions2026-02-12: 0 contributions2026-02-13: 0 contributions2026-02-14: 0 contributions2026-02-15: 0 contributions2026-02-16: 0 contributions2026-02-17: 0 contributions2026-02-18: 0 contributions2026-02-19: 0 contributions2026-02-20: 0 contributions2026-02-21: 0 contributions2026-02-22: 0 contributions2026-02-23: 0 contributions2026-02-24: 0 contributions2026-02-25: 0 contributions2026-02-26: 0 contributions2026-02-27: 0 contributions2026-02-28: 0 contributions2026-03-01: 0 contributions2026-03-02: 0 contributions2026-03-03: 0 contributions2026-03-04: 0 contributions2026-03-05: 0 contributions2026-03-06: 0 contributions2026-03-07: 0 contributions2026-03-08: 0 contributions2026-03-09: 0 contributions2026-03-10: 0 contributions2026-03-11: 0 contributions2026-03-12: 0 contributions2026-03-13: 0 contributions2026-03-14: 0 contributions2026-03-15: 0 contributions2026-03-16: 0 contributions2026-03-17: 0 contributions2026-03-18: 0 contributions2026-03-19: 0 contributions2026-03-20: 0 contributions2026-03-21: 0 contributions2026-03-22: 0 contributions2026-03-23: 0 contributions2026-03-24: 0 contributions2026-03-25: 0 contributions2026-03-26: 0 contributions2026-03-27: 0 contributions2026-03-28: 0 contributions2026-03-29: 0 contributions2026-03-30: 0 contributions2026-03-31: 0 contributions2026-04-01: 0 contributions2026-04-02: 0 contributions2026-04-03: 0 contributions2026-04-04: 0 contributions2026-04-05: 0 contributions2026-04-06: 0 contributions2026-04-07: 0 contributions2026-04-08: 0 contributions2026-04-09: 0 contributions2026-04-10: 0 contributions2026-04-11: 0 contributions2026-04-12: 0 contributions2026-04-13: 0 contributions2026-04-14: 0 contributions2026-04-15: 0 contributions2026-04-16: 0 contributions2026-04-17: 0 contributions2026-04-18: 0 contributions2026-04-19: 0 contributions2026-04-20: 0 contributions2026-04-21: 0 contributions2026-04-22: 0 contributions2026-04-23: 0 contributions2026-04-24: 0 contributions2026-04-25: 0 contributions2026-04-26: 0 contributions2026-04-27: 0 contributions2026-04-28: 0 contributions2026-04-29: 0 contributions2026-04-30: 0 contributions2026-05-01: 0 contributions2026-05-02: 0 contributions2026-05-03: 0 contributions2026-05-04: 0 contributions2026-05-05: 0 contributions2026-05-06: 0 contributions2026-05-07: 0 contributions2026-05-08: 0 contributions2026-05-09: 0 contributions2026-05-10: 0 contributions2026-05-11: 0 contributions2026-05-12: 0 contributions2026-05-13: 0 contributions2026-05-14: 0 contributions2026-05-15: 0 contributions2026-05-16: 0 contributions2026-05-17: 0 contributions2026-05-18: 0 contributions2026-05-19: 0 contributions2026-05-20: 0 contributions2026-05-21: 0 contributions2026-05-22: 0 contributions2026-05-23: 0 contributions2026-05-24: 0 contributions2026-05-25: 0 contributions2026-05-26: 0 contributions2026-05-27: 0 contributions2026-05-28: 0 contributions2026-05-29: 0 contributions2026-05-30: 0 contributions2026-05-31: 0 contributions2026-06-01: 0 contributions2026-06-02: 0 contributions2026-06-03: 0 contributions2026-06-04: 0 contributions2026-06-05: 0 contributions2026-06-06: 0 contributions2026-06-07: 0 contributions2026-06-08: 0 contributions2026-06-09: 0 contributions2026-06-10: 0 contributions2026-06-11: 0 contributions2026-06-12: 0 contributions2026-06-13: 0 contributions2026-06-14: 0 contributions2026-06-15: 0 contributions2026-06-16: 0 contributions2026-06-17: 0 contributions2026-06-18: 0 contributions2026-06-19: 0 contributions2026-06-20: 0 contributions2026-06-21: 0 contributions2026-06-22: 0 contributions2026-06-23: 0 contributions2026-06-24: 0 contributions2026-06-25: 0 contributions2026-06-26: 0 contributions2026-06-27: 0 contributions2026-06-28: 0 contributions2026-06-29: 0 contributions2026-06-30: 0 contributions2026-07-01: 0 contributions2026-07-02: 0 contributions2026-07-03: 0 contributions2026-07-04: 0 contributions2026-07-05: 0 contributions2026-07-06: 0 contributions2026-07-07: 0 contributions2026-07-08: 0 contributions2026-07-09: 0 contributions2026-07-10: 17 contributions2026-07-11: 26 contributions2026-07-12: 0 contributions2026-07-13: 7 contributions2026-07-14: 0 contributions2026-07-15: 0 contributions2026-07-16: 0 contributions2026-07-17: 0 contributions2026-07-18: 0 contributions2026-07-19: 0 contributions2026-07-20: 0 contributions2026-07-21: 0 contributions2026-07-22: 0 contributions2026-07-23: 0 contributions2026-07-24: 5 contributions2026-07-25: 0 contributions2026-07-26: 0 contributions2026-07-27: 0 contributions2026-07-28: 0 contributions2026-07-29: 0 contributions2026-07-30: 0 contributions2026-07-31: 6 contributions2026-08-01: 1 contribution2026-08-02: 0 contributions2026-08-03: 0 contributions2026-08-04: 0 contributions2026-08-05: 0 contributions2026-08-06: 0 contributions2026-08-07: 0 contributions2026-08-08: 0 contributions2026-08-09: 0 contributions2026-08-10: 0 contributions2026-08-11: 0 contributions2026-08-12: 0 contributions2026-08-13: 0 contributions2026-08-14: 0 contributions2026-08-15: 0 contributions2026-08-16: 0 contributions2026-08-17: 0 contributions2026-08-18: 0 contributions2026-08-19: 0 contributions2026-08-20: 0 contributions2026-08-21: 0 contributions2026-08-22: 0 contributions2026-08-23: 0 contributions2026-08-24: 0 contributions2026-08-25: 0 contributions2026-08-26: 0 contributions2026-08-27: 3 contributions2026-08-28: 0 contributions2026-08-29: 1 contribution2026-08-30: 1 contribution2026-08-31: 0 contributions2026-09-01: 0 contributions2026-09-02: 0 contributions2026-09-03: 0 contributions2026-09-04: 0 contributions2026-09-05: 0 contributions2026-09-06: 0 contributions2026-09-07: 0 contributions2026-09-08: 0 contributions2026-09-09: 0 contributions2026-09-10: 0 contributions2026-09-11: 0 contributions2026-09-12: 0 contributions2026-09-13: 0 contributions2026-09-14: 0 contributions2026-09-15: 0 contributions2026-09-16: 0 contributions2026-09-17: 0 contributions2026-09-18: 0 contributions2026-09-19: 0 contributions2026-09-20: 1 contribution2026-09-21: 0 contributions2026-09-22: 0 contributions2026-09-23: 0 contributions2026-09-24: 0 contributions2026-09-25: 0 contributions2026-09-26: 0 contributions2026-09-27: 0 contributions2026-09-28: 0 contributions2026-09-29: 0 contributions2026-09-30: 0 contributions2026-10-01: 0 contributions2026-10-02: 0 contributions2026-10-03: 0 contributions2026-10-04: 0 contributions2026-10-05: 0 contributions2026-10-06: 0 contributions2026-10-07: 0 contributions2026-10-08: 0 contributions2026-10-09: 1 contribution2026-10-10: 0 contributions2026-10-11: 0 contributions2026-10-12: 0 contributions2026-10-13: 0 contributions2026-10-14: 0 contributions2026-10-15: 0 contributions

69 contributions in the last year · GokulArumugam + gokulguugu · synced · refreshes every 6 hours

Writing it down before I forget.

On Medium
Visit the blog archive

06 / Not everything needs a dashboard

off the clock

(05)
Headphones
On repeat

Uptown Funk

Mark Ronson ft. Bruno Mars

Ayrton Senna, Alain Prost, Nigel Mansell, and Nelson Piquet sitting together at the track

F1

race sundays are sacred.

Stephen Curry, Kevin Durant, and LeBron James in Team USA jerseys

NBA

6 AM tip-offs. suddenly I’m a morning person.

Auto ride across Bengaluru

Adventure

auto across blr, no destination.

07 / Start a conversation

Talk data to me.
Or Formula 1 / basketball.

Got something interesting to build, a pipeline acting up, or a questionable F1 take? I’m listening.

gokularumugam64@gmail.com Or find me on LinkedIn