Fuse is cooperative banking software for African cooperatives. I joined the product as a core pioneer backend engineer and helped build the platform that processed more than $2M in transactions during its first three years.
Purpose
Give cooperatives one operational system for member accounts, savings, lending, payments, governance, and administration without collapsing tenant boundaries.
My contribution
I build and continue to manage multi-tenant APIs at Tech Fusion Africa, translating cooperative finance rules into backend modules and long-running operational workflows.
Major functionality
- Cooperator onboarding, profiles, tenant administration, plans, billing, permissions, roles, and staff operations.
- Wallets, deposits, withdrawals, transfers, cooperative accounts, shares, dividends, subscriptions, and ledger history.
- Loan types, applications, repayment schedules, liquidity, guarantor flows, and marketplace-linked lending.
- Elections, polls, referrals, rewards, cashback, marketplace, PayFlow payroll, activity timelines, and analytics.
Architecture
I structured the platform as a NestJS monorepo that separates the HTTP service from a dedicated worker. I use MySQL and TypeORM to model common and tenant financial data, with Redis-backed caching and queues supporting hot paths. Scheduled and dynamic jobs handle settlements, reminders, billing, balance history, and other deferred work, while WebSocket and event modules support real-time and domain-event flows.
Integrations
- Paystack & Flutterwave payments
- Mono open-banking data
- Twilio / Dialog360 messaging
- SendGrid email
- Prembly identity checks
- Cloudinary & Filestack media
Engineering challenge
A cooperative banking platform combines tenant isolation with sensitive financial state. I address this with tenant-aware connections and cache interceptors, explicit ledger and settlement models, dedicated workers, throttling on sensitive endpoints, and risk-context/SAR event modules.
