data-engineering
Builds and operates data pipelines — ingestion, transformation, orchestration, quality testing, and reliability of data delivery. Use this to design or debug a pipeline, decide batch versus streaming, add data quality checks, handle late or duplicate data, or work out why a dashb
Install
npx skills add https://github.com/cbrock84/headcount/tree/main/plugins/data-analytics/skills/data-engineering
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install cbrock84-headcount@llmmart
git clone https://github.com/cbrock84/headcount.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole cbrock84/headcount collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Data engineering
Pipelines are production systems whose failures are quiet. A broken service pages someone; a broken pipeline produces plausible numbers that people act on for a week.
This is movement and transformation. Schema and semantics belong to data-analytics:data-modeling,
policy and stewardship to data-analytics:data-governance.
Land raw, transform downstream
Keep an immutable copy of source data exactly as received. Transformation logic will be wrong at some point, and raw data is what lets you reprocess rather than re-request from a source that may no longer have it.
Business logic belongs downstream where it is visible and testable, not buried in ingestion. The
exception is transformation required for privacy — minimization, pseudonymization, dropping fields
you have no basis to hold — which belongs at ingest precisely because raw storage is what the
obligation attaches to. See legal-risk:privacy-and-data-protection.
Idempotence is the property that matters
Every pipeline will be re-run: after a failure, after a fix, after a late-arriving correction. A re-run that double-counts is worse than a failure, because it produces a wrong answer silently.
Design for exactly-once effect at the destination — deterministic keys, merges rather than blind appends, partitioned overwrites. Then re-running is safe and recovery stops being frightening.
Late, duplicate and out-of-order data
Real sources deliver all three. Decide explicitly, per pipeline: how late is an event still accepted, what happens to one arriving after its window closed, and how duplicates are identified.
Distinguish event time from processing time and partition on event time. Aggregations built on arrival time silently reassign yesterday's activity to today whenever a delivery is delayed.
Test data, not just code
Unit tests on transformation logic catch the wrong class of failure. Most damage comes from data that is valid but wrong. Assert on the data itself, in the pipeline, and fail loudly:
- Row counts within an expected range, not merely non-zero.
- Uniqueness of keys, and referential integrity across joins.
- Freshness — the newest record is recent enough to be meaningful.
- Distribution shifts in important columns.
A silent failure is worse than a loud one. Prefer stopping the pipeline to publishing data you do not trust.
Sources
references/sources.md in this skill lists the outside authorities that settle the questions
here — what each one is authoritative for, and what you may do with it. Check them before
answering on anything they cover, and cite what you used. Most are free to read and not free
to reproduce; the use note on each is binding.
Tooling
Warehouses and lakehouses: Snowflake, BigQuery, Databricks, Redshift, and Postgres or DuckDB at small scale, and similar.
Ingestion: Fivetran, Airbyte, Stitch, and similar. Transformation: dbt, SQLMesh. Orchestration: Airflow, Dagster, Prefect, and similar.
Buy ingestion and build transformation. Connector maintenance returns nothing for the time your team puts into it.
Never
- Transform on ingest for business reasons and discard the raw copy.
- Build a pipeline whose re-run double-counts.
- Aggregate on processing time when event time is available.
- Let a pipeline fail silently and publish stale data as current.
Files (headcount)
-
references
-
sources.md 2.3 KB
# Sources — `data-analytics:data-engineering` <!-- Generated by scripts/build-sources.py from sources/*.toml. Do not edit. --> Check these before answering on anything they cover, and cite what you used. The use note on each one is binding: most of what a professional cites is free to read and not free to reproduce. ## Apache Iceberg table specification Apache Software Foundation · global · free to use with attribution — credit the publisher <https://iceberg.apache.org/spec/> **Authoritative for:** The on-disk contract — metadata layout, snapshots, schema and partition evolution, and what isolation a reader may assume. The document that decides whether two engines agree on what a table is. ## Apache Parquet file format specification Apache Software Foundation · global · free to use with attribution — credit the publisher <https://parquet.apache.org/docs/file-format/> **Authoritative for:** Physical layout, encodings, nesting and the statistics a reader may rely on for predicate pushdown. The normative answer to why a file is slow or unreadable. ## Data Catalog Vocabulary World Wide Web Consortium · global · **read and cite only — copyrighted, do not reproduce** <https://www.w3.org/TR/vocab-dcat-3/> **Authoritative for:** The interoperable vocabulary for describing datasets and catalogs — what a catalog entry must carry to be exchangeable rather than specific to one tool. ## OpenLineage object model LF AI and Data Foundation · global · free to use with attribution — credit the publisher <https://openlineage.io/docs/spec/object-model/> **Authoritative for:** The vendor-neutral event schema for lineage — what an event must contain to be portable, rather than whatever one catalog happens to record. ## Shapes Constraint Language World Wide Web Consortium · global · **read and cite only — copyrighted, do not reproduce** <https://www.w3.org/TR/shacl/> **Authoritative for:** How a data constraint is expressed and what conformance means — the normative answer to whether a record is valid against a model, rather than each tool inventing its own semantics. --- Sources are maintained in `sources/` upstream, not here. If one is wrong, out of date, or missing, fix it there — this file is regenerated and an edit to it is lost.
-
-
SKILL.md 3.7 KB
--- name: data-engineering description: Builds and operates data pipelines — ingestion, transformation, orchestration, quality testing, and reliability of data delivery. Use this to design or debug a pipeline, decide batch versus streaming, add data quality checks, handle late or duplicate data, or work out why a dashboard's numbers changed without anyone changing the dashboard. --- # Data engineering Pipelines are production systems whose failures are quiet. A broken service pages someone; a broken pipeline produces plausible numbers that people act on for a week. This is movement and transformation. Schema and semantics belong to `data-analytics:data-modeling`, policy and stewardship to `data-analytics:data-governance`. ## Land raw, transform downstream Keep an immutable copy of source data exactly as received. Transformation logic will be wrong at some point, and raw data is what lets you reprocess rather than re-request from a source that may no longer have it. Business logic belongs downstream where it is visible and testable, not buried in ingestion. The exception is transformation required for privacy — minimization, pseudonymization, dropping fields you have no basis to hold — which belongs at ingest precisely because raw storage is what the obligation attaches to. See `legal-risk:privacy-and-data-protection`. ## Idempotence is the property that matters Every pipeline will be re-run: after a failure, after a fix, after a late-arriving correction. A re-run that double-counts is worse than a failure, because it produces a wrong answer silently. Design for exactly-once effect at the destination — deterministic keys, merges rather than blind appends, partitioned overwrites. Then re-running is safe and recovery stops being frightening. ## Late, duplicate and out-of-order data Real sources deliver all three. Decide explicitly, per pipeline: how late is an event still accepted, what happens to one arriving after its window closed, and how duplicates are identified. Distinguish **event time** from **processing time** and partition on event time. Aggregations built on arrival time silently reassign yesterday's activity to today whenever a delivery is delayed. ## Test data, not just code Unit tests on transformation logic catch the wrong class of failure. Most damage comes from data that is valid but wrong. Assert on the data itself, in the pipeline, and fail loudly: - Row counts within an expected range, not merely non-zero. - Uniqueness of keys, and referential integrity across joins. - Freshness — the newest record is recent enough to be meaningful. - Distribution shifts in important columns. A silent failure is worse than a loud one. Prefer stopping the pipeline to publishing data you do not trust. ## Sources `references/sources.md` in this skill lists the outside authorities that settle the questions here — what each one is authoritative for, and what you may do with it. Check them before answering on anything they cover, and cite what you used. Most are free to read and not free to reproduce; the use note on each is binding. ## Tooling Warehouses and lakehouses: Snowflake, BigQuery, Databricks, Redshift, and Postgres or DuckDB at small scale, and similar. Ingestion: Fivetran, Airbyte, Stitch, and similar. Transformation: dbt, SQLMesh. Orchestration: Airflow, Dagster, Prefect, and similar. Buy ingestion and build transformation. Connector maintenance returns nothing for the time your team puts into it. ## Never - Transform on ingest for business reasons and discard the raw copy. - Build a pipeline whose re-run double-counts. - Aggregate on processing time when event time is available. - Let a pipeline fail silently and publish stale data as current.
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.