DEV Community

Cover image for I Had Never Touched a Mobile Core Network. Then I Shipped a PR to Magma's Production Codebase
Karthik Unnikrishnan
Karthik Unnikrishnan

Posted on

I Had Never Touched a Mobile Core Network. Then I Shipped a PR to Magma's Production Codebase

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 by libssl3

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 subscriberdb Dockerfile 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.04 and ubuntu-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)