arthurblattman.dev
← Selected work
Case Study · Principal Engineer, solo · A single GCP project

GCP Data Platform

The entire company's analytics, from 20+ source systems to live dashboards on a 10-minute loop, designed and operated by one person.

The full data platform for a multi-channel retailer, owned end to end: ingestion, warehouse, orchestration, and serving.

Built and operated by one engineerBigQuery + dbtDagsterPub/Sub + Cloud Run20+ source systemsA single GCP project
400+
dbt models over 225 declared sources
20+
source systems feeding the warehouse
10 min
from POS webhook to dashboard
6+
departments on shared, trusted definitions
01

Context & Goal

A multi-channel retailer: dozens of corporate and franchise stores, three e-commerce storefronts, and Amazon channels. The goal was company-wide analytics and operational data products, not just BI, on fast, cost-controlled models that multiple teams can trust.

The entire platform runs in a single GCP project and is designed, built, and operated by one engineer.

02

The pipeline, end to end

From a webhook at a register to a number on a dashboard, on a 10-minute intraday loop.

01
Sources

Dozens of corporate and franchise stores, three e-commerce storefronts, Amazon channels, and the ERP.

20+ systems
02
Event-driven ingestion

16 Cloud Functions plus Cloud Run services land POS, e-commerce, and body-scanner webhooks, with Pub/Sub fan-out to downstream consumers.

seconds
03
BigQuery

Typed staging layers, partitioned and clustered marts, idempotent loads.

raw to typed
04
dbt + Dagster

400+ models over 225 declared sources, orchestrated on 22 cron schedules: a nightly build chain plus 10-minute intraday pipelines.

22 schedules
05
Serving & reverse ETL

Syncs to a Cloud SQL Postgres replica powering the ops platform, plus Klaviyo events, a Merchant Center feed, closeout emails, and Slack alerting.

every 10 min
03

Results

  • Cut BigQuery infrastructure costs roughly 40% through partitioning, clustering, and query-pattern optimization.
  • Live sales for every store on a 10-minute loop, from POS webhook to dashboard. Intraday revenue used to wait for the next day's ERP sync.
  • Unified data access for 6+ departments on consistent, trusted metric definitions.
  • Consolidated a patchwork of managed ELT onto Dagster-owned ingestion. Airbyte retired, Fivetran down to a single connector, every pipeline under one orchestrator.
04

What I built

Ingestion, warehouse, orchestration, and every rail that serves data back out.

BigQuery warehouse

400+ dbt models over 225 declared sources: typed staging layers, partitioned and clustered marts, idempotent loads.

Dagster orchestration

Self-hosted with Docker on a GCE VM: 22 cron schedules, ephemeral run containers, a daily overnight build chain, and 10-minute intraday sales pipelines.

Event-driven ingestion

16 Cloud Functions plus Cloud Run services landing POS, e-commerce, and body-scanner webhooks in BigQuery, with Pub/Sub fan-out to downstream consumers.

Serving syncs

From BigQuery to a Cloud SQL Postgres replica that powers the Internal Ops Platform, the company's BI layer.

Reverse ETL rails

Klaviyo purchase and profile events, a Google Merchant Center local-inventory feed, nightly revenue-accurate store closeout emails, and Slack alerting for discount fraud and payment anomalies.

An AI access layer

MCP servers exposing the warehouse and ERP to LLM agents, plus an LLM-maintained ops wiki that re-ingests documentation from every repo's CI.

05

Who It Serves

Every department below reads from the same models and the same metric definitions.

Executives Finance Marketing Retail Operations Accounting Sales Supply Chain
06

Architecture in detail

Hover a node to trace its connections; click a node for details. The diagram scrolls sideways on smaller screens.

Sources
Ingestion
Events & Warehouse
Orchestration
Serving & Activation
Webhook / HTTP Pub/Sub events Orchestrated batch Managed ELT Reverse ETL Direct reads