Computer scientist who automates the boring stuff, teaches machines to see, and builds the interfaces around it all.
About Me
I can't start anything without a reason. So step one is finding it, and step two is building the thing without losing sight of why it exists.
It all started with nosy questions. How does a TV broadcast end up in your living room? How does a bank know what's in your account? Animations, games, the internet: nearly everything I loved led back to a computer, and I wanted in. I couldn't pick just one corner of it, so I picked computer science.
These days I'm in my third year at Uganda Christian University, majoring in AI and Robotics with data science alongside it, because you can't perfect automation without understanding data. The plan is simple: start each year as a completely different person at everything I do.
How I work. I design the system and make the calls. AI tools write the first draft of the code, then I review it, change it and test it until it does exactly what I meant.
Experience
IT Intern, Uganda Civil Aviation Authority, Entebbe, April to August 2026
Public Relations Manager, Honours College, UCU, November 2025 to November 2026
Class Representative, Computer Science, UCU
Web Designer and Manager (Intern), Makerere University Innovation Pod, February to September 2024
Achievements
Bronze Honour, International Youth Math Challenge 2025
National mathematics camp invite, where the country's top 100 students were tested to pick a team of 15
Africa's Talking hackathon, where my team built NetDoctor
Education
BSc Computer Science, Uganda Christian University, AI and Robotics track. CGPA 4.73 out of 5.
Cameras record far more than anyone can watch. I'm investigating whether computers can flag suspicious behaviour from body movement alone, and whether training on noisy real-world footage helps.
Captions fall apart in noisy rooms, and deaf and hard-of-hearing people pay the price. On a team of six, I'm helping build a system that reads lips alongside audio.
Intelligent systemsManuscript in preparation
A PRISMA-guided review of how computer vision detects suspicious activity in surveillance video. Yes, I read all the papers.
Intelligent systemsCourse paper
A philosophy paper on what happens when efficiency becomes an optimisation problem and the thing being optimised includes people.
Cameras record far more than anyone can watch. I'm investigating whether computers can flag suspicious behaviour from body movement alone, and whether training on noisy real-world footage helps.
Captions fall apart in noisy rooms, and deaf and hard-of-hearing people pay the price. On a team of six, I'm helping build a system that reads lips alongside audio.
Intelligent systemsManuscript in preparation
A PRISMA-guided review of how computer vision detects suspicious activity in surveillance video. Yes, I read all the papers.
Intelligent systemsCourse paper
A philosophy paper on what happens when efficiency becomes an optimisation problem and the thing being optimised includes people.
Cameras record far more than anyone can watch. I'm investigating whether computers can flag suspicious behaviour from body movement alone, and whether training on noisy real-world footage helps.
Captions fall apart in noisy rooms, and deaf and hard-of-hearing people pay the price. On a team of six, I'm helping build a system that reads lips alongside audio.
Intelligent systemsManuscript in preparation
A PRISMA-guided review of how computer vision detects suspicious activity in surveillance video. Yes, I read all the papers.
Intelligent systemsCourse paper
A philosophy paper on what happens when efficiency becomes an optimisation problem and the thing being optimised includes people.
Cameras record far more than anyone can watch. I'm investigating whether computers can flag suspicious behaviour from body movement alone, and whether training on noisy real-world footage helps.
Captions fall apart in noisy rooms, and deaf and hard-of-hearing people pay the price. On a team of six, I'm helping build a system that reads lips alongside audio.
Intelligent systemsManuscript in preparation
A PRISMA-guided review of how computer vision detects suspicious activity in surveillance video. Yes, I read all the papers.
Intelligent systemsCourse paper
A philosophy paper on what happens when efficiency becomes an optimisation problem and the thing being optimised includes people.
Cameras record far more than anyone can watch. I'm investigating whether computers can flag suspicious behaviour from body movement alone, and whether training on noisy real-world footage helps.
Intelligent systems · In progress · 2026-10 · Team project
Captions fall apart in noisy rooms, and deaf and hard-of-hearing people pay the price. On a team of six, I'm helping build a system that reads lips alongside audio.
Intelligent systems · Manuscript in preparation · 2026-10
A PRISMA-guided review of how computer vision detects suspicious activity in surveillance video. Yes, I read all the papers.
Intelligent systems · Course paper · 2026-10
A philosophy paper on what happens when efficiency becomes an optimisation problem and the thing being optimised includes people.
I plan my days in a paper notebook. This tool turned 33 pages of those notes into a working Notion system that keeps running even when my computer is off.
On a team of two, I worked on predicting hourly air pollution in Ugandan cities from low-cost sensor data, then the model went live behind a dashboard.
A minimalist daily planner that floats on your Ubuntu desktop, with a translucent glass window, weekly objectives and a focus timer.
Data and automationRunning
A small automation pipeline that gives this site an actual pulse.
Building and shaping systemsLive demo
An intern check-in app that swaps the paper sign-in sheet for one button, and shows supervisors who's in today.
Building and shaping systemsInternship project
During my internship at the Uganda Civil Aviation Authority, I built a web-based system for handling passenger complaints, getting passengers, service providers and Authority staff into one workflow.
Building and shaping systemsInternship project
Same internship, different challenge: a simple Java desktop replica of an airport operational database, for practising how flight records are amended.
Building and shaping systemsHackathon prototype · Team project
A network diagnostics platform, built by a small team at the Africa's Talking hackathon, that helps customers and internet providers find exactly where a connection failed.
Intelligent systemsPrototype · Team project
A team project that uses computer vision to tell ripe tomatoes from unripe ones.
Building and shaping systemsIn development
A Linux desktop client that wants to get along with Google Quick Share.
Data and automationCompetition entries
Machine learning competition entries, from predicting financial stress using mobile money behaviour to predicting biodiversity using climate data.
I plan my days in a paper notebook. This tool turned 33 pages of those notes into a working Notion system that keeps running even when my computer is off.
On a team of two, I worked on predicting hourly air pollution in Ugandan cities from low-cost sensor data, then the model went live behind a dashboard.
A minimalist daily planner that floats on your Ubuntu desktop, with a translucent glass window, weekly objectives and a focus timer.
Data and automationRunning
A small automation pipeline that gives this site an actual pulse.
Building and shaping systemsLive demo
An intern check-in app that swaps the paper sign-in sheet for one button, and shows supervisors who's in today.
Building and shaping systemsInternship project
During my internship at the Uganda Civil Aviation Authority, I built a web-based system for handling passenger complaints, getting passengers, service providers and Authority staff into one workflow.
Building and shaping systemsInternship project
Same internship, different challenge: a simple Java desktop replica of an airport operational database, for practising how flight records are amended.
Building and shaping systemsHackathon prototype · Team project
A network diagnostics platform, built by a small team at the Africa's Talking hackathon, that helps customers and internet providers find exactly where a connection failed.
Intelligent systemsPrototype · Team project
A team project that uses computer vision to tell ripe tomatoes from unripe ones.
Building and shaping systemsIn development
A Linux desktop client that wants to get along with Google Quick Share.
Data and automationCompetition entries
Machine learning competition entries, from predicting financial stress using mobile money behaviour to predicting biodiversity using climate data.
I plan my days in a paper notebook. This tool turned 33 pages of those notes into a working Notion system that keeps running even when my computer is off.
On a team of two, I worked on predicting hourly air pollution in Ugandan cities from low-cost sensor data, then the model went live behind a dashboard.
A minimalist daily planner that floats on your Ubuntu desktop, with a translucent glass window, weekly objectives and a focus timer.
Data and automationRunning
A small automation pipeline that gives this site an actual pulse.
Building and shaping systemsLive demo
An intern check-in app that swaps the paper sign-in sheet for one button, and shows supervisors who's in today.
Building and shaping systemsInternship project
During my internship at the Uganda Civil Aviation Authority, I built a web-based system for handling passenger complaints, getting passengers, service providers and Authority staff into one workflow.
Building and shaping systemsInternship project
Same internship, different challenge: a simple Java desktop replica of an airport operational database, for practising how flight records are amended.
Building and shaping systemsHackathon prototype · Team project
A network diagnostics platform, built by a small team at the Africa's Talking hackathon, that helps customers and internet providers find exactly where a connection failed.
Intelligent systemsPrototype · Team project
A team project that uses computer vision to tell ripe tomatoes from unripe ones.
Building and shaping systemsIn development
A Linux desktop client that wants to get along with Google Quick Share.
Data and automationCompetition entries
Machine learning competition entries, from predicting financial stress using mobile money behaviour to predicting biodiversity using climate data.
I plan my days in a paper notebook. This tool turned 33 pages of those notes into a working Notion system that keeps running even when my computer is off.
On a team of two, I worked on predicting hourly air pollution in Ugandan cities from low-cost sensor data, then the model went live behind a dashboard.
A minimalist daily planner that floats on your Ubuntu desktop, with a translucent glass window, weekly objectives and a focus timer.
Data and automationRunning
A small automation pipeline that gives this site an actual pulse.
Building and shaping systemsLive demo
An intern check-in app that swaps the paper sign-in sheet for one button, and shows supervisors who's in today.
Building and shaping systemsInternship project
During my internship at the Uganda Civil Aviation Authority, I built a web-based system for handling passenger complaints, getting passengers, service providers and Authority staff into one workflow.
Building and shaping systemsInternship project
Same internship, different challenge: a simple Java desktop replica of an airport operational database, for practising how flight records are amended.
Building and shaping systemsHackathon prototype · Team project
A network diagnostics platform, built by a small team at the Africa's Talking hackathon, that helps customers and internet providers find exactly where a connection failed.
Intelligent systemsPrototype · Team project
A team project that uses computer vision to tell ripe tomatoes from unripe ones.
Building and shaping systemsIn development
A Linux desktop client that wants to get along with Google Quick Share.
Data and automationCompetition entries
Machine learning competition entries, from predicting financial stress using mobile money behaviour to predicting biodiversity using climate data.
I plan my days in a paper notebook. This tool turned 33 pages of those notes into a working Notion system that keeps running even when my computer is off.
Data and automation · Live · 2026-10 · Team project
On a team of two, I worked on predicting hourly air pollution in Ugandan cities from low-cost sensor data, then the model went live behind a dashboard.
Building and shaping systems · In development · 2026-10
A minimalist daily planner that floats on your Ubuntu desktop, with a translucent glass window, weekly objectives and a focus timer.
Data and automation · Running · 2026-11
A small automation pipeline that gives this site an actual pulse.
Building and shaping systems · Live demo · 2026-11
An intern check-in app that swaps the paper sign-in sheet for one button, and shows supervisors who's in today.
Building and shaping systems · Internship project · 2026-08
During my internship at the Uganda Civil Aviation Authority, I built a web-based system for handling passenger complaints, getting passengers, service providers and Authority staff into one workflow.
Building and shaping systems · Internship project · 2026-06
Same internship, different challenge: a simple Java desktop replica of an airport operational database, for practising how flight records are amended.
Building and shaping systems · Hackathon prototype · 2026-09 · Team project
A network diagnostics platform, built by a small team at the Africa's Talking hackathon, that helps customers and internet providers find exactly where a connection failed.
Intelligent systems · Prototype · 2026-03 · Team project
A team project that uses computer vision to tell ripe tomatoes from unripe ones.
Building and shaping systems · In development · 2026-10
A Linux desktop client that wants to get along with Google Quick Share.
Data and automation · Competition entries · 2026-10
Machine learning competition entries, from predicting financial stress using mobile money behaviour to predicting biodiversity using climate data.
Posters I designed for the Honours College at Uganda Christian University. Less Python, more Inkscape.
Building and shaping systems · Gallery · 2026-02
My first 3D project, modelled and rendered in Blender. Everyone starts somewhere.
Technology
Confident
Python
PyTorch
pandas
NumPy
scikit-learn
LightGBM
OpenCV
FastAPI
SQL
Git
Inkscape
Figma
Illustrator
Canva
Used
JavaScript
React
TypeScript
Node.js
Express
Django
Flask
Java
Oracle
MySQL
PostgreSQL
C
C++
Spark
Airflow
pytest
Evidently
PySide6
Blender
Arduino
DuckDB
Parquet
TensorFlow
Learning
Cloud deployment
Docker
MLflow
Qt/C++ desktop work
Confident
Python
PyTorch
pandas
NumPy
scikit-learn
LightGBM
OpenCV
FastAPI
SQL
Git
Inkscape
Figma
Illustrator
Canva
Used
JavaScript
React
TypeScript
Node.js
Express
Django
Flask
Java
Oracle
MySQL
PostgreSQL
C
C++
Spark
Airflow
pytest
Evidently
PySide6
Blender
Arduino
DuckDB
Parquet
TensorFlow
Learning
Cloud deployment
Docker
MLflow
Qt/C++ desktop work
Intelligent systems · In progress · 2026-10 · Team project
LipScribe
Captions fall apart in noisy rooms, and deaf and hard-of-hearing people pay the price. On a team of six, I'm helping build a system that reads lips alongside audio.
Captions fall apart when rooms get noisy, and deaf and hard-of-hearing people pay the price. Noise can't touch lip movements, so they can keep captions usable when the audio gives up.
My part
I'm the model lead. So far I've built the mouth cropping pipeline and the audio encoder, and refined the data on our GPU workstation.
Where it stands
The data is verified and the preprocessing pipeline is tested. Training hasn't started, so there are no results to show yet.