K-Electric complaint system — SMS for 30M people
Context
K-Electric supplies electricity to roughly 30 million people. Customers need to register complaints, check faults, look up load-shedding schedules, query bills, check defaulter status, and find their account number.
Why SMS is the right channel
The obvious 2017 answer was an app or a web portal. The correct answer was SMS, for a reason specific to the domain: the moment a customer most needs this system is during an outage. No power means no wifi and, before long, a phone the customer is conserving. SMS works on any handset, over a cellular network the customer isn't powering, at near-zero data cost.
Choosing the humble channel over the impressive one was the actual design decision.
Engineering constraints
At this population, inbound SMS arrives in bursts — and the largest bursts coincide exactly with the largest faults, when many customers in one area message at once. The engine is multithreaded to handle concurrent processing, because a system that serializes under load fails precisely when it is needed most.
Each message type maps to a query against utility systems, with responses composed to fit SMS length limits while remaining unambiguous. Terse is a hard requirement, not a style preference.
Stack
C# · multithreaded desktop engine · SMS gateway integration