Streamline is a working nightly ETL pipeline that loads, transforms and aggregates records. Re-runs double-count, timestamps land on the wrong day, and one bad row stops the whole batch. You fix each bug and open a GitHub pull request. An AI teammate reviews it, and a hidden pytest suite decides whether it passes.
Real GitHub PRs · Graded by pytest · Free during beta
Pipeline bugs tend to show up as wrong numbers on someone's dashboard the next morning. Each ticket is a bug report with acceptance criteria, in a Python codebase you didn't write.
The load step appends rows on every run instead of upserting on the natural key, so a retry or backfill duplicates the whole day. To pass, a re-run has to give the same totals as one run, a partial re-run has to reconcile, and other dates can't change.
Source timestamps are parsed in the host's timezone and bucketed by that local date, so rows near midnight and during daylight saving changes land on the wrong day. To pass, timestamps are parsed as UTC, days are bucketed by the UTC date, and daily counts hold steady across a DST change.
The transform throws on the first invalid row and the whole night's load fails with it. To pass, a bad row is skipped and logged to a dead-letter sink, the rest of the batch loads, and the run summary reports how many rows were skipped.
Each Streamline ticket has a hidden pytest file that's added to your branch at grading time. The result appears on your pull request as a check.
Streamline assumes you know Python. It tests whether you can fix reliability bugs in a pipeline you didn't write.
Analysts and backend devs moving into data engineering who have never debugged a failed load.
Self-taught Python devs whose work so far lives in notebooks.
Anyone preparing for data engineering interviews who would rather talk about an idempotent load than a pandas tutorial.
Juniors who want to see what a "request changes" review feels like before it happens at work.
Not for: people new to Python. Streamline is about debugging an existing pipeline, so learn the language first.
Python 3.13 and pip if you work locally. Every Streamline repo also opens in GitHub Codespaces with Python ready.
An AI teammate reviews the diff in the PR thread and can ask for changes. Whether the fix is correct is decided by the hidden pytest suite.
Running the job twice for the same day leaves the same result as running it once. DATA-501 is about making the load work that way, so a retry can't double the numbers.
The failing test output is on the pull request. Push a new commit and the check runs again.
Yes. Finishing the sprint gives you a certificate with the stack, the tickets you shipped and your tracked hours, behind a public link.
It's free during the beta.