Skip to content

Challenge catalog

Isolated SQL, Python ETL, and API → database tasks. Hidden tests grade the submitted state.

30 challenges
SQLEasyOfficialBenchmark

Natural-key collapse

Collapse duplicate profiles on a natural key, keep the newest survivor, and reattach child rows.

35 min0 runs0.0 (0)PipelineArenav2.0.0
SQLEasyOfficialBenchmark

Incorrect customer join

Repair a report that still joins the old natural key after a surrogate-key migration.

30 min0 runs0.0 (0)PipelineArenav2.0.0
SQLEasyOfficialBenchmark

Slow product lookup

Same storefront result, under a hidden latency budget, using an index.

30 min0 runs0.0 (0)PipelineArenav2.0.0
SQLMediumOfficialBenchmark

Broken revenue grain

Rebuild daily net revenue so refunds and replacements do not double-count.

45 min0 runs0.0 (0)PipelineArenav2.0.0
SQLMediumOfficialproBenchmark

Incremental order sync

Watermarked incremental apply with a lookback window for late rows.

50 min0 runs0.0 (0)PipelineArenav2.0.0
SQLMediumOfficialBenchmark

Date dimension repair

Build dim_date and convert mixed string dates to date_key with no silent drops.

40 min0 runs0.0 (0)PipelineArenav2.0.0
SQLMediumOfficialBenchmark

Vendor catalog merge

Ranked merge of the same SKU from three vendors into one master row.

40 min0 runs0.0 (0)PipelineArenav2.0.0
SQLHardOfficialproBenchmark

SCD Type 2 customer history

Track customer attribute changes with valid_from / valid_to and one current row.

60 min0 runs0.0 (0)PipelineArenav1.0.0
SQLHardOfficialproBenchmark

Late-arriving facts

Attach a delayed fact to the dimension version effective on the event date, not load date.

70 min0 runs0.0 (0)PipelineArenav2.0.0
SQLHardOfficialproBenchmark

Expand-contract schema migration

Finish a half-applied address split without losing rows or locking the table badly.

60 min0 runs0.0 (0)PipelineArenav2.0.0
Python ETLEasyOfficialBenchmark

RFC 4180 CSV import

Load a CSV with quoted commas and mixed encodings without dropping fields.

40 min0 runs0.0 (0)PipelineArenav2.0.0
Python ETLEasyOfficialBenchmark

Money to minor units

Normalize mixed money strings to integer minor units plus ISO currency.

35 min0 runs0.0 (0)PipelineArenav2.0.0
Python ETLEasyOfficialBenchmark

Overlapping page dedup

Idempotent load when retried API pages overlap on source_id.

35 min0 runs0.0 (0)PipelineArenav2.0.0
Python ETLMediumOfficialBenchmark

Timestamps to UTC

Parse mixed timestamps to timestamptz UTC; quarantine invalid values.

45 min0 runs0.0 (0)PipelineArenav2.0.0
Python ETLMediumOfficialproBenchmark

Incremental upsert and deletes

Apply inserts, updates, and deletes from a CDC-style extract without duplicating unchanged rows.

50 min0 runs0.0 (0)PipelineArenav2.0.0
Python ETLMediumOfficialBenchmark

Idempotent retries

Bounded retries with jitter for transient writer failures; do not double-write.

40 min0 runs0.0 (0)PipelineArenav2.0.0
Python ETLMediumOfficialBenchmark

Poison-row quarantine

Commit good rows in a batch; isolate poison rows to a dead letter.

45 min0 runs0.0 (0)PipelineArenav2.0.0
Python ETLHardOfficialproBenchmark

Stream a large CSV

Load a large CSV under the memory cap without a full in-memory frame.

55 min0 runs0.0 (0)PipelineArenav2.0.0
Python ETLHardOfficialproBenchmark

Schema drift

Absorb an additive column and a type change without dropping day-1 rows.

60 min0 runs0.0 (0)PipelineArenav2.0.0
Python ETLHardOfficialproBenchmark

Checkpoint after commit

Resume from the last successful checkpoint; never skip uncommitted work.

55 min0 runs0.0 (0)PipelineArenav2.0.0
API pipelinesEasyOfficialBenchmark

Paginated orders API

Walk every page or cursor until the API is exhausted; dedupe overlaps.

40 min0 runs0.0 (0)PipelineArenav2.0.0
API pipelinesEasyOfficialBenchmark

Idempotent asset upsert

One row per content checksum; filenames are aliases.

35 min0 runs0.0 (0)PipelineArenav2.0.0
API pipelinesMediumOfficialBenchmark

Expired token refresh

On 401, refresh the access token (RFC 6749) and retry the failed request once.

45 min0 runs0.0 (0)PipelineArenav2.0.0
API pipelinesMediumOfficialBenchmark

HTTP 429 backoff

Honor Retry-After on 429; do not drop the page.

40 min0 runs0.0 (0)PipelineArenav2.0.0
API pipelinesMediumOfficialBenchmark

Webhook at-least-once

Verify the signature and dedupe on event.id so replays do not double-apply payments.

45 min0 runs0.0 (0)PipelineArenav2.0.0
API pipelinesMediumOfficialBenchmark

Partial API outage

Retry the failing resource without redoing the healthy one.

50 min0 runs0.0 (0)PipelineArenav2.0.0
API pipelinesHardOfficialproBenchmark

Incremental sync with clock skew

updated_since with a lookback so boundary rows are not lost; apply tombstones.

60 min0 runs0.0 (0)PipelineArenav2.0.0
API pipelinesHardOfficialproBenchmark

New required API field

Continue the load after the API adds a required field mid-pagination.

60 min0 runs0.0 (0)PipelineArenav2.0.0
API pipelinesHardOfficialproBenchmark

Gap backfill

Detect missing ids in a monotonic stream and fetch only those ranges.

65 min0 runs0.0 (0)PipelineArenav2.0.0
API pipelinesHardOfficialproBenchmark

API vs warehouse reconcile

Explain and fix variance against the API summary (timezone cuts and soft deletes).

70 min0 runs0.0 (0)PipelineArenav2.0.0