2023 · Team · Production
Nkwa
A savings app for Cameroon on both stores: NestJS backend and the Expo mobile app, worked on as Backend Engineer at Nkwa Tech.
Mission
Nkwa is a savings product for Cameroonian users, live on the Play Store and App Store. I joined the team as Backend Engineer and worked across the NestJS backend and the React Native app for a little over a year.
For whom: everyday savers who want a disciplined place to put money aside from their mobile-money wallet. Constraints: a product already in production with real balances, a team of five, and releases that had to keep both stores in sync.
Manifest
| Layer | Choice | Version | Why |
|---|---|---|---|
| services | NestJS | — | Typed modules and DI for a growing team. |
| app | React Native + Expo dev client | — | One codebase for both stores without giving up native modules. |
| data | PostgreSQL | — | Balances and transactions need a relational store. |
| infra | Docker | — | Reproducible backend deploys. |
Decisions
Backend first. Optimised the NestJS services for scalability and robustness before adding features, so growth did not come with incidents.
Expo dev client for the mobile app. Kept native modules while keeping the iteration speed of Expo; releases shipped to both stores from one codebase.
Ship in small steps. Continuous improvement of a live product rather than a rewrite, because money was already moving through it.
Impact
- Stores
- 2
The product stayed live on both stores through my tenure, with the backend hardened and the mobile UI evolved with new features.
What broke
The first thing I would fix today: the two release tracks (store builds and backend deploys) were coordinated by hand, so a backend change could reach production before the app build that needed it. A versioned API contract with a compatibility window is the change I would make first.
Ship log
- Joined as Backend Engineer
- Handed over