</> Mora.data
Home Medium Series Articles & Code About
LinkedIn Medium
Medium Channel

Medium Stories & Technical Series

Here you will find all my articles published on Medium. I write regularly about Semantic Layers, Postgres, LLM Evaluation, CDC Pipelines, and Stream Processing.

Follow @moradabaz on Medium
Medium semantic-layeranalytics-engineering
Aug 26, 2026

Building a Semantic Layer from Zero (Part 2): Can Column Descriptions Alone Stop an LLM From…

Building a Semantic Layer from Zero (Part 2): Can Column Descriptions Alone Stop an LLM From Hallucinating SQL? Same 6 questions, same database — but this time the model gets the schema. 6/6 correc...

Read story on Medium →
Medium data-analyticsdbt-semantic-layer
Aug 24, 2026

Building a Semantic Layer from Zero (Part 1): When You Give an LLM a Database and Zero Context

6 questions, 12 attempts, 1 silent fabrication that would have gone straight into a report This is part 1 of a 6-post series that answers one question: How much context does a model actually need t...

Read story on Medium →
Medium apache-flinkdata-engineering
Aug 7, 2026

I Built a CDC-to-Flink Pipeline and Documented Every Decision That Had to Change

8 architecture decisions, 5 Debezium incidents, 3 corrections — and what a streaming pricing engine looks like after all of them The entire project was built with spec-driven development — every ph...

Read story on Medium →
Medium distributed-systemsbig-o-notation
Aug 5, 2026

The Computer Science Behind Spark Joins

Hash tables, sorting algorithms, and Big-O explain joins and shuffle issues better than any tuning guide Apache Spark didn’t invent any new data structure or algorithm , it just the reused the clas...

Read story on Medium →
Medium apache-flinkstreaming
Jul 28, 2026

Most Flink Decisions Have Nothing to Do With Flink

I was building a streaming pricing engine for vacation rental apartments. The system ingests operational costs via CDC from PostgreSQL through Debezium into Kafka, market reference prices through K...

Read story on Medium →
Medium data-engineeringapache-flink
Jul 17, 2026

Why Serverless Fails at Stream Processing — And What to Use Instead

There’s a pattern that works incredibly well for building data lakes on AWS: Kinesis captures events, Lambda processes them, S3 stores them, Glue transforms them, Athena queries them. It’s cheap, s...

Read story on Medium →
Medium distributed-systemsstream-processing
Jun 23, 2026

Streaming is Not Fast Batch. Here are Five Principles That Prove it

Some basic principles according to Kleppmann’s “Designing Data-Intensive Applications” book Most engineers encounter streaming for the first time through a familiar lens: “It’s like batch, but fast...

Read story on Medium →
Medium data-engineeringapache-spark
Jun 12, 2026

How I Diagnosed a 2.5x Spark Regression Caused by Data Growth — Not Code

A systematic investigation into why a pipeline doubled its runtime overnight, and the Iceberg internals that made it inevitable. A production pipeline on AWS Glue went from 15 minutes to 37 overnig...

Read story on Medium →
Medium sqlanalyitcs
May 30, 2026

Why We Adopted dbt — And What It Actually Changed in Our Data Pipeline

There’s a moment in every data team’s life when you open a dashboard, see a number that doesn’t look right, and realise you have no idea which of your fifteen scripts is responsible for it. That mo...

Read story on Medium →
Medium pythonbig-data
May 14, 2026

Spark Has Two Layers. Most Engineers Only Optimize One.

Why your Iceberg pipeline spends 80 minutes in the driver while executors sit idle — and why persist function can’t fix it. Every Spark tuning guide focuses on the same things: partition count, exe...

Read story on Medium →

Morad Abaz

Data Engineer working with Spark, Iceberg, dbt, and AWS Glue Lakehouses.

Navigation

Home Medium Series Articles & Code About Me

Connect

LinkedIn (Morad Abbou Azaz) Medium (@moradabaz) GitHub (@moradisten)

© 2026 Morad Abaz. Hosted on GitHub Pages.