Syntic
← All skills
EngineeringFreeCommunityv1.0.0

senior-data-engineer

Use when designing data architectures, building ETL/ELT pipelines, optimizing data workflows, implementing data governance, or troubleshooting data systems.

About this skill

Use when designing data architectures, building ETL/ELT pipelines, optimizing data workflows, implementing data governance, or troubleshooting data systems.

SKILL.md

senior-data-engineer.SKILL.md

Place it in your Syntic skills folder. For Syntic Code, install in your local skills directory, review the contents and run it in a controlled environment first.

SKILL.md
---
name: senior-data-engineer
description: Use when designing data architectures, building ETL/ELT pipelines, optimizing data workflows, implementing data governance, or troubleshooting data systems.
category: Engineering
version: 1.0.0
tools: []
---

# Senior Data Engineer

Production-grade data engineering for scalable, reliable data systems.

## Quick Start

Common tasks:
- Generate pipeline orchestration config for Airflow/Prefect/Dagster
- Validate data quality using schemas and checks (freshness, completeness, uniqueness)
- Analyze and optimize ETL performance bottlenecks

## Architecture Decision Framework

### Batch vs Streaming

| Criteria | Batch | Streaming |
|----------|-------|-----------|
| **Latency** | Hours to days | Seconds to minutes |
| **Volume** | Large historical datasets | Continuous event streams |
| **Complexity** | Complex transformations, ML | Simple aggregations, filtering |
| **Cost** | More cost-effective | Higher infrastructure |
| **Error handling** | Easier reprocessing | Requires careful design |

**Decision tree:**
- Real-time insight required? → Use streaming; else → Use batch
- If streaming: Exactly-once semantics needed? → Kafka + Flink/Spark Structured Streaming; else → Kafka + consumer groups
- If batch: Daily volume > 1TB? → Spark/Databricks; else → dbt + warehouse compute

### Lambda vs Kappa Architecture

| Aspect | Lambda | Kappa |
|--------|--------|-------|
| **Complexity** | Two codebases (batch + stream) | Single codebase |
| **Maintenance** | Higher (sync logic) | Lower |
| **Reprocessing** | Native batch layer | Replay from source |
| **Use case** | ML training + real-time serving | Pure event-driven |

**Choose Lambda:** ML models need historical training data, or batch transformations not feasible in streaming
**Choose Kappa:** Event-sourced architecture, all processing expressible as stream operations

### Data Warehouse vs Data Lakehouse

| Feature | Warehouse | Lakehouse |
|---------|-----------|----------|
| **Best for** | BI, SQL analytics | ML, unstructured data |
| **Storage cost** | Higher (proprietary format) | Lower (open formats) |
| **Flexibility** | Schema-on-write | Schema-on-read |
| **Performance** | Excellent for SQL | Good, improving |
| **Ecosystem** | Mature BI tools | Growing ML tooling |

## Tech Stack

**Languages:** Python, SQL, Scala
**Orchestration:** Airflow, Prefect, Dagster
**Transformation:** dbt, Spark, Flink
**Streaming:** Kafka, Kinesis, Pub/Sub
**Storage:** S3, GCS, Delta Lake, Iceberg
**Warehouses:** Snowflake, BigQuery, Redshift, Databricks
**Quality:** Great Expectations, dbt tests, Monte Carlo
**Monitoring:** Prometheus, Grafana, Datadog

## Workflows

**Pipeline design**: Choose batch vs streaming, identify data sources/destinations, design transformation steps, configure error handling and retries

**Data modeling**: Dimensional modeling (Star/Snowflake schemas), Slowly Changing Dimensions (SCD Types 1-6), Data Vault patterns, dbt best practices, partitioning and clustering strategy

**Data quality**: Implement test frameworks, create data contracts with schema validation, build CI/CD for pipelines, set up observability and lineage tracking, design incident response

**Performance tuning**: Profile job execution, identify bottlenecks, optimize Spark job configuration, tune warehouse queries, reduce data movement

Install

Syntic App

  1. 1Create a dedicated folder for this skill in your local skills library.
  2. 2Place SKILL.md into that folder.
  3. 3Restart Syntic and invoke this skill on matching tasks.

Syntic Code (CLI)

  1. 1Save SKILL.md in your local Syntic Code skills directory.
  2. 2Keep related files in the same skill folder.
  3. 3Run in a safe environment and validate outputs.