Case study
Data Platform
Toy CRM and service medallion pipeline with quality quarantine, DuckDB gold KPIs, and Ask over certified measures or a local handbook.
At a glance
Plain summary for recruiters and visitors. Technical detail follows below.
- What it is
- I built a small data platform that lands CRM files, quarantines bad rows, and publishes trusted revenue KPIs. Recruiters can verify the counts on this page.
- What I owned
- Solo end to end. Bronze, silver, and gold pipeline, DuckDB gold layer, pytest contracts, FastAPI console, and the frozen public demo.
- Why it matters
- Shows how data teams stop bad rows from polluting executive dashboards. Quarantine rules and gold totals are locked by automated tests.
- Try it on this page vs full project
- This page runs frozen quality and KPI chips only. The full FastAPI tour with a live pipeline run stays on request.

Problem
Analyst and data-engineering applications need clear proof of layered pipelines, quality gates, and trusted KPIs.
Method
Built bronze, silver, and gold on toy CRM and service CSV extracts. Silver quarantines failed rows. Gold lands in DuckDB with certified regional measures. pytest locks accepted and quarantined counts. Optional Spark evidence must match the same totals. FastAPI serves a tourable console with Ask over numbers or handbook docs.
Result
Toy contract on this page. 10 orders accepted and 5 quarantined. 6 cases accepted and 2 quarantined. Orders pass rate 66.67%. Gold revenue by region sums to 14,200 (EU 6,890, US 2,910, APAC 4,400). Recruiters can try those figures on this page. The full FastAPI console stays on request.
Architecture
How the system is shaped. Full implementation stays private.
Step 1
Bronze
Land toy CRM order and service case CSV extracts as raw bronze files.
Step 2
Silver
Type rows and apply named quality rules. Failed rows go to quarantine and never reach gold KPIs.
Step 3
Gold
Trusted facts in DuckDB plus CSV export. Certified regional measures feed KPI snapshot and Ask numbers mode.
Step 4
Contracts
pytest locks accepted and quarantined counts. Optional PySpark evidence on this machine matches the same totals.
Step 5
Console
FastAPI UI with Take a tour, Run pipeline, Quality report, KPI snapshot, and Ask. The public case study ships a frozen quality and gold chip demo. Full source stays on request.
Frozen quality and gold contract (toy extracts)
Frozen pytest contract on toy CRM and service extracts. Optional Spark on this machine matched the same counts. Not a vendor lakehouse. Airflow is not claimed.
| Measure | Value | Note |
|---|---|---|
| CRM orders accepted | 10 | Contract |
| CRM orders quarantined | 5 | |
| Orders pass rate | 66.67% | |
| Service cases accepted | 6 | Contract |
| Service cases quarantined | 2 | |
| Gold revenue EU | 6,890 | |
| Gold revenue US | 2,910 | |
| Gold revenue APAC | 4,400 | |
| Gold revenue total | 14,200 | Sum |
Algorithm
Rule-based quality quarantine then gold KPIs
Evaluate each bronze row against named rules. Keep only clean rows in silver. Aggregate certified measures from gold.
for row in bronze:
failures = evaluate_rules(row)
if failures: quarantine(row, failures)
else: silver.append(row)
gold = load_duckdb(silver)
kpis = certified_measures(gold)
return kpis, quarantine_reportKey logic
Compact illustrative snippet (Quality split sketch (illustrative)). Not the full codebase.
def split_quality(rows, rules, key):
accepted, quarantined, seen = [], [], set()
for row in rows:
failures = [name for name, check in rules if not check(row)]
if row.get(key) in seen:
failures.append("duplicate_key")
elif row.get(key):
seen.add(row[key])
if failures:
quarantined.append({"row": row, "failures": failures})
else:
accepted.append(row)
return {"accepted": accepted, "quarantined": quarantined}Stack
Try a quality gallery
Free recruiter demo of the frozen pytest contract. Quality counts and regional gold revenue are toy extracts. This is not the FastAPI console.
Pick a report, then run the demo.
Source code
Full source is available to hiring managers on request. The public page shows architecture, algorithms, and compact proofs only.