Software engineer, I solve math equations for fun, play Sudoku and read comic.

Joined December 2019
101 Photos and videos
Pinned Tweet
14 Oct 2025
Ever think of an app that will give you directions to a new place you haven’t been to? Not like Maps that just show you the route from point A to point B but. It guides you using public transportation.
3
7
211
mahdi retweeted
Jun 7
One more state and you'd have your own country
71
237
2,784
82,696
Or it just shows that building fintech is for 1st class citizens, financially-stable or people with connections.
I realized something very strange. Most of the really successful Fintech founders in Nigeria didn’t just grow fully within the Nigerian educational system alone. A lot of them had some level of foreign exposure either through education, executive programs, or working closely with international financial systems before building at scale. Look at names like: Flutterwave’s Olugbenga Agboola with MIT Sloan exposure. Paga’s Tayo Oviosu with strong US educational/work background. Mitchell Elegbe of Interswitch whose inspiration reportedly came after exposure to payment systems in Scotland.
1
31
mahdi retweeted
I’ve spent the past couple of weeks building Looters: a public archive of Nigerian political corruption since the 1990s. Governors, ministers, shell companies, Swiss accounts, the Jersey trusts, — one searchable graph. You too can connect the dots: 1000reasons.vote/looters
550
11,070
16,145
1,098,696
I started getting free dopamine hits everyday from this guy blogs or threads. Sometimes I receive credit alerts to my account from Opay, Kuda or Moniepoint depending on whose article I'm reading.
Paystack processed over ₦1 trillion in transactions last year. Their APIs handled Black Friday spikes, salary-day traffic, and even the naira devaluation panic without major public downtime. Here are a few architecture patterns that make systems like that possible
32
mahdi retweeted
Apr 10
5,455
77,303
674,719
15,832,845
A Nigerian startup launched their app. Built a clean OTP flow. No rate limiting on the SMS endpoint. Shipped it. Within 48 hours, their Termii balance went from ₦150,000 to zero. They woke up to failed OTP delivery complaints from real users. Checked their logs. Someone had been hitting their /send-otp endpoint in a loop with thousands of requests sending SMS to sequential phone numbers that were not even their users. This is called SMS pumping fraud. Here is how it works: • Fraudsters find your open OTP endpoint • They send requests to thousands of phone numbers, sometimes numbers they control on premium routes • Every successful SMS costs you money • They get a cut from the carrier. You get the bill. It is automated. It runs while you sleep. The fixes that would have stopped it entirely: • Rate limit by IP: max 3 OTP requests per IP per hour • Rate limit by phone number: max 3 requests per number per 10 minutes • Add a minimum delay between requests • Implement CAPTCHA or device fingerprinting on the frontend • Alert yourself when SMS spend spikes above a threshold None of this is complicated. All of it takes less than a day to implement. That startup lost ₦150,000 in two days and had to shut down OTP entirely while they fixed it. Their users thought the app was broken. Some never came back. The breach was not dramatic. No hacker. No sophisticated attack. Just an open endpoint and a bot. Secure your OTP flow before you launch. Not after you've learned the hard way.
49
190
1,062
190,519
mahdi retweeted
There is a developer in Nigeria right now. Coding by generator light. Buying data 1GB at a time. Getting rejected by companies offering ₦80k. Being told they're not experienced enough. Watching their mates abroad earn 20x their salary for the same skill. Still opening their laptop tomorrow morning. That is not desperation. That is the most elite form of discipline on earth. And the world hasn't paid them what they're worth yet. But it will LETS GOO🚀
79
318
2,043
68,951
mahdi retweeted
Replying to @SumitM_X
This is a huge unbounded query on a 70M row table. I wouldn’t run it as-is. I’d break it down step by step. 1. Understand the use case - Does the UI really need 6 years of data in one call? - Can we limit the range or paginate? 2. Check indexing Make sure there’s an index on the filter INDEX(created_at) or better if combined filters exist INDEX(created_at, other_filters) 3. Avoid returning massive payloads - Add pagination / cursor-based API - Or return aggregated data instead of raw rows 4. Consider partitioning If this query is common - Partition by date (created_at) → Only relevant partitions are scanned 5. Precompute / cache For reports: - Use materialized views / summary tables - Or cache results (Redis, etc.) 6. Async processing If it’s a heavy report - Trigger a background job - Return a report ID / download link
3
3
38
13,581
mahdi retweeted
made a hook that adds a bouncing dvd logo to claude code whenever it's thinking
307
1,129
16,973
938,722
mahdi retweeted
today’s one-sentence horror: sudo has been largely maintained by a single person for ~30 years
227
1,178
22,741
1,117,889
Let this feature come to us adults please.
Jan 28
Linus Tech Tips praised YouTube for adding parental controls that let families block YouTube Shorts "I don't mind my kids using YouTube at all. I do mind a lot them doom scrolling shorts ... they'll rot your brain"
1
16
mahdi retweeted
GitHub stores millions of repositories the same way they exist on our local machine - literally as git repositories. Nothing very special. Instead of one copy, GitHub stores at least three copies of every single repository to make sure the code is never lost. This replication system is called Spokes at GitHub. When we push code, the write is not accepted unless a strict majority of replicas - at least 2 out of 3 - can successfully apply the change and produce the same result. Interestingly, the system watches real application traffic to detect failures. If three requests in a row fail to one of the servers for a repository, that server is marked offline, and traffic is routed to other replicas within seconds. No heartbeats needed - just monitoring the real user operations. Each replica lives in a different rack. When an entire rack goes down, repositories remain available because the other copies live elsewhere. And when repairs are needed after a server failure, the whole cluster helps out - the bigger the cluster, the faster it recovers. Spokes refuses write operations that it cannot commit to at least two places. This ensures that when your push succeeds, your code is already safe. This is also why GitHub rejects pushes during partial outages. Reads might still work, but writes fail because the system refuses to risk losing data. This is pretty much how GitHub stores repositories and, more importantly, prefers a simple design with consistency over durability and availability. Hope you also found it interesting.
39
85
1,968
161,894
Why are people saying stack overflow is dead? I visited it yesterday
this is a catastrophe. StackOverflow provided data to LLMs, LLMs replaced StackOverflow, and now no new Q&A hub exists to provide fresh data. it’s a self-undermining causal loop, like mold growing on food, consuming it, and dying once the food is gone.
1
21
mahdi retweeted
30
1,967
24,891
334,377
mahdi retweeted
22 Dec 2025
In Enugu Disco a Nigerian engineer is being paid N200k/monthly while an Indian or Lebanese worker with lower experience is being paid $15k/month. This happens in lots of other companies. Nigerians can’t be treated this poorly even in their own country. Where is NLC and co?
408
3,017
7,137
183,492
22 Dec 2025
Verifying myself: I am mxhdiqaim on Keybase.io. FOddSV7c6hkcSLFgREdD3eJCvad4JxweVZnG / keybase.io/mxhdiqaim/sigs/FO…

17
19 Dec 2025
This is a piece of art., crafted before the mankind of 21st century.
People really be building anything these days man
3
127
mahdi retweeted
20 Nov 2025
Replying to @Hetzner_Online
@Hetzner_Online I just created a fresh account, immediately asked to complete kyc, which I can't complete because it timed out the first time, and now the auth token is expired and you don't generate a new one when I try to verify again. At least get your kyc working smh
1
2
144
18 Nov 2025
Is cloudflare down?
103
14 Nov 2025
Somehow my stupid brain understands what is going on here 😭😭
15