It is easy to build software that looks great on a demo laptop over office wifi. It is much harder to build software that still works on a mid-range Android phone, on mobile data, in a shop with three bars of signal. That second version is the one that gets used.

Design for the real device

Most of our users reach for a phone first, so we build mobile-first and keep pages light. Fewer heavy images, less JavaScript, and layouts that reflow cleanly on a small screen. A page that loads in two seconds on 3G beats a beautiful one that never finishes.

Payments where they live

Card-first checkout flows quietly exclude most customers here. We treat MTN MoMo and Airtel Money as first-class, posting payments straight to the record so nobody rekeys a transaction at the end of the day.

Fail gracefully

Connections drop. Good software expects it: queue the action, confirm when the network returns, and never lose a sale because a request timed out. Building for the real world is not a constraint, it is the whole job.