Available for interesting problems

Hi, I'm Mustafa. Software engineer building reliable systems.

I design and ship distributed systems, data pipelines, and AI-augmented tooling. I write about the engineering tradeoffs behind them, what works, what breaks, and why.

Mustafa, smiling

Recent writing

All posts →
The AI-Assisted Development Lifecycle

A spec-driven, review-heavy workflow for shipping real features with Cursor, built around one idea: build the feature twice.

Idempotency in Practice, Part 3: Idempotent Consumers and Pipelines

The idempotent consumer pattern implemented (processed-message table in the same transaction), dedup identity for events, Kafka's exactly-once machinery taken apart honestly, offset-commit ordering, and the series-capstone retrofit checklist.

Airflow on Kubernetes, Part 4: XCom on Object Storage, Secrets, and Slack Alerts

Moving XCom payloads to object storage instead of bloating the metadata DB, managing secrets and connections the isolated-worker way, and wiring up Slack notifications for failing DAGs.

Idempotency in Practice, Part 2: Building the Key Store

Brandur Leach's Stripe-style Postgres key store walked end to end in Kotlin: the schema, atomic claim via ON CONFLICT, recovery points so a crashed request resumes instead of double-executing, the Redis variant compared honestly, and the window you can't close.

Airflow on Kubernetes, Part 3: Executors and the Execution Lifecycle

When to use Local vs Celery vs Kubernetes (and multi-executor), the full task lifecycle, how a worker actually gets its task, and what happens when code changes mid-run.