Selected work

All eight are from 2026. I was the only developer on each. Where one is still in progress, its status says how far along.

Adelante

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

Adelante widget gallery showing Home Screen widgets in several sizes Adelante Today screen with the day’s quote, its source and quick actions Adelante Discover screen browsing quotes by topic

WayClub

In development · no live site

Events, registration and tickets for members; meetings, tasks and handover for committees.

Next.js, NestJS, PostgreSQL · 784 API tests

WayClub’s 26 October committee design prototype: a live event, membership requests, publishing and meeting approvals for a fictional film society.

Planket

Web app live · stores next

A shared calendar for crews, with free-time matching and Google Calendar mirroring.

Next.js, Capacitor, Supabase · 50 tests

Planket’s current crew calendar with four sample calendars, busy blocks and shared free time in blue gingham. Planket’s latest plan composer with time, crew, place, reminders and idea chips; local demo data. Planket’s redesigned Friends screen with crews, shared free time and friend requests; local demo data.

CodeAtlas

Local CLI · merged 6 Oct

Finds the tests that reach a code change, runs both revisions and signs the evidence.

TypeScript, Node.js, Vitest

CodeAtlas impact workspace on a fixture repository: a changed validateToken function, a confirmed regression where expired sessions return HTTP 500 instead of 401, and the two tests selected to prove it.

Archive

10 projects, 2024 to 2026

2026

  1. NutriGo: Showcase (opens in a new tab)

    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.

    Solo: all 23 commits so far.Flutter, Dart, Firebase, Cloud Functions, TypeScript, SQLite

    NutriGo’s Today screen with a test account: calories left against the day’s target, protein, carbs and fat, and the day’s meals.NutriGo’s Today screen with a test account: calories left against the day’s target, protein, carbs and fat, and the day’s meals.
  2. Spell Quest: Play (opens in a new tab)

    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.

    Solo: one 30-minute challenge, then a polish pass.HTML, CSS, JavaScript, Firebase Hosting

  3. Selbi’s birthday: Play (opens in a new tab)

    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.

    Solo, built in September 2026; 128 Node tests.React, Three.js, Firebase, Vite

  4. Tajweed: Live site (opens in a new tab)

    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.

    46 of the 130 commits on main. The first redesign was merged on 20 June 2026; the second was pushed to main and went live on 13 October 2026. I set up the project’s first tests in June; 598 pass now.Next.js, React, TypeScript, Tailwind CSS, Radix, Motion, Zustand, Vitest

    Tajweed’s learning path: section 2, Makhārij, with Taj beside the next lesson.Tajweed’s learning path: section 2, Makhārij, with Taj beside the next lesson.

2025

  1. Chess Training Page: GitHub (opens in a new tab)

    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.

    One of four contributors, and the largest: 19 of the recorded contributions across 32 commits.JavaScript, HTML, CSS

  2. Pokémon (Java): GitHub (opens in a new tab)

    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.

    Solo: all four commits.Java

2024

  1. Fallen Asteri: Play on itch.io (opens in a new tab)

    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.

    One of three contributors: 179 of 491 commits. I created the repository and set up the branch-and-PR workflow the team worked through; 37 of its 102 pull-request merges are mine.Godot Engine, GDScript

    Fallen Asteri gameplay: the heroine on a ledge of carved rock, with red eyes watching from the dark behind her.
  2. To-Do List Board: GitHub (opens in a new tab)

    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.

    Solo: all five commits.JavaScript, CSS, HTML

  3. Moon-n-Knight: GitHub (opens in a new tab)

    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.

    One of two contributors: 7 of 18 commits.Godot Engine, GDScript

  4. Python Calculator: GitHub (opens in a new tab)

    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.

    Solo: one commit.Python, tkinter