Interfaces people use
Android apps with Kotlin and Jetpack Compose. Web interfaces with React and Astro.
Hello, I’m Leo.
I build the app, the API and the parts that hold them together. I finished my Computer Science degree in 2025 and I run a small internet business, so most of the work I do starts with a job that needed doing.
One of six winning teamsGreenCode Hackathon · Zambia 2026IoT intern at CodeAlpha · Computer Science graduate
Tonga words, real Python
TongaLang was my final-year project at CBU. The words are borrowed from Tonga, and underneath it is a Python lexer, parser and interpreter. Pick a word to see where it lands, then run the program for real.
Choose a word to see where it lands in the program. Escape clears the highlight.
mulimo matalikilo() { zina a = 12 zina b = 8 amba(a + b) amba(a * b)} 01 / Selected work
Arrow keys switch projects. Tab moves into the details.
Screens from the real TongaLang app.
01 / The language · Final-year Computer Science project
What if a first program started with words you already knew?
A programming language for beginners, built on words from Tonga, with a desktop app that explains each mistake instead of only flagging it.
A hand-written lexer, a PLY parser, an AST and an interpreter, with a Tkinter desktop app that checks each edit before offering a fix.
TongaLang 0.2.0 is public on GitHub. It ships with 17 example programs and passes all 179 automated tests. The Windows installer is published with a SHA-256 checksum, and the captioned walkthrough below runs just under a minute.
The IDE had to give broad advice while only editing mistakes it could be certain about. A suggested fix carries the exact text it expects to replace, refuses to apply to source that has changed, and leaves ambiguous cases for the learner to decide.
Screens from the real SmartWater Zambia app.
02 / Connected systems · GreenCode Hackathon team project
How does a sensor reading become something a community can act on?
Water level sensors, an operator dashboard and a community reporting app, built as one system during the GreenCode Hackathon.
Firmware posts readings to an Express API on Supabase, the dashboard turns them into tank states and alerts, and the Android app lets residents report incidents.
The repository holds the ESP32 firmware, the Express and Supabase API, the React dashboard and the Kotlin Android app, along with the backend and web test suites. We finished in the top six at the GreenCode Hackathon Zambia Edition.
A sensor timeout, a bad reading and a genuinely empty tank look similar from a distance. The platform records sensor faults as their own event, flags stale readings instead of repeating the last value, and labels every simulated tank so an operator can separate what was measured from what was seeded.
No screenshots here. I have not published SubTrack’s screens, so the case study explains how it works instead.
03 / Everyday operations · Live-operation product
What would make running an internet service less fragile?
An Android app I use every day to run a 37-subscriber internet business: payments, expiry dates and router access in one place.
A local-first Android workspace where a subscriber pays, the payment is verified and network access is provisioned or suspended without a manual status label.
SubTrack runs my internet service today, with 37 paying subscribers. Payments are verified in the app, and network access is provisioned or suspended automatically.
Payments, package duration, balances, expiry and reconnection rules must agree across screens instead of relying on a manually edited status label.
02 / An idea you can run
It is a small language built for people starting out, with words borrowed from Tonga. Change an example, run it, and add input whenever a program asks for one.
Open the playground Explore the language designmulimo matalikilo() {
zina zyina = bala("Your name: ")
amba("Hello, " + zyina)
}Write. Run. Learn.
03 / Built together, under pressure
Took SmartWater Zambia from an idea pitched on stage to a working prototype in 48 hours, then presented it to the judging panel as part of one of the six teams selected for follow-on support.
04 / How I contribute
Android apps with Kotlin and Jetpack Compose. Web interfaces with React and Astro.
APIs, data models, interpreters and the decisions that connect a product together.
IoT telemetry, network automation and tools shaped by running a small business.
From running Leo M. Suppliers to operating a Starlink internet service, business has taught me to start with the people and the problem.
More about my path ↗