Senior Data Analyst at Uber Eats, Bangalore

I find the number that’s wrong before anyone makes a decision on it.

I build the checks, alerts and dashboards that make data trustworthy enough to act on. I’ve been doing it since 2019, across automotive, manufacturing and food delivery.

A growing metric with one value outside its expected range A monthly line rises steadily inside a shaded band showing its rolling baseline. One month drops well below the band and is flagged. Outside its 6-month baseline. Worth a look.
Illustrative series. The shaded band is the expected range; anything outside it gets a flag and a reason.
Countries in scope
24
Delivery platforms tracked
20+
Faster heaviest pages after a rebuild I led
~65%
Lines of production analytics code, shipped with AI coding agents
~20k

One habit, six places

Every role has come back to the same question: can we trust this number? Here’s how that started, and where it led.

  1. Tata Motors Apprentice, product marketing analytics

    My first job was cleaning up a customer-facing product catalogue. The data was wrong in ways customers noticed, so I worked with the content team to define what “correct” meant and built a monitor in Excel to keep it that way.

    • 24% more accurate product metadata
    • 90% better e-brochure data quality
  2. Berlin Master’s in Technology Management, SRH University

    I moved to Germany to study AI, data analysis and programming in R and Python, and graduated with a 1.9.

  3. ZF Group Data analyst

    I built Power BI dashboards for sales, product performance and demand. I also ran aftermarket pricing analysis and explained it to commercial teams in plain terms.

    • 25% sales growth in six months, which my pricing work contributed to
  4. SRH University Data analytics assistant

    I replaced manual cohort analysis with customer-segmentation models in scikit-learn, and turned the results into Power BI views researchers could act on.

  5. Tesla Gigafactory Berlin Digital solution expert

    Production teams were reviewing spreadsheets. I connected separate production systems with SQL Server and SSIS, then gave the line shared dashboards that updated continuously.

    • 15+ Tableau dashboards used for day-to-day line decisions
  6. Uber Eats Senior data analyst, Bangalore

    I own competitive market intelligence analytics across 24 countries. Operations and strategy teams make positioning decisions on these metrics, so I make sure every number is defined, validated and watched.

    • 24 countries
    • 20+ delivery platforms
    • 213 warehouse tables under observation

Case files

Four systems I built at Uber, written up the way I’d write up an incident. Internal data stays private; the method doesn’t need it.

Every flag comes with a reason Replaced manual monthly metric reviews with statistically routed, explainable anomaly flags.
Signal
Monthly metric checks relied on people inspecting dashboards and on fixed thresholds, which stop working in a market that keeps growing.
Investigation
A steady series and a trending series need different tests. One rule for both either misses real breaks or cries wolf.
Fix
An Augmented Dickey-Fuller test sorts each series first, then routes it to z-score, median-absolute-deviation or percentage-change rules. Each result is one flag with a plain-English reason.
Impact
Validation is repeatable and auditable, and results publish straight to the people who use them.

Python, pandas, statsmodels, Presto, Google Sheets API

Same-day alerts instead of month-end surprises Data issues now reach the team on the day data lands, not after reports are wrong.
Signal
When ingestion broke, nobody knew until month-end reporting already looked wrong.
Investigation
Breaks showed up as sudden drops in counts against each source’s own history, so a per-source baseline was the right yardstick.
Fix
Anomaly SQL across 15+ ingestion tables compares counts with a 6-month rolling mean and standard deviation, sorts drops by severity, suppresses repeats and posts Slack alerts with trend context and root-cause links.
Impact
Detection moved from month-end to the day of ingestion.

SQL (Presto), pandas, Slack API, Hive

Rebuilding a dashboard estate from Tableau to Flask Heaviest pages load about 65% faster, with data-quality checks and sign-off the old workbook couldn’t support.
Signal
A nine-dashboard Tableau workbook was slow, hard to extend, and had no place for the validation workflow analysts needed.
Investigation
Most of the slowness came from live warehouse queries on every page view, and the business logic was locked inside 55 calculated fields.
Fix
I rebuilt every calculation as a tested pandas metrics layer behind Flask, fed by 13 scheduled Presto extracts with caching. I then added a 14-check data-quality monitor and an 8-state analyst sign-off workflow.
Impact
About 65% faster on the heaviest pages, no live warehouse queries when someone opens a page, and sign-off that used to live in loose spreadsheets.

Flask, pandas, Plotly, Presto, SQLite

Finding which pipeline stage broke the number Counts traced through every stage across 213 warehouse tables, so a break points to one stage.
Signal
When a number moved, nobody could say which stage of the pipeline caused it.
Investigation
Distinct counts should be conserved, or change predictably, from one stage to the next. Wherever that stops being true is where the break is.
Fix
A dashboard follows counts through ingestion, deduplication, matching, classification and fact tables, with stage-to-stage checks and banded thresholds.
Impact
Breaks are localised to a single stage, backed by 27 unit tests.

Flask, pandas, Plotly, custom SVG, Presto, pytest

How I work

The same five steps whether it’s a one-off question or a production system.

  1. Pin down the question

    What decision will this number change, and for whom?

  2. Define the metric

    Write down exactly what counts, what doesn’t, and why, before any SQL.

  3. Build it

    SQL and Python, drafted with AI coding agents from a written spec.

  4. Prove it

    Reconcile against sources, test edge cases, and log every decision.

  5. Watch it

    Ship it with its own checks and alerts, so I hear about problems first.

Where AI fits

I use Cursor and Claude every day to write first drafts of SQL and pandas from a written spec, and to speed up root-cause digging. A spec document, a dated decision log and unit tests decide what actually ships. That’s how one analyst can run about 20,000 lines of production analytics code.

Projects on public data

Independent work I’m building in public, end to end and code included. These are in progress; links go up as each one ships.

  • In progress

    Bangalore food delivery landscape

    Which neighbourhoods are over- or under-served, and how price relates to rating, using public restaurant listings.

    SQL, dbt, DuckDB, Python

  • In progress

    Free-delivery threshold experiment

    Designing and reading an A/B test on simulated orders: sample size, guardrail metrics, and a clear ship-or-don’t call.

    Python, statsmodels, SQL

  • In progress

    Data checks before you trust a table

    A small open-source Python toolkit for the checks I run first: duplicates, gaps, drift and reconciliation.

    Python, pandas, pytest

Tools I use

Query and model
Advanced SQL (Presto, Trino, Hive, SQL Server), Python, pandas, NumPy, statsmodels, scikit-learn
Show
Tableau, Power BI, Plotly, Flask apps, Excel
Trust
Anomaly detection, reconciliation, monitoring and alerting, pytest
Work with people
Metric definitions, root-cause analysis, self-serve analytics, AI coding agents (Cursor, Claude)

Let’s talk

I’m open to senior analyst roles in India and across Europe, including relocation. I speak English and Hindi, and German at A2.