Skip to content
DM_

About

I like the unglamorous parts of data.

I'm David Mwandairo, a data engineer and data scientist. The work I enjoy most sits between where data arrives and where decisions come out: the ingestion that survives a flaky API, the deduplication that makes the grain honest, the tests that catch the drift before the dashboard does.

My portfolio reflects that. One project lands raw market JSON in an immutable bronze layer and walks it through dbt to point-in-time-correct marts. Another streams every OLTP change out of a microfinance core through Debezium and Kafka into ClickHouse, with Grafana watching each hop. A third takes a churn problem end to end: EDA, leakage-safe features, model selection, then a tested FastAPI service behind Docker.

I care about the parts reviewers ask about: idempotency, auditability, latency you can measure, and numbers you can trace to a query.

How I work

01

Raw data is sacred

Bronze layers land bytes as they arrived: append-only, partitioned by ingestion date. When a downstream bug surfaces, we reprocess instead of re-fetching rate-limited APIs.

02

The grain decides

Every model states its grain before it states its columns. Deduplicate with window functions against explicit business keys, and the warehouse stops arguing with itself.

03

Test the pipeline, not just the code

Unit tests on ingestion, dbt tests on models, freshness and quality gates in front of consumers. A green build that never checked the data isn't green.

04

Write the decision down

Trade-offs live in ADRs and READMEs: why bronze is immutable, why this join is point-in-time-correct, why logistic regression beat gradient boosting. Future readers deserve the reasoning, not just the result.

Toolbox

Languages

PythonSQLBash

Warehouses & stores

PostgreSQLClickHouseDuckDB

Modeling & quality

dbtSCD Type 2Great Expectationsdbt tests

Orchestration & streaming

AirflowKafkaDebeziumDocker Compose

ML & serving

scikit-learnFastAPIpytest

BI & observability

Power BIDAXGrafanaPrometheus

Platform

TerraformGitGitHub

The best proof is the work itself: start with the case studies, or email me.