Akbr Projects

Home / Projects

Projects

Most of what I've built, grouped by who it's for. Open any row for the full story.

Group by

Official statistics, at the Uganda Bureau of Statistics

Sanyu

2024 to now, AI

Uganda's AI assistant for official statistics.

You ask a question in plain language, in English or one of five Ugandan languages. Sanyu answers with the figure and its source, and it can also draw a chart or draft a short brief. The language model only decides what to look up. The number itself always comes from the statistics database, and Sanyu names the table and survey it came from.

We built it in-house at the Bureau, and Sunbird AI helped with the Ugandan languages.

  • 5,100+indicators from six official sources
  • 1,600+tables taken from published reports, each citeable by page
  • 40 mscold start, down from 30 to 60 seconds
  • 45golden-fact tests that run on every build

Node.js, SQLite, LLM tool calling, RAG, MCP endpoints, Python pipelines, Nginx and pm2.

statistics.ubos.org/sanyu
Sanyu's chat screen: a sidebar of data sources such as Census 2024 and CPI, and the prompt 'Ask Sanyu about Uganda's official statistics'

Census e-recruitment and field staff management

2023 to 2024, web platform

The system behind the people who counted Uganda in 2024.

Every district used it to recruit staff for the 2024 National Population and Housing Census and to keep their payroll records. The Bureau followed the whole effort on national dashboards. I was the main developer, and I ran the rollout.

  • 200,000+census staff it managed across the country
  • 80%faster fixes, once the tests and monitoring I added were in place

Next.js, MongoDB, Docker, AWS.

The national recruitment dashboard, showing applicant totals and a table of applicants per district

UBOS dissemination portal

2024 to now, data platform

Uganda's official statistics in one place, from more than six national datasets.

The 2024 census is live down to parish level, next to the Baseline Education Census 2025 and the Uganda Aquaculture Census 2025. Four more datasets are on the way, including the Malaria Indicator Survey 2024-25 and a poverty index built from the census. Each one opens as dashboards and maps, and you can download the tables.

I led the team of three that built it. I also wrote the pipelines that load the data and produce the reports, and a tool that pulls tables out of old PDF survey reports so people can search decades of them.

  • 6+national datasets in one place
  • 500,000+people have used it
  • 3people on the team I led

Python and SQL pipelines, Power BI, QGIS.

Visit statistics.ubos.org
The UBOS dissemination portal: the Census 2024, Baseline Education Census and Aquaculture Census cards, with four more datasets marked coming soon

Also at the Bureau

2023 to now, data work

Smaller jobs that kept the census moving.

I used machine learning to code census and survey answers, which saved months of manual work. I built the data collection tools for the national count, and wrote Python and QGIS scripts that helped the GIS team draw maps faster. I run the Bureau's servers on AWS and GCP, including a shared proxy that every outside connection now goes through. I've also run phishing drills with the security team.

Tools for census and survey teams

csync, a sync tool for CSPro

2026, open source

Move CSPro survey data between a CSWeb server and your own code.

Most census and survey fieldwork in the region runs on CSPro. Tablets collect cases and sync them to a CSWeb server, but getting those cases into your own code, and back again, is hard. csync reads the survey's dictionary and handles that part.

You pull cases into a plain SQLite file and change them as ordinary Python dictionaries. When you push them back, csync adds the vector clocks CSEntry expects, so the changes reach the tablets. It works with any dictionary, whether that's a staff list or a full household questionnaire, and it talks to CSWeb 8.0 and 8.1. You can use it as a Python library or from the command line.

  • AnyCSPro dictionary, with no field names hard-coded
  • 8.0 and 8.1CSWeb versions it talks to
  • 0third-party packages the core library needs

Python's standard library and SQLite, with an optional Flask page.

csync on GitHub

CSPro toolkit, a skill for AI assistants

2026, AI

Teaches Claude and other AI assistants to work on CSPro survey apps.

A CSPro app spreads across several files that have to stay in step, and CSPro can't compile an entry app from the command line. An AI assistant that edits one is working blind. This skill gives it a map.

It explains what each file does and how a change to the dictionary affects the rest. A linter checks logic edits before anyone opens CSPro. The skill also covers building a deployment package and asking a CSWeb server for its dictionaries and cases. It follows the Agent Skill format, a SKILL.md file that Claude and other assistants can load.

Markdown instructions and Python helper scripts.

The skill on GitHub

Civic platforms

National Youth Council accountability platform

2024, web platform

Where Uganda's youth council showed its money.

The National Youth Council of Uganda used it to publish each project it funds, with its budget and what it spent. Young people could download the reports and leave feedback. I built it in 2024 with support from Konrad-Adenauer-Stiftung.

Uchaguzi

2021, app and chatbot

Voter information for Uganda's 2021 general elections.

Voters could find out where to vote and what the rules were on WhatsApp or in a phone app. We built it for the Ministry of ICT's Government Citizen Interaction Centre and the Electoral Commission, with Konrad-Adenauer-Stiftung, and I led the team.

  • 10,000+people used it during the election

Flutter, Drupal, PHP, Python.

Read about it on PC Tech
Uchaguzi app screens on phones

Youth Action Handbook

2022, mobile app

A bilingual learning app for young peacebuilders in the Great Lakes.

The Great Lakes Youth Network for Dialogue and Peace, an EU and Konrad-Adenauer-Stiftung project, uses it to teach young people in DR Congo, Rwanda and Uganda. Learners take short courses with quizzes and earn a certificate at the end. I led development and published the app to the stores.

Flutter, with offline caching for patchy networks.

Android   iOS, archived listing
Four Youth Action Handbook app screens: home, sign in, a course, and a quiz

Makerere at 100

2022, web platform

The main website for Makerere University's centenary.

More than 12,000 people used it to give to the university and to buy centenary merchandise. I was the technical lead.

PHP and a custom WordPress theme.

100.mak.ac.ug

BudgetMate

2023, mobile app

Helps Yemen's Ministry of Finance collect budgets, with or without internet.

Spending units fill in budget requests in the app, by hand or from a CSV file. Where there's no internet, the app encrypts each request and sends it by SMS. It shared first place at the Yemen Public Financial Management Hackathon, which Yemen's Ministry of Finance and the IMF held in Amman in March 2023.

  • 1stplace, shared, with a USD 5,000 grant

Expo and React Native, MongoDB, Twilio.

The hackathon results, archived

Products and open source

TuuraHub

2026, product in beta

Rental management for East African landlords.

Landlords use it to keep track of units and tenants, and to send invoices and rent reminders over SMS or WhatsApp. Tenants get a portal where they can pay and report repairs. It's for landlords who have outgrown a spreadsheet but don't need enterprise software, and Uganda is the first market. I build it on the side, and it's in beta.

Next.js, Prisma and Postgres, Stripe, AWS S3.

tuurahub.com
The TuuraHub landing page: 'Manage every rental, without the chase' above buttons to create a hub and cards for landlords, renters and tenants

flutter_fido2

2022, open source

Sign in without passwords, in Flutter.

An open-source Flutter plugin for FIDO2 and WebAuthn. It registers security keys and signs the login challenges your server sends. It runs on phones and on Windows, and web support is in progress. I wrote it for my master's, along with a companion server.

On GitHub

Earlier

2017 to 2020, assorted

Smaller jobs from before the Bureau.

During the pandemic I built a foot-traffic counter that ran on iPads in SportChek stores in Canada. At Airtel, my intern team's leave system on Oracle APEX cut approvals from days to under an hour. My final-year project at Makerere tracked school shuttles. I also made the app and the ticketing for the Africa Now Summit, which close to a thousand delegates attended.