How to Use

Try in Chat

Quick

Paste into any AI chat for instant expertise. Works in one conversation -- no setup needed.

Preview prompt
You are an expert Senior Data Engineer (Engineering domain).

Data engineering for batch and streaming pipelines with Airflow, dbt, Spark, and Kafka. Use when designing data architectures, building pipelines, adding data-quality checks, optimizing ETL/ELT, or troubleshooting pipeline failures.

Generate pipeline configurations (Airflow, Prefect, Dagster), validate data quality with profiling and anomaly detection, and optimize SQL/Spark performance with actionable recommendations. - **Pipeline generation** — Airflow/Prefect/Dagster DAG code for batch and incremental loads, with DAG validat

## Your Key Capabilities
- Validating Against an Inferred Schema
- Non-Idempotent Loads
- Relative Start Dates in DAGs

## How to Help
When the user asks for help in this domain:
1. Ask clarifying questions to understand their context
2. Apply the relevant framework or workflow from your expertise
3. Provide actionable, specific output (not generic advice)
4. Offer concrete templates, checklists, or analysis

For the full skill with Python tools and references, visit:
https://github.com/borghei/Claude-Skills/tree/main/senior-data-engineer

---
Start by asking the user what they need help with.
# Add to your project
cs install engineering/senior-data-engineer ./

# Or copy directly
git clone https://github.com/borghei/Claude-Skills.git
cp -r Claude-Skills/engineering/senior-data-engineer your-project/
# The skill is available in your Codex workspace at:
.codex/skills/senior-data-engineer/

# Reference the SKILL.md in your Codex instructions
# or copy it into your project:
cp -r .codex/skills/senior-data-engineer your-project/
# The skill is available in your Gemini CLI workspace at:
.gemini/skills/senior-data-engineer/

# Reference the SKILL.md in your Gemini instructions
# or copy it into your project:
cp -r .gemini/skills/senior-data-engineer your-project/
# Add to your .cursorrules or workspace settings:
# Reference: engineering/senior-data-engineer/SKILL.md

# Or copy the skill folder into your project:
git clone https://github.com/borghei/Claude-Skills.git
cp -r Claude-Skills/engineering/senior-data-engineer your-project/
# Clone and copy
git clone https://github.com/borghei/Claude-Skills.git
cp -r Claude-Skills/engineering/senior-data-engineer your-project/

# Or download just this skill
curl -sL https://github.com/borghei/Claude-Skills/archive/main.tar.gz | tar xz --strip=1 Claude-Skills-main/engineering/senior-data-engineer

Run Python Tools

python engineering/senior-data-engineer/scripts/tool_name.py --help

Quick Start

# Generate an Airflow DAG for incremental PostgreSQL -> Snowflake. Targets Airflow 3 (`airflow.sdk`,
# current 3.4) with import fallbacks for 2.7+; --output creates missing parent folders
python scripts/pipeline_orchestrator.py generate \
  --type airflow --source postgres --destination snowflake \
  --tables orders,customers --mode incremental --schedule "0 5 * * *" --output dags/orders_etl.py

# Validate data against a schema (sample schema and data ship in assets/)
python scripts/data_quality_validator.py validate assets/sample_orders_flawed.csv \
  --schema assets/sample_schema.json --detect-anomalies

# Draft a schema from existing data, then tighten it by hand
python scripts/data_quality_validator.py schema assets/sample_orders_clean.csv --output schema.json

# Review a SQL query (static analysis; read the warehouse's query profile for ground truth)
python scripts/etl_performance_optimizer.py analyze-sql assets/sample_query.sql --warehouse snowflake
Schema file format (`--schema`): a JSON object with `name`, `version`, optional `primary_key` (list of columns), `row_count_min`/`row_count_max`, and `columns`, each with `name`, `type` (`string`, `integer`, `float`, `boolean`, `date`, `datetime`, `email`, `uuid`), and optional `nullable`, `unique`, `min_value`, `max_value`, `min_length`, `max_length`, `pattern` (regex) and `allowed_values`. See `assets/sample_schema.json`. A schema generated by the `schema` subcommand only records types and observed ranges, so validating the same data against it finds nothing by construction; add the real business rules before using it as a gate. The report's check counts list failed checks, so a clean run shows 0. Exit codes: `0` ok; `1` `validate`/`contract` found error-severity failures, or `pipeline_orchestrator.py validate` found issues; `2` bad input (missing file, invalid JSON or schema). `assets/sample_orders_clean.csv` validates clean (exit 0); `assets/sample_orders_flawed.csv` has a duplicate key, a null and a malformed email, a negative amount, an unknown status and a bad date (exit 1).

Related Skills in Engineering

View on GitHub