Deciding where a national network needs attention first
Enormous volumes of imperfect operational data had to become decisions about where resources, infrastructure and intervention were needed most across a national telecommunications network.

The problem
A national mobile network generates continuous operational data from tens of thousands of sites, and much of it is noisy, weakly labelled and spread across separate operational systems. The recurring question was where to send finite resources next. During load-shedding that sharpened: sites fall back to generators and batteries, and fuel, logistics and field teams all run out before the problem does.
Why it mattered
A site that goes down is lost service for real people, and misdirected diesel and crews are real money at national scale. Answering it well needed the data turned into a decision quickly enough to act on, not a report produced after the fact.
The context
15,000+ national infrastructure sites and mobile generators, interdependent network effects, operational alarms, and telemetry arriving continuously. This was operational real-time scale rather than a static dataset: the systems had to keep making sense of live events across national infrastructure.
What I did
I led a high-performing team of 10, nine data scientists and a senior ML engineer, building real-time analytics and optimisation platforms. I architected the Smart Generator Optimisation platform across the national estate, applying constrained optimisation over live telemetry to decide which generators to run, where and when. The team built high-throughput streaming pipelines processing 25M+ daily telemetry events from 15,000+ sites and mobile generators using Kafka, PySpark and Kubernetes, and I designed a custom PyFlink stream-processing framework that enriches real-time Kafka topics with IoT telemetry, operational alarms and static reference data in flight. I also institutionalised enterprise AI and analytics engineering standards across the team, which shortened model development cycles and improved system reliability.
What changed
Dispatch moved from reactive to informed, weighing cost, network impact and constraints across the whole estate in real time. The Smart Generator platform contributed approximately R1 billion in annual operational savings through better generator and resource allocation, alongside improved availability. The engineering standards and streaming architecture made delivery across the team more repeatable.
Who benefited
Network operations teams, who gained continuously updated intelligence for infrastructure and resource decisions; the business, through lower operating cost and better capital allocation; and customers who stayed connected through power cuts.
What remained
Production optimisation and streaming platforms, a custom stream-processing framework, and engineering standards adopted across the team. Recognised with the Vodacom Star Award in 2022 for innovation and engineering excellence.
Technical context
Kafka, PySpark, a custom PyFlink stream-processing framework, Kubernetes, Docker, GitLab CI, constrained optimisation (CVXPY), distributed processing, real-time IoT telemetry.
Related
Ubunye Engine
Every team rebuilds the same pipeline plumbing, structured differently each time, and the tooling is split across laptops, on-prem clusters and different clouds.
WorkBuilding the capability around insurance data science
Getting analytical products into production reliably depended on individual knowledge and one-off effort, in a function historically oriented more toward BI and analysis than production data-science engineering.
ResearchLearning Level Set Method by Echo State Network for Image Segmentation
Proposes a novel approach using Echo State Networks for learning variational level set segmentation as a spatiotemporal method. Compares ESN, RNN, GRU, LSTM, and 3D CNN architectures. Found that leaking rate and spectral radius critically influence ESN performance.