Skip to content
Reviewed by Siddharth Sharma Sep 23, 2026

Home › Guides › Data engineering projects

Tech Explained · 2026

Data Engineering Projects for 2026: 6 Portfolio Builds With Stack, Dataset and Real Costs

Data engineering projects are portfolio builds that prove you can move data end to end: ingest it, land it, transform it, test it, schedule it and publish it. The six below each name a real public dataset and a specific stack, and five of the six run entirely on a laptop with no cloud bill at all.

23 September 20269 min readBy the 360 Digital Transformation Editorial Team
Key takeaways
  • One finished pipeline beats five half-built ones. They look for ingestion, transformation, tests and a schedule in one repo.
  • Start on DuckDB, not a cloud warehouse. Stable release 1.5.2, April 2026, lives in one file, costs nothing.
  • Skip Kafka for your first three projects. Micro-batch on a cron teaches the same failure modes without broker operations.
  • Add Airflow at project three. Version 3.3.2 shipped 17 September 2026 and is worth learning, but orchestration is not a pipeline.
  • Idempotency is the interview. If a second run doubles your rows, nothing else in the repo matters.

You finish the tutorial, push the repo, and it sits there. The one hiring manager who opens it finds a notebook called Untitled1.ipynb, a hard-coded path from your Downloads folder, and no way to tell whether it ever ran twice in a row. That is the gap between doing a project and having one, and it has little to do with which tools you picked.

What Makes Data Engineering Projects Worth Building in 2026

Every serious pipeline, whether it moves 40 rows or 40 billion, has the same six stages. A portfolio project earns attention when a reviewer sees all six in one repo, in order, with the boring parts done.

The shape every data engineering project should have

If a reviewer cannot point at all six boxes in your repo, it reads as a script, not a pipeline.

Reference architecture for a portfolio data engineering project A source system feeds a raw landing zone, which loads into a warehouse, which is transformed into marts for BI. Tests gate the marts, and an orchestrator schedules and retries the whole run. 1. Source API, CSV, database 2. Raw landing files, never edited 3. Warehouse DuckDB or Fabric 5. Marts BI reads this extract load SQL 4. Tests & contracts not_null, unique, freshness, row counts blocks a bad mart 6. Orchestration: GitHub Actions cron, or Airflow 3.3.2 schedules the run, retries on failure, records whether it succeeded triggers nightly

Reference shape drawn for this guide; versions checked 23 September 2026.

Take an illustrative case: Ravi, a support analyst in Pune with eight free hours a week and working SQL. His instinct is five projects, so the CV looks full. But reviewers spend four to ten minutes on a repo, and in that window depth shows where breadth does not. Build one project touching all six boxes, then two that each add one capability.

Signal How it shows up in the repo Weight
It runs on someone else's machine README with three commands and an .env.example Very high
Idempotency A second run yields the same row count, not double Very high
Quality gates Tests that fail the build, not a cell printing a warning High
Config separated from logic Paths, credentials and dates in config, never inline High
A documented trade-off One README paragraph on what you skipped, and why Medium
Dashboard polish Screenshots in the README Low

That last row surprises people. A dashboard is worth less than a schema.yml with six tests in it: the dashboard proves taste, the tests prove you have been burned before. To make the visual layer count, tie it to a credential employers recognise, which is what 360DT's Power BI and PL-300 data analyst course practises live each weekend.

6 Data Engineering Project Ideas, With Stack and Dataset

Six builds, in the order they teach you the most

Each adds one capability to the one before it. Do not skip ahead.

1

Batch ELT on open data

Pull a public CSV on a schedule, land it immutably, model it in SQL, test it, publish one table. Everything else builds on this.

DuckDB + dbt
2

Incremental loader

Load only what is new since the last successful run. Teaches high-water marks and when a full refresh is still right.

Watermarks
3

Slowly changing dimension

Track price changes as a Type 2 dimension, so a question about March answers with March's prices, not today's.

dbt snapshots
4

Lakehouse on Microsoft Fabric

The same data in a Fabric lakehouse with Delta tables and a semantic model. Worth paid capacity only if you want DP-700 roles.

Fabric
5

Micro-batch on file arrival

Process files as they land, with deduplication and a late-data window. The hard parts of streaming, no Kafka cluster.

Near real time
6

Freshness and quality monitor

Wrap projects 1 to 3 in freshness checks, anomaly detection and an alert that fires. The one that reads as production experience.

Observability

Scoped for eight study hours a week; facts verified 23 September 2026.

# Stack Dataset Runs on Hours
1 Python, DuckDB, dbt, GitHub Actions Open government CSV: rainfall or air quality Laptop 10 to 14
2 Python, DuckDB, dbt incremental models GitHub public events API Laptop 8 to 12
3 dbt snapshots, DuckDB or Postgres A price list sampled daily Laptop 8 to 10
4 Fabric lakehouse, Delta, pipeline Project 1's output, scaled up Fabric capacity 14 to 20
5 Python watcher, DuckDB, dedupe keys Self-generated JSON, one file a minute Laptop 10 to 14
6 dbt tests, run-metrics table, webhook alert Your own projects 1 to 3 Laptop plus CI 6 to 10

Also read: dbt Tutorial for Beginners 2026 if you have never run dbt build. Project 1 assumes you have.

Project 1, Walked End to End in About 40 Minutes

The whole first project, from empty folder to tested table. Any public CSV with a date and a category column works.

Step 1: land the raw file without touching it

Raw data is written once and never modified. Land a dated copy and read everything downstream from it, so a bug in your transform costs a re-run, not the data.

python -m venv .venv && source .venv/bin/activate
pip install duckdb requests dbt-duckdb
import pathlib, requests, duckdb

RAW = pathlib.Path("data/raw")
RAW.mkdir(parents=True, exist_ok=True)

stamp = "2026-09-23"
(RAW / f"rainfall_{stamp}.csv").write_bytes(
    requests.get(SOURCE_URL, timeout=30).content)

con = duckdb.connect("warehouse.duckdb")
con.execute("""
    CREATE OR REPLACE TABLE raw_rainfall AS
    SELECT *, filename AS source_file
    FROM read_csv_auto('data/raw/rainfall_*.csv', filename = true)
""")
print(con.execute("SELECT count(*) FROM raw_rainfall").fetchone())

Two details do the real work. CREATE OR REPLACE TABLE over a glob of every landed file makes the load idempotent by construction: run it ten times, get the same table. And filename = true keeps each row's provenance, so a wrong number traces back to the file it came in. DuckDB's stable release is 1.5.2 from April 2026, with a v2.0 alpha announced on 2 September 2026 for October, so pin your version.

Step 2: model it, then test it harder than you want to

-- models/marts/monthly_rainfall.sql
{{ config(materialized='table') }}

select
    subdivision,
    date_trunc('month', measured_on) as month,
    round(sum(rainfall_mm), 1)       as rainfall_mm,
    count(*)                         as readings
from {{ ref('stg_rainfall') }}
where rainfall_mm >= 0
group by 1, 2
# models/marts/schema.yml
models:
  - name: monthly_rainfall
    tests:
      - unique:
          column_name: "subdivision || '-' || month"
    columns:
      - name: subdivision
        tests: [not_null]
      - name: rainfall_mm
        tests: [not_null]

Run dbt build and the summary should read like PASS=4 WARN=0 ERROR=0 SKIP=0 TOTAL=4. Now the step most people skip: break it deliberately. Edit one staging row to duplicate a month, re-run, watch the unique test turn the run red, and put that screenshot in your README. A reviewer who sees a test genuinely catch something trusts the whole repo.

Step 3: put it on a schedule, so it is a pipeline and not a script

name: nightly-elt
on:
  schedule:
    - cron: "30 20 * * *"   # 02:00 IST
jobs:
  run:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: "3.12"
      - run: pip install -r requirements.txt
      - run: python ingest.py && dbt build

Actions cron runs on UTC, the commonest reason an Indian learner's nightly job fires at lunchtime. 20:30 UTC is 02:00 IST next day. Leave it running two weeks before you apply, then link the run history from your README. Twenty green runs beats any CV bullet.

Projects 2 to 6, and What Will Bite You in Each

Project 2, incremental loading. Store the maximum timestamp you loaded, then request only rows after it. The bite: if the source emits events late, a strict > comparison drops them forever. Use an hour of lookback and deduplicate on a natural key.

Project 3, slowly changing dimensions. Snapshot a price list daily and keep validity ranges. The bite: people build it, never query it historically, and never notice their valid_to boundaries overlap by a day. Write the query proving no product has two active rows on a date.

Project 4, the lakehouse. The only build with a real bill, worth doing if your target listings say Fabric or DP-700. Delta and medallion patterns are the exam territory 360DT's live Microsoft Fabric data engineering program works through in its lab weekends, DP-900 included.

Project 5, micro-batch instead of streaming. The bite is the interesting part: out-of-order events, duplicate deliveries and a backlog after you shut the laptop. Those are the hard parts of streaming; Kafka only adds broker operations on top.

Project 6, quality and freshness. Record row count, maximum source timestamp and duration per run, then alert when the count drifts from the trailing median. This is where data engineering meets production ML operations, covered by the MLOps engineer course built around AI-300; containerising the jobs is core DevOps practice from the AWS track, with the Microsoft equivalent in the Azure AZ-305 and AZ-400 program.

What usually goes wrong here

Three warnings a colleague would give you over a desk, none about tool choice. You will spend week two fighting the source API's pagination and decide you are bad at this. You are not; ingestion is the most tedious part of the job, which is why people who can do it get paid. You will then want to rebuild everything after learning a better pattern in week six. Do not; ship the next project instead.

Also read: Docker Tutorial for Beginners 2026, the fastest way to make these reproducible on a reviewer's machine.

The honest caveat
  • Most recruiters will never open your GitHub. These work on the technical interviewer, not the screening layer, so they will not rescue an application that dies in a keyword filter.
  • They do not substitute for a referral. Their job is forty minutes of concrete material and a chance at a take-home.
  • Six is too many for most people. Finish 1, 2 and 6 and you beat anyone with all six half-done.

What These Data Engineering Projects Actually Cost to Run

The only four numbers you need before you start

Five of six builds are free. Only the lakehouse has a meter running.

Unmetered
GitHub Actions, standard runners, public repos
2,000 min
Monthly Actions allowance, private repos, Free plan
~$263/mo
Microsoft Fabric F2 capacity, pay as you go
~$0.023
Per GB per month, OneLake storage, billed separately

GitHub Actions billing documentation and published Microsoft Fabric pricing summaries. Checked 23 September 2026.

GitHub's billing documentation states that standard hosted runners are free and unmetered on public repositories, so project 1's nightly job costs nothing if the repo is public; private repos get 2,000 minutes a month on the Free plan, with extra Linux two-core minutes at $0.006 after GitHub cut runner rates on 1 January 2026. Fabric is the outlier. Pricing summaries published in 2026 put entry-level F2 capacity near $263 a month pay as you go, about $156 on a one-year reservation, with OneLake storage around $0.023 per GB per month and Power BI Pro near $14 per user per month below F64.

So pause capacity when you are not using it: leave an F2 running a month and you have spent more than an exam fee on idle compute. Build 1, 2, 3, 5 and 6 free on your laptop, and start Fabric only once a DP-700 attempt is booked. The full certifications overview maps exams to stacks if you are still deciding.

Live course

Turn these projects into a DP-700 certified Fabric portfolio

Live online·Sat–Sun, 8–11 PM IST·50+ hrs·Rs 24,999

Eight weeks of live weekend classes on Microsoft Fabric data engineering for DP-700, with DP-900 fundamentals included. Hands-on projects, mentor support and placement guidance; next batch starts 28 Nov 2026.

Explore the course
Microsoft Fabric Data Engineer Course (DP-700 + DP-900 + Claude)

What Interviewers Ask About Your Data Engineering Projects

They are predictable, because the interviewer is checking whether you built the thing or followed a video.

"What happens if this job runs twice?" The usual opener. Answer with the mechanism, not reassurance: name the replace or merge semantics and the key.

"Where does this break at a hundred times the volume?" Name a specific limit, such as DuckDB exhausting memory on one machine, then what you would move to.

"Which test caught a real bug?" This is why you screenshot the red run. If no test has ever failed, your tests are decorative.

"Why not Kafka, Spark or Snowflake?" Say the trade-off out loud: the volume did not justify the operational cost, and you preferred something you could run free every night over something you could run once.

"How would you serve this to an application or an LLM?" Increasingly common, since retrieval layers now sit on warehouse marts. Exposing a clean semantic layer is enough of an answer; the deeper retrieval work belongs to the AI engineer course covering RAG and AI agents.

Also read: SQL Query Optimization in 2026, because that second question almost always becomes a query plan discussion.

Frequently asked questions

How many data engineering projects do I need in my portfolio?

Two finished and a third in progress. Reviewers spend under ten minutes on a repo, so one project covering ingestion, transformation, tests and scheduling reads stronger than five that stop after the first step.

What is a good first data engineering project for a beginner?

A batch ELT pipeline over a public CSV: land the file unchanged with the date in its name, load it into DuckDB, model it with two or three dbt models, add four tests, schedule it nightly. Ten to fourteen hours, no cost.

Do I need Airflow for a portfolio project?

Not for your first. An Actions cron schedules and retries perfectly well at portfolio scale. Add Airflow at your third project, once you have a real dependency graph; version 3.3.2 shipped on 17 September 2026 and its dag bundles are worth learning then.

Is Kafka necessary for a data engineering portfolio in 2026?

No, and for most learners it is a distraction. Micro-batching over files that arrive every minute already forces you to solve out-of-order events, duplicate deliveries and backlog recovery. Kafka adds broker operations, a different skill.

Should I use Microsoft Fabric or open source tools for my project?

Match the listings you are targeting. If they name Fabric, DP-700 or Power BI, build the lakehouse and pause capacity between sessions, since F2 is listed near $263 a month. Otherwise stay on the free stack.

Will data engineering projects get me a job without work experience?

Not past an automated CV screen on their own, and they do not replace a referral. What they give you is forty minutes of concrete material and a real chance at a take-home.

What I Would Do in Your Position

Build project 1 this weekend and let it run on a schedule for a fortnight before starting anything else. It is the cheapest test of whether you enjoy this work, because whatever annoys you in a ten-hour project will annoy you for ten years. Then go 1, 2, 6: twelve weeks at eight hours a week.

Let your target listings decide project 4. If they name Fabric and DP-700, book the exam and run capacity for those weeks only, so certification and project finish together. A free webinar costs an hour and tells you whether a live cohort suits how you learn, and a demo class shows the lab format first. Otherwise the Microsoft Fabric Data Engineer course runs the DP-700 syllabus live across eight weekends, with someone reviewing your pipeline.

About this guide. 360 Digital Transformation is an Anthropic Partner and a Microsoft Authorized Training Partner. Other certification bodies, vendors and employers named here are not affiliated with us. Tools and versions change quickly; commands and figures cited were checked on 23 September 2026.

Learn it live with 360 Digital Transformation

Turn this guide into a skill employers can see

Live weekend cohortEMI available

Microsoft Fabric Data Engineer Course (DP-700 + DP-900 + Claude)

Rs. 24,999Rs. 31,249 Save 20%

Tools and platforms you work with

  • Microsoft Fabric
  • Apache Spark and PySpark
  • Delta Lake
  • T-SQL
  • Python
  • Fabric Notebooks
  • Git
  • GitHub
Add bonus modules
See the syllabus and batch dates

Other live courses on this career path