I'm a Flutter developer with five apps live on Google Play, each shipped solo — interface, Firestore schema, Cloud Functions, subscription plumbing, and the store listing that gets rejected and resubmitted until it isn't.

My degree is in mechatronic engineering, which taught me less about code than about the distance between building something and keeping it alive. A feature is an afternoon's work. Keeping it running for real users, on someone else's billing account, under someone else's review policy, is the actual work — and it's what these projects are really about. 269 releases so far.

Sleevr

Cross-platform trivia multiplayer game.

v2.23.0156 builds

Sleevr screen 1
Sleevr screen 2
Sleevr screen 3
  • Flutter
  • Firebase
  • Riverpod
  • Go Router
  • AdMob
  • in_app_purchase
  • Rive animations
Incident

Google Cloud suspended the project in May 2026. The cause was mine: a Gemini API key compiled into every shipped binary with no application restrictions, extractable by anyone who unpacked the APK. I audited all four keys on the project, rotated and restricted them, scrubbed the history, and documented the whole thing for the appeal. Reinstated a week later.

ShopFlow

Your complete business management solution

v1.6.143 builds

ShopFlow screen 1
ShopFlow screen 2
ShopFlow screen 3
  • Flutter
  • Firebase
  • Google Gemini AI
  • RevenueCat
Domain

Kenyan shopkeepers sell on credit constantly, so a ledger that only records paid sales is useless to them. Debts and supplier credits are first-class records here, not an afterthought bolted onto a Western point-of-sale model — which changed how stock, revenue, and profit all had to be counted.

Three Clues

Crossword-style word puzzle game

v1.7.227 builds

Three Clues screen 1
Three Clues screen 2
Three Clues screen 3
  • Flutter
  • AdMob
  • in_app_purchase
Data

The game is only as good as its word list, so the 1,864 words went through a pipeline before shipping: duplicate detection, format normalisation, and an automated pass that scored every clue for quality. Bad clues were cut rather than patched.

Day's End

What the world did today.

v1.0.013 builds

Day's End screen 1
Day's End screen 2
Day's End screen 3
  • Flutter
  • Firebase
  • Riverpod
  • Hive
  • AdMob
  • RevenueCat
Observability

Counting the same event across every user means a handful of Firestore documents take every write. I built the monitoring before the traffic arrived — dashboards for function p95 and error rate, alerts on write contention in the hot collections, and automatic cleanup of dead FCM tokens so failed pushes stop counting as failures.

Narp

Social networking app with AI connections

v1.7.130 builds

  • Flutter
  • Firebase
  • Google Gemini
  • RevenueCat
  • GitHub Actions
Cost

Video calling and an always-available AI companion are both metered per use, which makes an idle user expensive. Sessions tear down aggressively and AI replies are gated behind the subscription, so the cost of a free account stays close to zero.

Mobile
Flutter · Dart · Riverpod · Go Router · Hive
Backend
Firebase · Firestore · Cloud Functions · Cloud Monitoring
AI
Google Gemini · Vertex AI
Revenue
RevenueCat · AdMob · in_app_purchase
Web & CI
Next.js · Firebase Hosting · GitHub Actions · Codemagic

Available for mobile and web work. Reach me at gitukelvin01@gmail.com.

Using one of the apps and something is broken? That goes to support instead.