Akintola Steve Profile picture
Apr 1 12 tweets 3 min read Read on X
There’s something we don’t really talk about enough.

Nigeria is connected to some of the most powerful undersea cables ever built:
MainOne, WACS, ACE, Glo-1.
Billions of dollars of infrastructure sitting right off our coastline.

Yet most of my mutuals and I are still buying 1GB for ₦1,000, and it’s finishing in 2 hours.

Something is just so deeply wrong, and most people don’t even know where to point the finger.
It’s very easy to assume the problem is the cables, like maybe there isn’t enough international bandwidth coming in.

That’s never been the problem.

The problem starts the moment the signal leaves the water and tries to travel inland. That’s where everything collapses.
A lot of what’s carrying your data across Nigeria isn’t even fiber buried underground.

It’s microwave. Tower to tower. Like a radio signal bouncing across the country.

Cheaper to deploy? Yes. But slower, congested, and breaks down in bad weather.

That’s why your internet gets worse every time it rains. Not network maintenance, so stop blaming these guys.
Here’s something most people don’t know.

MTN Nigeria and Airtel Nigeria don’t own most of the towers your data travels through.

IHS Towers and American Tower Corporation own them. The telcos pay rent every month just to put their equipment up there.

So part of every ₦1,000 you spend on data isn’t staying in Nigeria. It’s leaving.
Then there’s the spectrum conversation.

The 5G spectrum auction in 2022. MTN Nigeria and Airtel Nigeria paid $273 million each for a slot.

And the moment that payment cleared, the clock started ticking on how fast they’d earn it back.

I’m not justifying anything though. Just saying that cost didn’t disappear. It got passed down.
Globacom is the most confusing part of this whole thing.

They own Glo-1, their own submarine cable, built their own pipe into the country.

On paper, that should make them the fastest and cheapest by a wide margin. In practice, they’re neither.

At some point, the infrastructure argument runs out and it just becomes a management problem.
9mobile is a different kind of sad.

The network has changed hands multiple times, been on the edge of collapse for years, and has seen very little serious capital injection.

People joke about 9mobile signal, but that network is genuinely just trying to survive at this point. You guys don’t know.
The part that should actually make people angry.

Nigerian Communications Commission has Quality of Service regulations. Rules telcos are legally required to meet on speeds, call drops, and availability.

They breach them regularly, and the fines are small enough that breaching is cheaper than fixing anything.

That’s not an oversight. That’s a policy design failure dressed up as regulation.
MTN Nigeria and other Nigerian telcos posted massive profits last year.

Nothing wrong with profit. But almost none of it went back into laying new fiber or reaching underserved communities.

220 million people, some of the worst internet quality on the continent. The shareholders are doing just fine, though.
This isn’t a rant actually, Ranting without direction is just noise.

What actually moves the works:

1) Fines painful enough to force real behaviour change,
2) Mandatory fibre rollout timelines,
3) Real competition instead of four companies quietly agreeing to be equally terrible,
5) And 5G that actually reaches beyond Lagos Island.
The cables are there!
The towers are there!
The spectrum is allocated!

Everything needed to give Nigerians fast, affordable internet already exists in some form.

What’s missing isn’t infrastructure.

It’s accountability, and until that changes, this conversation will repeat every single year.

₦1,000 for 1GB. Still loading.
May God help us all.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Akintola Steve

Akintola Steve Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @Akintola_steve

Mar 31
Bookmark this tweet right now.

Not after reading. Now.

At some point, you will build a payment system, work on one, or inherit one that is already broken.

When something goes wrong, and it will, you will need exactly what I am about to show you.

This is the most complete payment system breakdown I have ever written.

Every flow. Every edge case. Every trap. One thread
In 2023, I built a payment system for a marketplace.

First month: ₦127 million processed.

I was celebrating.

Then my finance person called.

“Stephen, the numbers don’t add up. There’s a ₦4.3 million discrepancy.”

No duplicate charges. No missing webhooks. No obvious bug.

Just ₦4.3 million sitting somewhere between the user’s bank and my merchant wallet.

Unaccounted for.

I aged five years that week.

Let me save you from that. 👇
Before anything else, understand this:

A payment is not one event.

It is a journey through multiple systems. Every single one can fail.

Every box in this flow is a place where money can disappear.

We are going through all of them. Image
Read 20 tweets
Mar 23
A startup spent 18 months building a product for Nigeria
launched it, got press, investors were happy, the team was proud
then something happened that nobody in that office saw coming...
The first week after launch the numbers looked great
downloads were coming in, signups were going up, everyone was celebrating
then the support messages started
"the app keeps loading" "I can't submit the form" "it just shows blank screen"
the team was confused because on their end everything was working perfectly fine
they started digging into where exactly the complaints were coming from
and that's when it hit them
almost every single complaint was from users outside Lagos
Ibadan, Aba, Kano, Kaduna, Maiduguri, Owerri
users in those areas couldn't use the app properly at all
but the team had been building and testing on wifi inside a Lagos office for 18 months straight and never once simulated what the experience looked like on a bad network
Read 12 tweets
Mar 21
A Nigerian fintech startup lost ₦47 million in one night.
Not to hackers. Not to fraud.
To one missing line of code.
Every backend dev in Nigeria needs to see this
It was 2am. Their support inbox was on fire.
Users calling, screaming, money left their wallets, nothing reached the recipient.
The on-call dev opens the logs and sees thousands of silent failures stretching back to 9pm.
No alert. No rollback. Nothing.
The bug?
They ran two separate DB writes:
1) Debit the sender.
2) Credit the receiver

As individual queries. No transaction wrapper. No atomicity.
When the second write failed (network blip, connection timeout), the first one had already gone through.
Money gone. Recipient got nothing. Balance just evaporated.
Read 8 tweets
Mar 16
Two years ago, a developer I know launched a small product here in Nigeria.

Everything was going fine.

Users were signing up, logging in, and using the platform daily.

Then one morning he woke up to something strange.

Several users were complaining their accounts had been accessed… without their permission.

Kindly bookmark for yourself and retweet so others too can learn
Nothing looked wrong at first.

Passwords weren’t leaked.
Database wasn’t breached.
Servers weren’t compromised.

Yet attackers were somehow acting as legitimate users.

Which raised a bigger question:

If the credentials were safe… how were the attackers getting in?
After digging through logs, they found the answer.

The attackers didn’t steal passwords.

They stole something else.

Authentication tokens.

And once you understand what those are, you start realizing why authentication systems must be designed carefully.

Let’s break it down.
Read 16 tweets
Mar 6
Last year a junior developer built an app that suddenly went viral.

Everything was working perfectly… until 200,000 users showed up at the same time.

The server crashed.
The database froze.
Users couldn’t log in.
The product died in 6 hours.
Weeks later he interviewed at a big tech company.

They asked him one question:

“How would you design a system that can handle 1 million users?”

He failed the interview.

Not because he couldn’t code.

Because he didn’t understand system design.

This thread will explain system design so simply that when you face this question in an interview, you’ll know exactly what to say.

Bookmark and retweet this. You’ll need it someday.
Most developers prepare for interviews by grinding:

• LeetCode
• Algorithms
• Framework questions
But senior engineering interviews often care more about one thing:
Can you design a system that scales?
Let’s start simple.

Imagine you build a basic app.

The architecture looks like this:

User → Server → Database

That’s enough for your first 100 users.

Everything works perfectly.
Read 12 tweets
Mar 5
A friend of mine walked into a backend interview feeling confident.

10 minutes in, the interviewer asked:

“What actually happens when you type a website URL and press Enter?”

He froze.

Not because it was hard… but because nobody ever explained it simply.

So here are backend interview questions explained in plain English.

Bookmark this. Retweet for others preparing.
What happens when you type a website URL and press Enter?

Example: google.com

Here’s the simple flow:

• Your browser asks DNS for the website’s IP address
• DNS responds with the server location
• Your browser sends a request to that server
• The server sends back HTML, CSS, and JavaScript
• Your browser renders the webpage

Simple chain:

Name → Address → Request → Response → Page loads.
What is an API?

Think of an API like a waiter in a restaurant.

You (the frontend) don’t go into the kitchen.

You tell the waiter:

“Bring me user data.”

The waiter (API) goes to the kitchen (server/database), gets the data, and brings it back.

Frontend → API → Database → API → Frontend.
Read 15 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(