Skip to content
Selected projects

Projects

Shipped systems, products in development and prototypes. Filter by state.

State
Role
012024 · présentIn productionCo-founder

The Mad Space

Bilingual marketplace · print-on-demand creations

The Mad Space lets creators submit their artwork, turn it into apparel and earn a commission on every sale. As CTO, I own the technical direction, architecture and development of the platform — from the creator journey to payment and automated order fulfilment.

Next.js 16TypeScriptPostgreSQLPrismaStripeGelatoSupabaseVercel
37API route modules
4currencies · CAD/USD/EUR/GBP
2languages · FR/EN
022025 · présentIn developmentCo-founder

Cadence

Sports coaching mobile app

Coach ↔ athlete mobile app co-founded with Alexandre (design). 169+ issues structured across 13 sprints, competitive audit of 8+ apps, Loi 25 + PIPEDA + GDPR-ready compliance. Beachhead: francophone gym coaches in Quebec.

ExpoReact NativeTypeScriptNativeWindSupabaseNext.js
169+GitHub issues
13sprints planned
74/74features covered
032026Academic projectAcademic

CanTelcoX

Event-driven telecom BSS · saga, Outbox, DLQ

The business support system (BSS) of a mobile carrier: number portability, line activation, billing, MFA and fraud screening. The system moves from synchronous microservices to an event-driven architecture — 6 hexagonal services, no direct service-to-service HTTP in the business flow, a choreographed saga over RabbitMQ with compensation, a transactional Outbox, a dead-letter queue and distributed tracing. Two real external integrations sit behind an anti-corruption layer: free5GC (5G core, MSISDN provisioning through the UDM APIs) and a Java number-portability hub, acting as both recipient and donor, over signature-verified TMF Event v4 webhooks. What I take from it isn't the pattern checklist but how the optimization was run: five stages, each measured and recorded, including the one that produced nothing. Stage 2 is the instructive one — speeding up publication improved acknowledgement without improving convergence, because the bottleneck had moved to svc-subscription; measurement located it (3,960 messages queued on a single consumer) and the later stages addressed it. Final result: acknowledgement P95 divided by 2.4, saga convergence up from 47% to 100%, zero errors across 22,031 requests.

Python 3.12FastAPIRabbitMQMySQL · FlywayRedisKrakenDNGINXPrometheus
Acknowledgement P95 ÷ 2.4 · 952 → 396 ms
Saga convergence 47% → 100%
0errors across 22,031 requests
vibe
042026 · présentPrototypeCo-founder

Vibe Montréal

Smart local discovery · Mobile + web prototype

Smart local guide that helps you decide what to do right now in Montréal based on mood, time of day, budget, location and STM metro station. Users pick a vibe — Chill, Romantic, Study, Adventure, Budget, Social or Solo — and get cafés, restaurants, bars, activities, parks, rooftops and hidden spots open around them. Two differentiators: STM Pulse, a Montréal metro map that turns each station into a discovery interface (events, spots, walking time, budget, vibe around the stop), and Vibe AI, a conversational assistant that turns a vague urge ("what to do tonight in 2h?", "cheap date") into a concrete plan. A light community layer (mini-reviews, vibe votes, new spots submitted with a Discoverer badge). A interactive prototype spanning a mood-first home, Vibe AI, STM Pulse, Explore, enriched place pages, community and a desktop version — mobile-first, yet navigable on web and desktop.

Claude Design → Claude CodeHTML/CSS/JS (runtime dc)Prototype interactif mobile + web/bureauDesign system dark mode (tokens CSS)Poppins + MontserratSTM Pulse (carte métro interactive)Vibe AI (assistant conversationnel simulé)Recommandations mood-first (7 ambiances)
Mobile + web / desktop
STM Pulse · interactive metro map
Vibe AI · natural-language plans
052025 · présentIn developmentFounder

DPM Elevate

Calendar, tasks, habits & focus · Web app

A personal planning web app — calendar, tasks, habits, goals and focus — that I design and build solo, and that's now deployed. It grew from a detailed ~20-screen mockup into a real Next.js product: real Google and Microsoft calendar sync, multi-provider authentication (NextAuth v5 — Google, Microsoft, Apple, GitHub, OIDC) and serious attention to security and privacy — OAuth tokens encrypted at rest (AES-256-GCM), defense-in-depth row-level security, rate limiting — with Loi 25 compliance: self-serve account deletion, data export and an audit log. Bilingual FR/EN, light/dark theme, on tRPC and Prisma/PostgreSQL.

Next.js 14TypeScripttRPCPrismaPostgreSQL (Supabase)NextAuth v5Tailwind · Radixnext-intl (FR/EN)
Real Google + Microsoft sync
Multi-provider auth (NextAuth v5)
Encrypted tokens · RLS · rate-limit
062026PrototypeCo-founder

Wise & Wealthy

AI financial coach · Mobile prototype

Concept and interactive prototype of Wise & Wealthy, an AI-assisted personal financial coach that makes financial literacy more approachable for 18–35 year-olds who aren't comfortable with finance. The product is grounded in a full business model (12 pages: market study, Business Model Canvas, competitive analysis of YNAB/Rocket Money/Wealthsimple, MVP, KPIs) and a discovery PRD, and is positioned as the opposite of trading apps: education, plain-language guidance and coaching rather than speculation. The mobile mockup spans around twenty screens and states — guided onboarding, dashboard (income, expenses, savings, a "clarity streak", daily action), conversational "Wiz" assistant, budget and budget setup, savings goals, mini-lessons + flashcards + exercises, simplified financial news, notifications, profile, privacy and a freemium paywall. A reassuring, non-intimidating identity (Wiz mascot, calming greens, Bricolage Grotesque + Plus Jakarta Sans), bilingual FR/EN, light/dark theme. More than a single app, it's a small suite: the adult app; "Mes finances", an advanced tracking surface (Transactions, Planned vs actual, Cashflow, Subscriptions, Debts, bank/CSV import) embodying the premium tier; "Wise & Wealthy Kids", a playful variant for children (piggy bank, coins, stars, milestones); "Family Space", a parent area with a 4-digit PIN and child profiles; and Wiz, the reusable mascot (6 moods) that unifies it all. A deliberate stance: financial education, not regulated advice — built around trust and data protection (Loi 25).

Claude Design → Claude Codedc-runtime (React 18)Suite de 5 surfaces (cadre téléphone)20+ écrans / étatsAssistant IA « Wiz » (coach financier)Dashboard · Budget · Objectifs · Leçons« Mes finances » : Transactions · Cashflow · Dettes · AbonnementsActualité financière vulgarisée
Suite: adult · finances · Kids · Family
20+screens · "Wiz" AI assistant
Freemium · premium $9.99–19.99/mo
072026PrototypeClient

Kim Dubois Photographe

Pet photographer portfolio site · Prototype

Takeover and redesign of the site of an internationally awarded pet photographer (TIPPA 2024-2025, Bronze) whose Wix site had been left unfinished. A complete first-paying-client process: a 60-question Word discovery form, a 9-slide PowerPoint deck to frame the call, a structured Claude Design brief, then a generated mockup implemented in code. Across iterations the prototype grew from a single home page into a full, interactive mockup: multi-page (home, portfolio gallery, distinctions page), around fifteen modular sections (hero, counters, process, packages, testimonials, shop, client area, newsletter, FAQ, rainbow bridge…), real awarded photos organised by category, a smart carousel with lightbox and a signature thread "sewn" along the scroll. All bilingual FR/EN, light/dark, with an audience switcher (consumer/commercial), an editorial gold identity (Cormorant Garamond + Mulish), light image protection and a concierge assistant leading to real contact. A built-in admin mode — "bounded freedom" — lets you edit content and appearance, hide/reorder sections and manage promo codes, to absorb the client's feedback without ever breaking the mockup.

Claude Design → Claude CodeHTML/CSS/JS (React + Babel)Multi-pages (accueil · galerie · distinctions)~15 sections modulaires réordonnablesÉditeur visuel intégré (mode admin)Assistant-concierge (clavardage guidé)Carrousel intelligent + lightboxFil signature (CSS scroll-driven + repli rAF)
Multi-page bilingual mockup · light/dark
~15modular sections + built-in admin editor
Real awarded photos (TIPPA 2024-2025) + concierge
boa-traiteur
082026PrototypeClient

BOA — Chef privé

Private chef & table-service booking site · Bilingual prototype

Design and interactive prototype of BOA, chef Max's private-chef and table-service brand in Montreal. Built from a client-filled PRD (Word document) and a competitive analysis (Take a Chef, The Culinistas, Cozymeal, Tock), the site sells an experience — "When the love for food meets unforgettable memories" — rather than plain catering: private dinners, weddings, birthdays and corporate events, cooked and served at your home. The mockup covers the whole journey: an editorial home (hero, "the art of hosting" pillars, trust strip, "what's included"), a culinary concierge that recommends a menu in 30 seconds (occasion, guests, budget, restrictions), the menus (fixed / event / call required), experiences, venues, a photo gallery, the chef's story and contact. At its core is a multi-step booking flow: menu → date (2-week minimum lead time, last-minute fees flagged, "notify me" waitlist) → format (table service / chef's table / event), guests (capped at 20, 20+ → mandatory call), address (Island of Montreal · distance-based fee) and allergies → summary (25% non-refundable deposit, balance per agreement, taxes not applied) → mocked payment (card / debit / Interac) → confirmation (deposit received, 48h reminder, notification to Max). It also ships a guided "BOA Concierge" chatbot, an FR/EN switcher, a burgundy & cream light/dark theme (Newsreader + Hanken Grotesk + Allura), premium animations honouring prefers-reduced-motion, and an admin mode with drag-and-drop photo slots to wire in real images. Everything is cleanly mocked — no real payment, no live AI — pending decisions on pricing, calendar (Calendly), payment processor (Stripe / Square) and legal copy (Loi 25) with the client.

Claude Design → Claude CodeHTML/CSS/JS (runtime dc)Bilingue FR/EN (dictionnaire maison)Thème clair/sombre (tokens CSS)Newsreader + Hanken Grotesk + AlluraPalette bourgogne #6E1F2E + crèmeConcierge culinaire (reco menu en 30 s)Chatbot « Concierge BOA » (mocké)
Bilingual FR/EN · light/dark
Multi-step booking + 25% deposit
30s menu concierge + BOA chatbot
crcc
092026PrototypeClient

CRCC — Refonte

Nonprofit website redesign · Bilingual mockup

Complete redesign mockup for the Cornwall Rex Club of Canada (bilingual nonprofit breeder community). Static multi-page site organised around three journeys — adopt a kitten, become a member breeder, support the club. 10 pages (Home, The Breed, Breeder Directory, Codes & Ethics, By-laws, Publications, Membership, Board & Committees, Contact) with an interactive anatomy explorer, a filterable distribution map and a Red & White identity derived from the official logo. Bilingual FR/EN with instant toggle, light/dark theme, mobile-first (375px → desktop), WCAG 2.2 AA accessibility, no backend. Real data integrated (11 catteries, Anima-Québec badges, 7 feline associations, official resources), without inventing or overpromising.

Claude DesignHTML/CSS/JS statiquesCSS Custom Properties (tokens)i18n maison FR/ENJavaScript vanillaMontserratARIAWCAG 2.2 AA
10pages · bilingual FR/EN
Anatomy explorer (10 parts)
11catteries · real data
10Jan. 2026 · Avr. 2026Academic projectAcademic

FinanceJ

Personal finance desktop app

Java desktop personal finance app (income, expenses, budgets). Team of 6 developers, LOG240 course (Testing & Maintenance). 5,250+ LOC, 133 tests (100% JaCoCo coverage), 85 commits. MVC architecture with Singleton, DAO and AbstractTableModel patterns. Most active contributor (28 commits).

Java 21MavenJava SwingApache DerbyJUnit 4AssertJ SwingJaCoCoCheckstyle
5,250+LOC
133tests · 100% coverage
85commits · 6 devs
tatzy
112025 · 2026PrototypeCo-founder

Tatzy

Online taxi booking · Prototype

Taxi-booking site co-founded with Aimen Djebbar. Web + API monorepo: landing page, booking flow and API foundations, in Next.js 14 (App Router) with Prisma/PostgreSQL, bilingual FR/EN. The prototype is deployed on Vercel. Still at prototype stage — no real customer traffic yet.

Next.js 14TypeScriptTailwind CSSPrismaPostgreSQLnext-intl (FR/EN)ZodVercel
Web + API monorepo
Bilingual FR/EN
Deployed on Vercel
122026Academic projectAcademic

LOG430 — Architecture logicielle

From monolith to event-driven microservices

Lab series from ÉTS's software-architecture course: a single store-management app is re-architected from one lab to the next. The path runs from a containerized monolith (Docker, CI/CD) to client-server with DAO, CQRS with polyglot persistence (PostgreSQL + Redis), REST then GraphQL APIs, caching and load balancing (Nginx, Locust load tests), observability (Prometheus), then a break-up into microservices behind an API gateway, an isolated payment microservice, an orchestrated saga with distributed tracing (Jaeger), event-driven architecture with Kafka (event sourcing, choreographed saga, Outbox pattern) and finally distributed databases (YugabyteDB / CockroachDB). Each lab isolates one pattern on the same toy application. The term project, CanTelcoX, is where those patterns get assembled into a single system on a real business domain — Phase 1 in synchronous microservices (5 DDD services behind a high-availability Kong gateway, Redis caching, Prometheus/Grafana observability), Phase 2 event-driven: see its dedicated entry.

PythonFlask / FastAPIDocker ComposePostgreSQLRedisApache KafkaGraphQLKong / KrakenD
12repos · monolith → microservices
Term project: CanTelcoX (own entry)
REST · GraphQL · Kafka · Saga
132025Academic projectAcademic

LOG210 — Analyse et conception

UML modeling & OO design · Team

Analysis-and-design lab at ÉTS, in a team of 6. Starting from a "dice game" skeleton, the team models and builds a course-and-assignment management app: UML domain model, use cases, layered design with the GRASP Controller pattern, a gateway/adapter to a backend, and a Jest test suite with coverage. Backed by iteration reports.

TypeScriptNode.jsExpressJestUML (PlantUML)GRASP
Team of 6 · GitHub Classroom
UML domain model · use cases
GRASP Controller pattern
gti350
142026Academic projectAcademic

Tron Light Cycles — GTI350

2-player game · UI & direct manipulation · Team

Two-player "Tron" game written in vanilla JavaScript (no libraries) for ÉTS's user-interfaces course, in a team of 2. Rendered on an HTML5 Canvas, two input modes (keyboard with QWERTY/AZERTY handling, and mouse gestures to steer the cycle directly on the canvas), collision detection (trails + walls), multi-round scoring, virtual pause/resume/restart buttons and progressive acceleration. Modular architecture (9 single-responsibility modules) designed for parallel work on Git.

JavaScript (vanilla)Canvas HTML5Modules ES6HTML/CSS
Vanilla JS · HTML5 Canvas
2input modes (keyboard + mouse)
9modules · ~460 lines