Diagram of a user safety event pipeline with Kafka, PostgreSQL, and Go services

User Safety: safe – A Hands-On Build Guide for a Portfolio CV Project

A complete, runnable project that demonstrates distributed event-driven design, backend engineering, and observability skills hiring managers look for in senior and staff-level engineers.

September 9, 2026 · 11 min · 2199 words · martinuke0
A dashboard showing personal data visualizations

Building a Personal Event-Driven Data Pipeline: A Portfolio Project for Systems Engineers

Learn to build a scalable, event-driven personal data pipeline using FastAPI, Kafka, and PostgreSQL — a portfolio project that signals senior-level systems thinking.

September 8, 2026 · 8 min · 1637 words · martinuke0
Diagram showing PostgreSQL WAL flowing through Debezium into Kafka topics and downstream sinks.

Architecting Change Data Capture with Debezium and PostgreSQL: A Production Pipeline Walkthrough

How to design a reliable CDC pipeline from PostgreSQL to downstream systems using Debezium — covering WAL internals, connector configuration, schema evolution, and the failure modes you’ll hit in production.

September 7, 2026 · 9 min · 1891 words · martinuke0
Stylized illustration of streaming partitions and a Raft consensus diagram.

Inside Redpanda: How a Kafka-Compatible Engine Replaces ZooKeeper for Streaming

A deep dive into Redpanda’s C++ core, the Raft-based controller quorum that replaces ZooKeeper, and what tradeoffs come with deleting a coordination service from your streaming stack.

September 5, 2026 · 11 min · 2226 words · martinuke0
Diagram of a trace spanning a Kafka producer, broker, consumer, and downstream gRPC service.

Distributed Tracing Across Kafka and gRPC With OpenTelemetry Context Propagation

A field guide to implementing distributed tracing with OpenTelemetry across Kafka message boundaries and gRPC calls, including header propagation, instrumented producers and consumers, and the failure modes that leave orphaned spans.

September 4, 2026 · 10 min · 1950 words · martinuke0
Feedback