Selected Projects
Seven years embedded with clients across six countries, building the systems that capture data in the field and turn it into decisions.
I build the apps that capture data and the dashboards and reports that turn it into information.
I run discovery with non-technical stakeholders, ship, and hand over so the client’s own team can run the system without me.
I have joined projects mid-stream and taken them to the end.
MarketSA — call-centre campaign platform (2024–Jul 2026)
- Situation
- A call centre with 300+ agents running on a legacy Microsoft Access front end — a separate executable per campaign, installed on every agent’s PC. The brief was to move it to a web-based system.
- What I found
- Keeping those installs current was the running cost. IT had to touch each machine to update it, and PCs drifted out of date — so agents on the same campaign could be working on different versions of the application without anyone noticing.
- What I built
- Angular/TypeScript front ends over Node.js REST APIs and MSSQL, served in the browser instead of installed per machine; a configurable forms-and-calculations engine so non-technical teams set up campaign logic themselves; call-QA, audit and agent-scorecard dashboards.
- What changed
- Nothing to install and nothing to keep in step: a change ships once and every agent has it at their next page load, so the outdated-client problem disappeared and IT stopped updating desks one at a time. Opening a new site or onboarding an agent became a login rather than a visit, with no per-machine Windows or Access dependency to carry. New-campaign launch time fell from 3–5 days to hours and developer involvement per campaign dropped by roughly 90%.
Akasi CRM — multi-campaign call-centre platform
- An Angular front end over Node.js APIs, where each campaign points at its own database — SQL Server or PostgreSQL.
- A form builder where an admin picks the campaign database table and maps each field to a real column, so captured leads write straight back.
- QA and audit scorecards configured per campaign, with the pass/fail rules set by an admin rather than in code.
- Fields an admin marks sensitive are masked for reviewers; revealing one returns a single value and writes an audit record of who looked, at what, and when.
Client projects delivered through CGA Technologies
- 01
Perivoli Early Childhood Development Data System
Perivoli Schools Trust · Malawi / Namibia / Zambia · 2020–2025
The Trust trains nursery teachers in three countries and needed one standard way to collect and report training data as it grew. The brief was to digitise paper forms; the real need was for head office to see training activity as it happened. We built an offline-first tablet app and a database that publishes results to the Trust’s website in real time, and digitised 5,000+ historic paper records. Forms were built as configurable templates so partner staff could change them without a developer.
- Node.js
- Vue.js
- Android
- AWS
My role
Lead developer for the Node.js APIs, Vue.js front end and Android capture app on AWS (ECS, RDS, S3, Lambda); ran UAT, trained partner teams, wrote the SOPs.
- 02
Teacher Management Information System (TMIS)
Teaching Service Commission (World Bank-funded) · Sierra Leone · 2023–2024
A national platform replacing paper workflows for 36,000+ payroll teachers, where a leave or transfer request used to mean a physical trip to headquarters. Live since January 2024 with 23,000+ teachers registered, 9,700+ licensing exams passed and 3,700 teachers recruited onto payroll through it.
- Vue.js
- Laravel
- GraphQL
- MySQL
My role
Full stack developer (Vue.js, Laravel, GraphQL, MySQL). Built the teacher licensing module to the Commission’s specification, the SQL and analytics behind the departmental dashboards, and automated ministry reports.
- 03
Wi De Ya — One Tablet Per School
Teaching Service Commission (World Bank-funded) · Sierra Leone · 2022–2023
A national attendance system where every school leader records daily teacher and pupil attendance on an offline-capable tablet that syncs to a secure database and public dashboard; rolled out to 300 primary schools and linked to teacher payroll records.
- Android
- SQL
My role
Developed the data-capture app and the MIS dashboard and reports consolidating attendance data across schools and regions, giving the Ministry its first national view of attendance.
- 04
Social Cash Transfer Programme MIS
Ministry of Gender (KfW/EU-funded) · Malawi · 2020–2023
Rebuild of the system behind a national cash transfer programme reaching 300,000+ households, adding an integrated grievance and case-management module linked to a call centre and real-time coverage indicators.
- Java
- Spring Boot
- MySQL
My role
Full stack developer on the Spring Boot/MySQL system; built the organisation and participant modules managing implementing partners and enrolled households.
- 05
Malawi Education Sector Improvement Programme
Ministry of Education · Malawi · 2021
A tablet-based real-time monitoring system for zonal officers covering 1,200 primary schools (21% of the country), and a Community Dialogue Platform through which 150 school communities raise issues with the Ministry by SMS and voice.
- PHP
- JavaScript
- MySQL
My role
Technical lead directing delivery of the monitoring app, dashboard and Excel reporting; trained ministry officers to run it without developer support.
- 06
PROSPER Monitoring & Reporting MIS
Concern Worldwide · Malawi · 2021
A shared reporting platform for a resilience programme covering 1.2 million people, letting five INGO and four UN partners submit field data and track progress against programme indicators.
My role
Built the MIS data-capture system through which partners submit their field data.
- 07
Monitoring, Evaluation & Learning Platform
Education Development Trust (FCDO-funded) · Ethiopia · 2021–2022
A cloud-based M&E platform supporting the Ethiopian Ministry of Education, with a mobile app for offline entry and user-configurable dashboards, built as an open system the Ethiopian authorities own outright.
- Java
- Android
My role
Android developer on the offline-first capture app, in a four-person peer-reviewed team, building dynamic form schemas and sync.
- 08
3D — CGA’s field-to-insight data platform
Corus International · Oct 2024–present
CGA’s product for development programmes: offline-first smart-form collection, submission review with a full audit trail, role-based permissions and real-time dashboards.
- Flutter
- Dart
- GitHub Actions
My role
Leading the rebuild of the mobile app in Flutter, merging the separate Android and iOS codebases into one, with GitHub Actions CI and automated tests.
Code and CV
The common thread: sit with the client, work out what they actually need, build it, and hand it over so their own team can run it.