The Data Journal

Insights on data engineering, architecture, and the evolving analytics landscape.

The Modern Data Engineer Part 16: Metadata-Driven Pipelines

At a previous client every source loaded through a stored procedure that assembled the query, and the parallel loop had been set to thread = rand_int() % 1 for longer than anyone knew. It kept running, which is why nobody fixed it. This is the design we built instead, in four objects and one run lifecycle.

Read Article →

The Modern Data Engineer Part 10: When the Source Drifts

Schema drift is inevitable, and the instinct to rewrite Bronze every time the source changes quietly breaks the captured history your recovery depends on. The durable fix is to absorb drift in the source-aligned Silver layer, version Bronze instead of rewriting it, and hold the producer to a real data contract.

Read Article →

Odido still had my data

Fourteen months after my Ben contract ended, the customer service system that held my passport number was breached. Five architectural decisions in that system shaped how the incident landed, and each is a pattern data professionals already follow.

Read Article →