A few weeks ago I had never touched a mobile core network. I didn't know what an EPC was, what AGW stood for, or why anyone would run a 4G stack on their laptop.
Today I've deployed one, fixed a production bug in it, and shipped a PR that's now part of the codebase. Here's how that happened.
What is Magma?
Magma is a Linux Foundation Networking project — an open-source mobile core network platform that lets you deploy 4G and 5G infrastructure without expensive proprietary hardware. Think of it as the software that sits between your phone and the internet when you're on a cellular network.
I joined as a mentee with basically zero telecom knowledge. What followed was one of the most intense technical learning experiences I've had.
Deploying the stack
The first challenge was just getting the thing running. Magma's Access Gateway (AGW) runs inside Docker containers, and the setup involves coordinating a lot of moving parts — orchestration, subscriber databases, the gateway itself. Getting through that process from scratch forced me to actually understand what each component does, not just follow steps.
Finding the Ubuntu 24.04 breakage
Once the environment was running, I started auditing the Dockerfiles. The project had accumulated dependencies that silently broke on newer Ubuntu:
-
python3-distutils— removed in Ubuntu 24.04, so installs fail quietly -
libssl1.1— not available on 24.04, replaced bylibssl3
These aren't the kind of errors that scream at you. You have to actually check whether what the Dockerfile is requesting still exists in the target OS.
The fix: 14 files, one PR
The fix wasn't just swapping package names:
- Updated the
subscriberdbDockerfile to use Ubuntu 24.04 as base - Replaced deprecated packages with their 24.04 equivalents
- Updated the GitHub Actions CI workflow to test against a matrix of
ubuntu-20.04andubuntu-24.04 - Traced the breakage across 14 files where OS assumptions were baked in
The CI matrix means future contributors will catch OS-specific breakage before it ships — that felt meaningful. Not just fixing something, but making it harder to break again.
What surprised me
Open-source maintenance is a lot of archaeology. Code accumulates assumptions — about the OS, about which packages exist, about the Python version installed — and nobody documents them because at the time they were obvious. Finding them means reading carefully and asking what the code expects, not just what it does.
The second surprise: telecom infra sounds intimidating, but it's just software running in containers, with logs you can read like anything else.
What's next
I recently graduated from the Magma mentorship program (spring 2026 cohort) — credential here. Continuing to contribute to Magma while going deeper on the ML side — agentic AI frameworks, research papers, and projects connecting both worlds.
Originally posted on my blog — I write about ML, systems, and open source there.
Top comments (0)