<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Loyc Cossou</title>
    <description>The latest articles on DEV Community by Loyc Cossou (@loycossou).</description>
    <link>https://dev.to/loycossou</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1987013%2F5ae17382-6c43-4e0a-96a3-3bc11a9a7126.png</url>
      <title>DEV Community: Loyc Cossou</title>
      <link>https://dev.to/loycossou</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/loycossou"/>
    <language>en</language>
    <item>
      <title>I've Been Trying to Solve the Same Problem Since 2017. Here's What I Learned.</title>
      <dc:creator>Loyc Cossou</dc:creator>
      <pubDate>Thu, 28 May 2026 20:16:53 +0000</pubDate>
      <link>https://dev.to/loycossou/ive-been-trying-to-solve-the-same-problem-since-2017-heres-what-i-learned-40d0</link>
      <guid>https://dev.to/loycossou/ive-been-trying-to-solve-the-same-problem-since-2017-heres-what-i-learned-40d0</guid>
      <description>&lt;p&gt;I was born curious. Always trying to understand how things work. Why things break. Why some markets move and others don't.&lt;/p&gt;

&lt;p&gt;West Africa's telecom infrastructure broke my heart three times before I figured it out.&lt;/p&gt;

&lt;p&gt;This is that story.&lt;/p&gt;

&lt;h2&gt;
  
  
  2017. A Spanish Guy. A Crazy Idea.
&lt;/h2&gt;

&lt;p&gt;A Spanish aggregator called me. He had a bank in Côte d'Ivoire. The bank wanted its customers to buy airtime, pay bills, top up their phones — directly from the app.&lt;/p&gt;

&lt;p&gt;Simple idea. Massive problem.&lt;/p&gt;

&lt;p&gt;There was no API. No SDK. No documentation that made sense. Nothing.&lt;/p&gt;

&lt;p&gt;So we built what we had: an Android app that executed USSD commands.&lt;/p&gt;

&lt;p&gt;If you don't know USSD — it's that *123# thing you dial on your phone. The backbone of mobile services in Africa. Never designed to be automated. We automated it anyway.&lt;/p&gt;

&lt;p&gt;The setup was something. Phones had to stay on. Plugged in. Screen on. Foreground. Always. When a customer requested airtime, our system sent the command, the phone dialed the sequence, parsed the response, reported back.&lt;/p&gt;

&lt;p&gt;It worked. Barely. But it worked.&lt;/p&gt;

&lt;p&gt;Bad connectivity. Phones crashing. USSD menus changing without warning. Maintaining it felt like keeping a candle lit in a storm.&lt;/p&gt;

&lt;p&gt;The funny thing? We still use phones today. Not in production — but to test new markets, map menus, troubleshoot when an operator makes a silent change at 2am. Some ghosts you keep around because they're useful.&lt;/p&gt;

&lt;h2&gt;
  
  
  Then Wave Arrived. And Everything Died.
&lt;/h2&gt;

&lt;p&gt;The business was running. The bank's customers were buying airtime. Volumes growing. SIM cards loaded with funds, processing transactions across operators in Côte d'Ivoire.&lt;/p&gt;

&lt;p&gt;Then Wave — the Senegalese mobile money giant — decided they wanted to resell airtime too.&lt;/p&gt;

&lt;p&gt;The operators made a collective decision overnight. Anyone reselling airtime without a direct agreement: blocked.&lt;/p&gt;

&lt;p&gt;No call. No email. No warning.&lt;/p&gt;

&lt;p&gt;Our SIMs just stopped working. Some had significant balances. Gone. Not a negotiation. Not a refund. Just: gone.&lt;/p&gt;

&lt;p&gt;Wave went to the ARTCI — the telecom regulator — and argued that if a bank could do it, they should be able to also. The operators responded by blocking the bank too.&lt;/p&gt;

&lt;p&gt;Everything stopped. Months of work. Days to die.&lt;/p&gt;

&lt;p&gt;That was the first time the market broke my heart.&lt;/p&gt;

&lt;h2&gt;
  
  
  COVID Gave It Back. Then Took It Again.
&lt;/h2&gt;

&lt;p&gt;Between 2018 and 2022, I didn't quit. I circled.&lt;/p&gt;

&lt;p&gt;In 2020, lockdown. People stuck at home. No access to mobile money agents. Everyone needed to top up their phones.&lt;/p&gt;

&lt;p&gt;We launched an online airtime platform. It was a hit. Real demand, real transactions, real growth.&lt;/p&gt;

&lt;p&gt;But we didn't have the liquidity to sustain the flow. When your float runs thin and you're processing hundreds of recharges a day, complaints come faster than revenue. We had to shut it down.&lt;/p&gt;

&lt;p&gt;Three attempts. Three times the demand was real. Three times something outside the product stopped us.&lt;/p&gt;

&lt;p&gt;That's the thing about this market. The problem is real. The demand is real. The infrastructure is just not there yet. And building it is the job.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Call That Brought Me Back
&lt;/h2&gt;

&lt;p&gt;Two years ago. Same Spanish aggregator.&lt;/p&gt;

&lt;p&gt;His biggest market was The Gambia. Already live for airtime through a local aggregator. But he wanted to launch data bundles and power vouchers — electricity codes from NAWEC, the national utility.&lt;/p&gt;

&lt;p&gt;Let me explain power vouchers because this is one of those things invisible from the outside.&lt;/p&gt;

&lt;p&gt;In The Gambia — and across most of West Africa — electricity meters are prepaid. No monthly bill. No direct debit. You buy a voucher for whatever amount you want. Give your meter number. Pay via mobile money. Receive a code by SMS. Enter it into your meter. Done.&lt;/p&gt;

&lt;p&gt;Pure prepaid utility infrastructure. Running entirely on mobile money rails. Completely normal here. Completely invisible everywhere else.&lt;/p&gt;

&lt;p&gt;His current aggregator couldn't do it. Airtime only.&lt;/p&gt;

&lt;p&gt;He needed one API for everything. Airtime, bundles, power vouchers. One key. One documentation. One integration.&lt;/p&gt;

&lt;p&gt;We said yes. And this time — we built it like it deserved to be built.&lt;/p&gt;

&lt;h2&gt;
  
  
  What "Properly" Actually Means
&lt;/h2&gt;

&lt;p&gt;The new architecture — which became Pillar — looks nothing like 2017.&lt;/p&gt;

&lt;p&gt;REST API. Versioned endpoints. Idempotency key on every transaction — so a network retry never becomes a double debit. HMAC-signed webhooks so clients can verify every callback is real. Multi-gateway routing so if one operator connection drops, we failover silently. Auto-reconciliation against operator ledgers. Full audit log. Separate sandbox and production environments.&lt;/p&gt;

&lt;p&gt;The phones still exist. But as tools, not infrastructure.&lt;/p&gt;

&lt;p&gt;The difference between 2017 and today isn't just better code. It's a different philosophy. In 2017 we were working around the problem. Today the problem is the product.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Part Nobody Talks About: Signing Operators
&lt;/h2&gt;

&lt;p&gt;The hardest part of Pillar has nothing to do with engineering.&lt;/p&gt;

&lt;p&gt;To route a transaction through MTN, Orange, Moov, Africell — you need a direct commercial agreement. Not an API key you generate online. A real contract. Negotiated with real humans. Over real months.&lt;/p&gt;

&lt;p&gt;Here's what that looks like.&lt;/p&gt;

&lt;p&gt;You start at the bottom. Technical people. Commercial teams. Middle management. You explain your business. They don't understand it. They're cautious. They want to see who else is doing this. They need permission from someone above them, who needs permission from someone above them.&lt;/p&gt;

&lt;p&gt;Once, we spent months in conversations with the number two operator in a market. Every meeting felt productive. Then the decision landed on the actual decision-maker's desk.&lt;/p&gt;

&lt;p&gt;Rejected in two days.&lt;/p&gt;

&lt;p&gt;We went to the market leader. Validated in two weeks.&lt;/p&gt;

&lt;p&gt;Two days later, the number two operator called us back. Suddenly very interested.&lt;/p&gt;

&lt;p&gt;Nobody wants to be first. Everyone wants to be second before the ink is dry on the first signature. Once you understand this — you can use it. But it costs time that nobody warns you about.&lt;/p&gt;

&lt;p&gt;We've spent over a year building these relationships. That's not something you replicate by reading our docs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Market Is Different
&lt;/h2&gt;

&lt;p&gt;People sometimes ask why we don't just use a global telecom API provider.&lt;/p&gt;

&lt;p&gt;Honest answer: USSD is still the dominant interface here. Not apps. Not web portals. *123# menus. The banking penetration rate is extremely low. In many markets, mobile money IS the bank. The infrastructure assumptions that hold in Europe don't apply here.&lt;/p&gt;

&lt;p&gt;When you call POST /v1/airtime/send on Pillar, you're not hitting a clean endpoint that hits another clean endpoint. You're traversing a chain that might involve a physical SIM gateway, a USSD session, an operator backend running 2009 software, and a response parser that handles six different failure message formats because nobody standardized them.&lt;/p&gt;

&lt;p&gt;We absorb all of that. That's what Pillar is.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where We Stand
&lt;/h2&gt;

&lt;p&gt;Pillar is live in four countries: Côte d'Ivoire, Bénin, The Gambia, Mali. One API. Airtime, data bundles, utility vouchers, CanalPlus TV subscriptions.&lt;/p&gt;

&lt;p&gt;Thousands of transactions a month. Zero major incidents. 99.4% success rate. 240ms median latency.&lt;/p&gt;

&lt;p&gt;Eight years. Three attempts. One regulatory war. One COVID story. More operator rejection meetings than I want to remember.&lt;/p&gt;

&lt;p&gt;The market was always there. It just needed someone willing to stay.&lt;/p&gt;

&lt;p&gt;If you're building something that touches telecom distribution in West Africa — or if you're an aggregator who wants to expand without rebuilding everything from scratch — I'd love to talk.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;pillar.cx&lt;br&gt;
&lt;a href="mailto:partnerships@pillar.cx"&gt;partnerships@pillar.cx&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Pillar is a product of Connectify, based in Cotonou, Bénin.&lt;/p&gt;

</description>
      <category>api</category>
      <category>telecom</category>
      <category>airtime</category>
      <category>westafrica</category>
    </item>
  </channel>
</rss>
