Skip to content
View dennisgathu8's full-sized avatar
  • EAST AFRICA

Block or report dennisgathu8

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. Markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
dennisgathu8/README.md

Dennis Gathu | Football Data Engineer

X Location Focus


What I'm building

African football produces players the world covets.

It has never had the infrastructure to see itself clearly.

I'm building that infrastructure β€” open source, in Clojure, from Nairobi. The goal is a data foundation that clubs across the continent can own, inspect, and extend. Not licensed tools built for other contexts by people who have never watched football in Accra, Lagos, Nairobi, or Dar es Salaam.


πŸ—οΈ Clojure Sports Data Engineering Roadmap

Five projects. Each solves a real infrastructure gap that Python cannot address structurally.

# Project What it solves Status
1 pitch-pipe StatsBomb ingestion + transducer pipeline. Zero-copy transformation, spec validation at the boundary. βœ… Live
2 temporal-squad XTDB bi-temporal player state. Answers what your system knew at selection time β€” not just what it knows now. βœ… Live
3 press-logic Tactical rules as data via core.logic. Rules coaches can read, challenge, and modify β€” not opaque model weights. πŸ”¨ Building
4 formation-stream 25Hz tracking data via core.async. Backpressure handling, real-time compactness metrics. πŸ“‹ Planned
5 dugout Full-stack analytics workbench. Clojure backend + ClojureScript frontend + shared .cljc logic. πŸ“‹ Planned

The infrastructure gap across African football

The problem is the same whether you are in the KPL, NPFL, CAF interclub, PSL, or the Ethiopian Premier League:

  • Decisions made on data that arrived after the fact
  • Pipelines that silently corrupt data for months before anyone notices
  • Models coaches cannot interrogate or challenge
  • Tools that live on one analyst's laptop and disappear when they leave

This is not a talent problem. It is a plumbing problem. And it is solvable.


Why Clojure for football analytics

Problem Python Clojure
Pipeline memory Each Pandas step allocates a new DataFrame Transducers compose into a single pass β€” zero intermediate collections
Data integrity Silent NaN coercion on bad data clojure.spec validates at the boundary β€” bad data throws before it touches the pipeline
Temporal queries Postgres overwrites history XTDB stores valid-time and transaction-time on every fact, automatically
Tactical rules Neural net confidence scores coaches can't interrogate core.logic encodes rules as readable data β€” auditable, modifiable without retraining
Full-stack Python backend + JS frontend = two codebases .cljc shared logic runs on JVM and in the browser β€” one codebase

Background

  • 1.5 years as BI Analyst at a capital group in Ethiopia managing data infrastructure across 8+ betting products
  • Built real-time fraud detection, Grafana dashboards, and reconciliation pipelines under production pressure
  • Football is in the family β€” my father was a professional player and development coach
  • Self-taught. Nairobi. Building in public.

Stack

Primary: Clojure Β· ClojureScript Β· XTDB Β· core.async Β· core.logic Data: StatsBomb Β· SQL Β· DuckDB Β· clojure.spec BI & Viz: Grafana Β· Streamlit Β· Matplotlib Infra: GitHub Actions Β· Fly.io Β· Leiningen Β· Shadow-cljs


🌍 Open to

  • Football analytics roles across Africa and globally
  • Clubs in CAF competitions serious about data infrastructure
  • Federations building analytics capacity from the ground up
  • Academies tracking player development over time
  • Any league β€” KPL, NPFL, PSL, EPL, wherever the problem is real and the will to solve it exists
  • Freelance data infrastructure contracts
  • Open source collaborators who care about African football

πŸ“§ dennisgathu8@gmail.com


"Data isn't just numbers; it's the 12th player on the pitch." β€” Dennis Gathu

Pinned Loading

  1. AgentRZA AgentRZA Public

    Autonomous, production-grade football scouting pipeline for daily match ingestion and player enrichment.

    Python 1

  2. football-analytics-portfolio football-analytics-portfolio Public

    Central Football Analytics Portfolio | Engineering the Future of African Football Intelligence βš½πŸ“Š | Dennis Gathu

  3. heinze heinze Public

    The defensive whisperer: Real-time tactical simulations and shape correction for pro football coaches.

    Clojure

  4. house-hedge house-hedge Public

    Professional multi-agent sports betting intelligence platform built with Clojure.

    Clojure

  5. pitch-pipe pitch-pipe Public

    StatsBomb ingestion + transducer pipeline for football event analytics

    Clojure

  6. temporal-squad temporal-squad Public

    XTDB bi-temporal player state store for football analytics

    Clojure