Preparing your learning space...
14% through Data Engineering for FDEs tutorials
Before writing a single query or pipeline, an FDE needs a shared vocabulary for talking about data. This tutorial builds the mental model: what data is, how it's shaped, how it moves, and the basic distinctions (structured vs unstructured, batch vs streaming) that decide every tool you'll pick later.
Data is a recorded fact about the world — a sale, a temperature reading, a click, a support ticket. On its own a number means little; arranged and interpreted, it becomes information a business can act on.
For an FDE, data is the raw material of every solution. Your job is rarely to create data — it's to move it, clean it, combine it, and make it useful inside a customer's systems.
Note: "Data" is plural; "datum" is one item. In practice everyone says "data is," and that's fine.
The single most important split in data engineering is how regular the data's shape is:
| Shape | What it looks like | Example | Typical store |
|---|---|---|---|
| Structured | Fixed columns and rows, known in advance | A users table | Relational DB (PostgreSQL) |
| Semi-structured | Has structure but flexible/no fixed schema | JSON from an API, a log line | Document DB, object storage |
| Unstructured | No inherent structure | A PDF, an image, a voice memo | Object storage, file system |
Structured: [ id | name | signup_date ] ← rigid grid Semi-structured: { "id": 1, "tags": ["a","b"] } ← flexible, nested Unstructured: "Q3 earnings call recording.mp3" ← just bytes
Explanation: most business data an FDE touches is structured (it lives in tables) or semi-structured (it arrives as JSON). Knowing which you have tells you which tool fits — you don't reach for a spreadsheet to store MP3s.
Why it matters: the shape of the data is the first thing that determines the database, the cleaning approach, and even whether AI can use it.
Whatever the shape, individual values have types. Getting these wrong is the #1 source of silent data bugs.
| Type | Holds | Example | Watch out for |
|---|---|---|---|
| Integer | Whole numbers | 42, 0 | IDs stored as integers overflow |
| Float / Decimal | Numbers with decimals | 19.99 | Floats drift; use decimal for money |
| String | Text | "Acme Corp" | Encoding (UTF-8 vs latin-1) |
| Boolean | True/false | true | "Y"/"N"/"1" is not a real boolean |
| Date / Timestamp | A point in time | 2026-08-19 | Time zones! Store UTC |
| Null | "no value" | NULL | Different from 0 or "" |
Common Mistake: storing money as a floating-point float. 0.1 + 0.2 is not exactly 0.30 in binary, so totals drift. Use decimal/numeric for currency.
Data rarely sits still. It moves through stages, and each stage is a job an FDE does:
Generate → Collect → Store → Process → Analyze → Act (app) (API) (DB) (clean) (report) (decision)
Example: a customer's webshop generates an order → an integration collects it via API → it's stored in Postgres → a pipeline processes it into a daily summary → a dashboard analyzes it → a manager acts on it. Your code usually lives in the Collect, Store, and Process boxes.
Two flavors of database workload you'll hear constantly:
OLTP: app writes 1 row → fast, frequent, current OLAP: report scans 10M rows → slow, rare, historical
Note: The same data often feeds both. Raw rows land in an OLTP database, then get copied into an OLAP warehouse for analysis. Don't force one database to do both badly.
How fresh must the data be?
Best Practice: default to batch. Most "we need real-time" requests are really "we need it within the hour," and batch is far easier to build and debug.
id, name, email, all required." The database enforces it. Safer for business data; catches bad input early.Note: "Schemaless" doesn't mean "no rules." It means the database won't enforce them — so you must, usually in the transformation step.
FDEs live at the customer's data edge. You'll be handed a messy export, an undocumented API, or a 20-year-old table, and asked to make it flow into a product. The fundamentals above are the lens you use to decide:
Get the fundamentals right and every later choice becomes obvious instead of scary.
Save your progress and earn XP for completing tutorials.
4 questions · Pass with 70%+
1A system records a customer's orders as they happen and needs the totals updated within seconds. This is best described as:
2A CSV where every row has the same fixed columns is an example of:
3OLAP databases are optimized for:
4"Schemaless" data means:
Technology
Forward Deployed Engineer
Lesson group
Data Engineering for FDEs
Progress
14% complete