I’m wrapping up my MSc in Mobile Telecommunications and Innovation this month while still working at iLab Africa. The degree pushed me into the weeds of network fundamentals - radio state machines, latency components, link budget calculations - and it’s changed how I think about mobile architecture in ways that pure Android development wouldn’t have.
Latency Isn’t Just “Slow Internet”
In telecoms, latency is broken down into four distinct components. Understanding these helps you optimise where it actually matters rather than guessing.
A few things I’ve applied directly:
- Reduce round trips: Batch API requests. One call fetching a profile and tasks beats two sequential calls - cutting propagation delay in half matters on high-latency 2G links.
- Compression: GZip cut 60-70% off my JSON payloads, which directly reduces transmission time on 2G/3G.
- CDNs: Hosting static assets on Cloudflare instead of a Nairobi server cut rural load times by around 40% by reducing propagation delay.
Reliability Means Designing for Failure
Mobile networks have base station failures, handoff packet loss, and coverage gaps. Thinking in terms of “online” or “offline” is too binary - real networks are somewhere in between constantly.
- Exponential backoff: Don’t hammer failing endpoints. Wait 1s, then 2s, then 4s.
- Network-tuned timeouts: I use a 5-second timeout on Wi-Fi, but allow 30 seconds on 2G. A blanket 10-second timeout fails the wrong users.
- Graceful degradation: If sync fails, queue locally and show cached data so users stay productive.
Real-World Networks Aren’t Symmetric
Download speeds are typically 5-10x faster than uploads on mobile networks. This makes heavy uploads disproportionately painful. I started compressing images client-side before upload - the difference is significant on 3G.
Battery Life is a Network Concern
Every network request forces the radio from an idle state to an active one. Apps that make frequent small requests drain batteries because the radio never gets to power back down.
- WorkManager Constraints: Sync non-urgent data only when on Wi-Fi and charging.
- Coalescing: Instead of syncing every edit, batch them and send every 5 minutes.
Thinking in latency budgets and radio states makes apps faster and more reliable in African network conditions. It’s a lens most Android development courses skip entirely.