Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MediaMarkt Logo

⚑ EU Energy Analytics Pipeline for Xebia

A demo project to showcase my Analytics Engineering skills for the Xebia Analytics Engineer position.


🎯 Project Purpose

This project demonstrates my ability to design, build, and document a modern data pipeline from raw open data to clean analytics dashboards.
It’s a hands-on case study to highlight the skills I want to bring to Xebia:

  • πŸ› οΈ Engineering β†’ Python, Docker, dbt, Postgres, Metabase
  • πŸ“Š Analytics β†’ data modeling, testing, visualization
  • ☁️ Cloud mindset β†’ reproducible infra, containerization
  • βœ… Governance & quality β†’ dbt tests, lineage
  • πŸš€ Consulting value β†’ turning raw data into actionable insights

πŸ—ΊοΈ Data Flow Overview

flowchart LR
    A[Raw OPSD CSV] -->|Python ingestion| B[(Postgres: raw schema)]
    B -->|dbt staging| C[stg_opsd_timeseries]
    C -->|dbt transform| D[fct_energy_timeseries_long]
    D --> E[dim_country]
    D --> F[dim_metric]
    E --> G[fact_energy_measure]
    F --> G
    G -->|BI| H[Metabase Dashboards]
Loading

πŸ—οΈ Pipeline Architecture

πŸ”Ή Ingestion (Python)

  • Download hourly European energy data from OPSD.
  • Store as raw CSV and load into Postgres (raw.opsd_timeseries_raw).

πŸ”Ή Storage (Postgres in Docker)

  • Containerized Postgres DB for local dev.
  • Raw schema preserved for reproducibility.

πŸ”Ή Transformation (dbt)

  • Staging view β†’ clean, lowercase column names.
  • Long fact table β†’ reshaped wide β†’ long (utc_timestamp, metric, value, country).
  • Dimensions β†’ dim_country, dim_metric.
  • Fact table β†’ fact_energy_measure (joins facts with dimensions).

πŸ”Ή Quality & Docs (dbt tests + docs)

  • βœ… Tests: not_null, unique, accepted_values.
  • πŸ“– dbt docs lineage graph to visualize data flow.

πŸ”Ή Visualization (Metabase)

  • Line charts, area charts, KPI cards, and maps.
  • Interactive dashboard: EU Energy Analytics.

πŸ“Š Example Dashboards

πŸ”Έ Energy Load Over Time

Line chart of electricity demand (load_actual).

πŸ”Έ Renewable vs Non-Renewable Energy for NL and DE Over Time.

Stacked area chart: Netherlands, Germany.

πŸ”Έ Average Load by Country on a Pie Chart.

Donut chart showing proportion of load per country.


πŸš€ How to Run

1. Clone repo

git clone https://github.com/shahsuvarli/xebia-eu-energy-project/.git
cd xebia-eu-energy-project

2. Start everything

make start

This will:

  • 🐘 Start Postgres in Docker
  • πŸ“Š Start Metabase (localhost:3000)
  • πŸ”§ Activate Python venv + env vars
  • πŸ“– Serve dbt docs (localhost:8080)

3. Ingest data

source .venv/bin/activate
export $(grep -v '^#' .env | xargs)
python src/ingestion/ingest_opsd_timeseries.py

4. Build models & tests

make dbt-run

5. Open dashboards


🧰 Tools Used

  • 🐍 Python (pandas, SQLAlchemy)
  • 🐘 Postgres (Dockerized)
  • πŸ“¦ dbt (transformations, tests, lineage)
  • πŸ“Š Metabase (BI dashboards)
  • 🐳 Docker (infra)
  • βš™οΈ Makefile (automation)

✨ Why This Project for Xebia?

  • βœ… End-to-end pipeline: from raw CSV to star schema & dashboards.
  • βœ… Analytics Engineering mindset: data modeling, testing, governance.
  • βœ… Consulting flavor: clear story, business-friendly outputs.
  • βœ… Cloud-native thinking: containerized, reproducible setup.

This project is not just about dataβ€”it’s about showing how I think like an Analytics Engineer at Xebia: pragmatic, hands-on, quality-driven, and focused on delivering value fast.


πŸ™‹ About Me

I’m Elvin Shahsuvarli, an Analytics Engineer professional based in Budapest.

  • πŸ“ˆ 7+ years in data (analytics, governance, engineering).
  • 🏦 Experience at Morgan Stanley (data lineage, automation, GenAI for risk).
  • πŸ’‘ Passion for building scalable, reliable data systems that empower teams.

πŸ‘‰ This project is my way of saying: I’m ready to bring my skills and energy to Xebia Amsterdam as your next Analytics Engineer.


πŸ“¬ Contact

About

πŸš€ End-to-end EU Energy Analytics pipeline built with Python, Docker, dbt, and Metabase to showcase my Analytics Engineering skills for the Xebia

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages