Projects

Production websites, personal apps and deliberate practice.

  1. Masjid On Air

    In development

    A complete live audio product for mosques: classes and adhan in real time, notifications, replays and an admin area.

    The need: follow classes and the adhan from your phone, and listen back afterwards — without having to create an account.

    My role: product design and development, from mobile to backend, using spec-driven development with coding agents.

    Technical decisions: real-time audio handled by LiveKit; Supabase for the Postgres database, RLS security and Edge Functions; a React Native and Expo mobile app; a broadcasting console designed for a self-service iPad in the mosque, with no account to manage. Sessions are anchored to prayer times, computed locally and calibrated against the mosque’s own readings.

    The constraints: privacy first — no listener account, no tracking, no advertising. And a live stream that must never drop: recording and notifications run off the critical path, so a failure in one never cuts the other.

    Current status: in development, preparing a private TestFlight pilot with one mosque. The full journey — adhan triggered from the console, notification with its dedicated sound, live audio playing on the first tap — is validated on a real iPhone.

  2. Event engagement app

    Offline

    A playful app for livening up tech events (Devfest) — quizzes and live interactions with the audience.

    Technical decisions: first version in React and NestJS, then a full migration to Next.js to bring the front end and back end together into a single application, with MongoDB and an AWS Amplify deployment.

    The constraint: a spike in concurrent users concentrated over the event’s duration.

    Current status: offline.

    What I learned: leading a stack migration on an existing product, without starting from scratch.

  3. PDF invoice generator

    Offline

    An invoicing app built solo end-to-end, from editing to PDF export.

    The need: a self-contained invoicing tool — editing, previewing and PDF export.

    Technical decisions: client-side PDF generation with react-pdf; authentication and persistence delegated to Supabase, to stay on a serverless architecture with no server to maintain.

    Current status: offline, redeployment planned.

    What I learned: client-side document generation, and the importance of backups — the Supabase project disappeared, and only a backup made it possible to keep the work.

  4. Katas — deliberate practice

    A selection of code katas — not products, but regular practice in TDD and refactoring, inherited from my craft training at Arolla.

    A kata is to a developer what scales are to a musician: a short, repeated exercise that builds reflexes — write the test first, refactor without fear, name with care. These are on my GitHub, among others.

  5. This portfolio

    In production

    The site you're reading, designed and deployed end to end.

    The need: a personal site that showcases my background and hosts my articles, without depending on a platform.

    Technical decisions: Astro with versioned markdown content, zero JavaScript sent to the browser, diagrams rendered at build time, continuous deployment via GitHub Actions to shared hosting.

    Current status: in production. Built with spec-driven development using coding agents — the subject of my articles, applied to this very site.