Case study 03 · Recommend
From WhatsApp threadsto a platform of its own.
Role
Engineering Lead
Timeline
Aug 2024 — Nov 2025
Team
3 engineers, led by me
Stack
NestJS · TypeScript · PostgreSQL · TypeORM · Next.js · Socket.IO · OpenAI · Paystack
3
engineers on the team I led
4
role tiers in the access-control model
All
repositories on automated CI/CD
Live
in-app chat and purchasing over WebSockets
The situation
Recommend connects customers, riders, vendors and distributors. Its conversations and purchases started out in WhatsApp — quick to launch, but living outside the product.
As Engineering Lead I owned the architecture and implementation across web, backend and bot systems, while also being the team's backend engineer — and led the move into Recommend's own real-time application.
Platform architecture
Simplified
1 · WhatsApp thread
where it started
2 · Recommend app
Next.js
3 · Socket.IO gateway
real-time chat & purchasing
4 · NestJS API
auth · RBAC · Paystack
5 · PostgreSQL
TypeORM
What I changed
- 01
Technical leadership
ProblemWeb, backend and bot services, built by a small team, needed one coherent architecture.ResultOwned the architecture and set reusable patterns for development and deployment across all repositories. - 02
Real-time platform
ProblemCustomer conversations and purchases lived in WhatsApp, outside the product.ResultDesigned a WebSocket / Socket.IO communication system that moved conversations and purchasing into Recommend's own app. - 03
Data & delivery
ProblemRelease friction slowed delivery, and one data model had to serve customers, riders, vendors and admins.ResultDesigned and optimised the PostgreSQL schema via TypeORM; CI/CD across repositories automated build and deploy. - 04
AI service bot
ProblemA generic LLM gives confident, wrong answers to prospective clients.ResultIntegrated OpenAI and tuned it on proprietary business knowledge to eliminate hallucinations. - 05
Auth, access & payments
ProblemMany kinds of user need very different powers over the same data and money.ResultEmail/password and Google OAuth, granular RBAC (Super Admin, tiered Admins, Vendors, Distributors), and Paystack platform-wide.
What I learned
“Leading a small team is mostly about removing decisions: when the patterns are clear, everyone ships faster and reviews become about the product, not the plumbing.”
Next case study
Velofi — Backend Software Engineer