Open to Data Engineer roles · US

Bhavya Upadhyay

Data Engineer

I build end-to-end data and ML systems, and I'm honest about how they're built. One year shipping AWS ETL at scale at TCS (Air Canada). MS Data Science @ UC Irvine.

records/month in production ETL
10M+
TCS · Air Canada
pipeline SLA compliance
99.9%
incident triage −35%
S&P 500 companies modeled end-to-end
498
EDGAR-X
Data Science @ UC Irvine
MS
full merit scholarship

Two systems, built and tested end-to-end

Each is a real pipeline over messy source data, with the evaluation reported honestly. Deployment status is always stated plainly — nothing is dressed up as running in production when it isn't.

Flagship 1Case study

EDGAR-X

Multi-Agent Financial Intelligence System

A 7-layer system that ingests real SEC EDGAR and FRED data for 498 S&P 500 companies into Snowflake, transforms it through a tested dbt pipeline, trains a revenue-direction ranking model, and runs source-grounded LLM agents whose research memos are scored by an automated judge.

Problem & constraint

Answer one deliberately modest question honestly: given everything knowable on the day a company files its 10-K, will next year's revenue be higher? On real, messy financial data, at zero ongoing cost.

Architecture

EDGAR-X data flow: SEC EDGAR filings/XBRL and FRED macro data are backfilled into Snowflake Raw, transformed by dbt with 75 tests into staging and marts, which feed both an XGBoost ranked screen (AUC 0.726) and source-grounded LLM agents whose memos are scored by an LLM-as-judge; results surface on a live Streamlit dashboard.
SEC EDGAR
filings + XBRL
FRED
macro data
Snowflake
Raw
Staging → Marts
XGBoost ranked screen
AUC 0.726
Live Streamlit
dashboard
LLM agents
grounded memos
LLM-as-judge
evaluation

Challenges & solutions

  • Real financial-data landmines, caught by tests

    XBRL tag migrations, silent API pagination truncation, REIT accounting quirks, and filer sign errors were each caught by an automated dbt data test. The suite caught four real extraction bugs.

  • Margins above 1.0 — scoped out, not papered over

    Financials (~70 companies) produced computed margins above 1.0 because bank and insurer revenue isn't captured by the XBRL revenue concepts used. I excluded them and scoped every claim to the S&P 500 ex-Financials rather than ship an indefensible number.

  • Hallucination risk, designed out

    Agents use code-supplied provenance, so the model cannot fabricate a citation, and every memo is independently scored by an LLM judge.

Results

0.726
Test ROC-AUC vs 0.500 baseline — framed as a ranked screen, not a classifier (83% positive base rate makes raw accuracy meaningless)
498 / 503
current S&P 500 constituents loaded — 7,863 XBRL rows, 4,758 parsed 10-Ks, 11,583 FRED observations, 6,234 labeled training rows
39 / 29 / 16 / 16
SHAP attribution % — fundamentals / macro regime / sector / filing language
~4.6–5 / 5
Agent memos scored by the LLM judge across 5 companies, 3 sectors · 124 tests passing, 93% coverage

Tech stack

PythonSEC EDGAR + FRED APIsKafka + AvroAirflowSnowflakedbt (75 tests)XGBoost + Optuna + SHAPAnthropic APIStreamlitTerraform + KubernetesGitHub Actions CI

Deployment status

Layers 1–6 including the live dashboard are built and tested. The Kafka-to-Snowflake sink is not yet wired, the FastAPI serving layer is not built, and the Layer 7 cloud IaC is deployment-ready but not deployed (running it would incur AWS cost). Treat the stack as built-and-tested with deployment status plain — not running in production.

Flagship 2Case study

Flightline

End-to-End Flight Data Pipeline

A production-patterned US flight on-time data pipeline: BTS batch ingestion into Snowflake, transformed with dbt (26/26 tests), served on a live Streamlit dashboard, orchestrated with Airflow and containerized with Docker, plus a scaffolded Kafka streaming path for live OpenSky aircraft positions.

Problem & constraint

Build a re-runnable, test-gated pipeline over messy government CSVs (BTS files ship ~110 columns and occasionally re-publish corrected rows) that never duplicates data and never lets bad data reach the marts.

Architecture

Flightline data flow. Batch path (live): BTS TranStats → Airflow DAG → Snowflake RAW → dbt staging → marts → Streamlit. Streaming path (scaffolded): OpenSky via OAuth2 → Kafka → consumer → Snowflake RAW.
Batch · live
BTS TranStats
Airflow DAG
Snowflake RAW
dbt staging → marts
Streamlit
Streaming · scaffolded
OpenSky (OAuth2)
Kafka
consumer
Snowflake RAW

Challenges & solutions

  • Idempotent loads

    Delete the (year, month) partition before COPY INTO, so re-runs and backfills never duplicate rows.

  • Schema-drift tolerance

    MATCH_BY_COLUMN_NAME on COPY with a target table that declares only the 25 columns used, so the pipeline survives BTS adding or reordering columns.

  • Test gate inside the DAG

    dbt build runs in the DAG — a failing test fails the run, so bad data never silently reaches the marts.

  • Dedup for re-published rows

    Surrogate key plus row_number() dedup in staging, because BTS re-publishes corrected rows for the same flight leg.

  • Modern auth, secrets at runtime

    RSA key-pair auth (Snowflake deprecated single-factor password auth in late 2025); the private key loads at runtime and is never stored in config.

  • Kafka for decoupling, not buzz

    Kafka makes the poller and loader independent processes — decoupling, not a throughput claim bolted on.

Results

26 / 26
dbt tests passing, including two custom singular tests encoding real business rules
2
business-rule tests: no negative distance; and 15+ min late flights must reconcile BTS delay-cause buckets to arrival delay within 5 min
CI
sqlfluff lint + dbt build on an ephemeral schema, on every push

Tech stack

Apache Airflow 2.10Snowflake (RSA key-pair auth)dbt-snowflake 1.8 + dbt_utilsStreamlitDocker + docker-composeGitHub Actions (sqlfluff + dbt build)OpenSky REST + Kafka (Phase 2)

Build status, live

Real GitHub Actions results for my CI-gated repos, fetched hourly — reported honestly, red and all. Not a badge I drew.

build statusall systems green
  • EDGAR-X

    124 tests · 93% coverage · 75 dbt tests

    passing
  • Flightline

    26 / 26 dbt tests · CI on every push

    passing

Honest systems, end to end

I'm a data engineer and ML practitioner who builds across the whole stack: streaming and batch ingestion, tested transformation pipelines, ML models with honest evaluation, and multi-agent LLM systems with source-grounded output.

I grew up in New Delhi and moved to the US in 2025 to do my Master of Data Science at UC Irvine — a goal I'd held since the sixth grade. Before that, at TCS on the Air Canada account, I engineered AWS Lambda ETL pipelines processing 10M+ flight and booking records a month, cut data latency by roughly 50%, and raised pipeline SLA compliance to 99.9%.

Today I'm finishing my MS on a full merit scholarship while building retention-risk models and KPI dashboards across 20+ graduate programs as a Data Analyst at UCI's Graduate Division.

Bhavya Upadhyay

Pipelines that survive messy data

Idempotent loads, schema-drift tolerance, and test gates so bad data never reaches the marts.

ML reported with its limits attached

Time-based splits, the right metric for the base rate, and SHAP attribution — not a vanity accuracy number.

LLM claims you can trace to a source

Code-supplied provenance so a model can't fabricate a citation, plus an independent LLM judge on every output.

Where I've shipped

  1. Data Analyst

    Sep 2025 – Present

    University of California, Irvine — Graduate Division

    • Automated data integration across 5+ institutional systems (enrollment, funding, admissions) with Python and SQL ETL, removing ~40 hours/month of manual reconciliation and resolving duplicate and mismatched records.
    • Built retention-risk and graduation-forecasting models across 20+ graduate programs to inform funding and resource-planning decisions.
    • Designed 8+ Tableau and Python KPI dashboards for cohort analysis and retention tracking, cutting reporting turnaround by ~30%.
  2. Data Engineer(promoted from Assistant Systems Engineer)

    Jun 2024 – Jul 2025

    Tata Consultancy Services — Air Canada

    • Engineered Python ETL pipelines on AWS Lambda processing 10M+ flight and booking records monthly, cutting data latency ~50% and enabling near-real-time operational analytics.
    • Optimized 50+ Athena SQL queries behind enterprise reporting, reducing average query runtime ~40% and speeding delivery to 10+ downstream teams.
    • Built 12+ Grafana dashboards on AWS CloudWatch with automated anomaly alerting, cutting incident triage time ~35% and improving pipeline SLA compliance to 99.9%.

Education

University of California, Irvine

Expected Dec 2026

Master of Data Science

Full merit scholarship (fee remission + stipend)

SRM Institute of Science and Technology, Chennai

Sep 2020 – May 2024

B.Tech, Electronics & Communication Engineering

Data Science specialization

Tools I reach for

Languages

PythonSQLRBash

Data Engineering & Cloud

AWS (Lambda, Glue, Athena, S3, CloudWatch)AirflowdbtSnowflakeKafkaETL pipeline designDockerFastAPIStreamlitGitTerraformKubernetes

ML & AI

PyTorchscikit-learnXGBoostLightGBMHugging FaceModel evaluationAblation studiesHyperparameter tuning

NLP & LLMs

LangChainRAG pipelinesSentence TransformersPrompt engineeringSemantic searchVector databases (Milvus)

Data & Analytics

PandasNumPyPostgreSQLSupabaseTableauPower BIMatplotlibA/B testingStatistical modelingCohort analysis

Looking for a Data Engineer who'll tell you how the pipeline actually works?

I'm open to Data Engineer roles in the US. The fastest way to a yes is the résumé and the EDGAR-X case study — happy to walk through either on a call.

Irvine, CA