Bupples
App Store, Google Play · 1.4.6
Shared expenses, receipt review and settle-up plans on a multi-currency ledger.
Flutter, Firebase, Vertex AI · 6,048 tests passing
Case study App Store (opens in a new tab) Google Play (opens in a new tab)
All eight are from 2026. I was the only developer on each. Where one is still in progress, its status says how far along.
App Store, Google Play · 1.4.6
Shared expenses, receipt review and settle-up plans on a multi-currency ledger.
Flutter, Firebase, Vertex AI · 6,048 tests passing
Case study App Store (opens in a new tab) Google Play (opens in a new tab)
App Store since Oct 2026
Daily-quote widgets for iPhone and Apple Watch; one rotation rule in Dart, Swift, Kotlin.
Flutter, SwiftUI, Kotlin · 566 tests passing
In development · no live site
Events, registration and tickets for members; meetings, tasks and handover for committees.
Next.js, NestJS, PostgreSQL · 784 API tests
Web app and Windows 1.5.1
A photobooth with 52 effects, reactive masks, custom prints and a virtual camera.
TypeScript, Electron, WebGL2, MediaPipe
Case study Live site (opens in a new tab) Windows release (opens in a new tab)
Web app live · stores next
A shared calendar for crews, with free-time matching and Google Calendar mirroring.
Next.js, Capacitor, Supabase · 50 tests
Private pilot live
Notices when you ship, and drafts résumé and LinkedIn lines from evidence it can cite.
Next.js, PostgreSQL · 529 tests
Prototype live · building
Event discovery and teammate matching for hackathons, CTFs and game jams.
Flutter, Next.js, Supabase
Local CLI · merged 6 Oct
Finds the tests that reach a code change, runs both revisions and signs the evidence.
TypeScript, Node.js, Vitest
10 projects, 2024 to 2026
A Flutter nutrition app for iOS and Android: a private food log, water and progress, recipes, and home and lock screen widgets. Build 1.0.0 (6) reached internal TestFlight testers on 2 October 2026. Development hosting was deactivated later in October; the showcase preserves the work, and there is no public store release.


A spelling adventure for children aged 6 to 12, led by a mascot called Bloop: a path of games such as Bubble Pop, with sound effects, stars and a streak. I built it in a 30-minute challenge on 15 October 2026 and then polished it like a real product.
A 3D birthday game I made as a gift: a walkable park in Three.js with three small cybersecurity puzzles (Base64 pieces, a Caesar cipher and a memory vault), a photobooth and a finale built from real memories. A shared mode lets several visitors meet in the same park, with Firebase rules checking every answer.
A web app for learning Quran recitation. Hatem Samad built the app and its back end: the Quran data, tajweed colouring, offline mode and the APIs. I led the front end and its redesign: the learning path, lesson player, spaced review, the guide character Taj, a redesigned Quran reader, and the design system and component kit.


A site for a chess training service (home, services, about, registration, login and checkout pages) written in plain HTML, CSS and JavaScript with no framework and no build step.
A turn-based battler in Java, laid out the way a larger system would be: model classes for Pokémon and attacks, separate services for combat, capture, levelling and scoring, a controller, a console UI, a repository for data, and an isolated random-number utility.
A team of three, working through branches and pull requests, a workflow I set up for the repository. Fallen Asteri is a stamina-based souls-like where you grow stronger by beating the enemy in front of you, built in Godot between April and June 2024 and released on itch.io. My share was the level and camera work across the game’s scenes, player and boss sprite animation, the title, pause, options and death screens with the health and stamina HUD, and combat tuning: hitboxes, slash timing, and a life-steal system on kill.

A ClickUp-style task board with drag-and-drop, written as one page of HTML, CSS and JavaScript with no framework and no build step.
A second Godot project started two months after Fallen Asteri wrapped, with the same collaborator: one level, shared scenes and scripts, and 1.3 KB of GDScript. It stopped twelve days later.
A tkinter GUI calculator in a single 3 KB main.py. The repository describes itself as “Just your average calculator based on python with GUI using tkinter”, which is exactly what it is.