Odisei Play
Odisei Play est une app d'apprentissage musical pour le Travel Sax, le Travel Clarinet, les saxophones et les clarinettes acoustiques. Cours vidéo, morceaux à jouer et outils de pratique réagissent en direct à votre jeu. Le Travel Sax se connecte en Bluetooth MIDI ; l'app gère aussi l'USB et l'entrée audio. Une seule codebase React Native pour trois plateformes : iOS, Android et web.
J'ai rejoint l'équipe comme Lead React Native en 2024, en binôme avec le CTO. Depuis, 38 % des commits du repo sont les miens.

Le défi
La plupart des apps affichent des données. Celle-ci écoute un instrument.
L'app se connecte au Travel Sax en Bluetooth et reçoit un flux MIDI en direct pendant que vous jouez. Il faut gérer l'appairage, les cas limites de reconnexion et l'arbitrage entre trois modes de connexion : Bluetooth, USB et entrée audio. Le fonctionnement doit rester le même sur iOS, Android et le web, où la connexion passe par l'API web Bluetooth plutôt que par la stack native.
Au-dessus de cette couche matérielle, il y a tout un produit d'apprentissage : cours structurés, morceaux à jouer, outils de pratique, progression et achats. Deux engineers pour un produit de cette taille, avec une release toutes les deux semaines.
Le vrai défi, c'est ce rythme. À deux, on ne livre pas un produit aussi vaste toutes les deux semaines sans que la codebase fasse elle-même une partie du travail.
La solution
La connexion aux instruments
Je suis responsable du système de connexion : recherche des appareils, appairage, parsing des messages MIDI en Bluetooth, reconnexion et réglages. Un gestionnaire arbitre entre Bluetooth, USB et entrée audio. J'ai aussi développé l'implémentation web avec l'API web Bluetooth, pour que la version navigateur se connecte au saxophone comme les apps natives.
L'apprentissage
Je suis responsable de la plupart des fonctions qui entourent le jeu : la section cours et son lecteur vidéo interactif, dont les étapes mettent la leçon en pause jusqu'à ce que vous jouiez sur l'instrument. J'ai construit une petite machine à états pour la fin de session. Elle enchaîne les récompenses, les célébrations des séries de pratique et les objectifs, sans le code spaghetti qui finit souvent par s'accumuler à cet endroit.
Une codebase qui dépasse une équipe de deux engineers
J'ai mené la migration vers un monorepo : l'app, dix packages partagés, un pipeline de design tokens et une bibliothèque de composants documentée dans Storybook.
Cette structure a changé qui écrit le code. Notre designeuse n'est pas développeuse. Elle construit ses composants directement dans Storybook, avec Claude Code, à partir des mêmes règles et design tokens que les engineers. Nous les importons ensuite dans l'app. Aucun fichier Figma n'attend qu'un engineer le reconstruise. Le design arrive déjà codé.
L'IA dans l'équipe
J'ai lancé l'infrastructure d'agentic coding : fichiers CLAUDE.md par package, règles maintenues dans une source unique, skills et hooks sur mesure. Aujourd'hui, toute l'équipe travaille avec Claude Code sur cette base, et les agents IA font des commits dans le repo sous leur propre nom.
Ce que je n'ai pas construit
Je préfère être précis plutôt que gonfler cette étude de cas : le moteur audio, la détection de hauteur et l'écran de jeu principal sont le travail du CTO. J'ai construit la majeure partie de ce qui les entoure.
Résultats
L'app tourne en production sur iOS, Android et le web depuis une seule codebase React Native. Au comptage de septembre 2026 : plus de 150 écrans, 24 modules fonctionnels, un design system de plus de 340 composants documentés dans Storybook et des tests qui vont de l'unitaire à l'end-to-end avec Playwright.
Nous livrons une release toutes les deux semaines, avec des correctifs over-the-air entre les deux. Le repo compte 14 179 commits, dont 5 370 sont les miens, soit 38 % de l'historique. La codebase avait déjà un an quand je l'ai rejointe.
Ce dont je suis le plus fier, c'est la structure : elle permet à deux engineers, une designeuse et quelques agents IA de livrer comme une équipe bien plus grande.
Fonctionnalités clés
- 01Prise en charge du Travel Sax, du Travel Clarinet, des saxophones et des clarinettes acoustiques
- 02Connexion des instruments en Bluetooth, USB et audio, avec une implémentation web Bluetooth
- 03Vidéos interactives avec des étapes qui attendent que vous jouiez de l'instrument
- 04Orchestrateur de fin de session qui enchaîne récompenses, séries de pratique et objectifs
- 05Monorepo organisé en packages partagés et design system documenté dans Storybook
- 06Infrastructure de travail avec l'IA utilisée par toute l'équipe, designeuse et agents IA compris
- 07Une release toutes les deux semaines, avec des correctifs over-the-air
Recommandation
Pendant 2 ans et demi, Jean a été partie intégrante de la création d'Odisei Play, notre application d'apprentissage du saxophone et de la clarinette. Il en a été le premier recrutement technique. Le challenge était de taille : créer une application Web, iOS et Android ultra-performante à partir d'une seule codebase. Interface de jeu, gamification (streaks, objectifs), connexion avec des instruments physiques (Bluetooth, USB ou micro), notifications, back-end. Des sujets divers et complexes, qu'il a su mener à bien avec brio. Il a pris en charge des pans entiers du produit, jusqu'aux décisions d'architecture et à l'intégration d'IA. Au-delà de l'exécution pure, il apporte une vraie compréhension du produit et des enjeux business, ce qui est rare et précieux dans une petite équipe. Très autonome : on lui confie un problème complexe et il le mène jusqu'au bout, sans hésiter à faire l'effort supplémentaire si nécessaire. Communication fluide, bon niveau d'exigence sur la qualité, et une capacité d'apprentissage impressionnante sur des sujets nouveaux. Il a régulièrement trouvé des moyens de nous faire livrer plus vite. Je le recommande sans réserve pour toute équipe avec des enjeux techniques ambitieux, et je retravaillerais volontiers avec lui.
TypeScript, React Native/Expo, Skia & Reanimated, Supabase/SQL, RevenueCat, Node et GitHub mono-repo, OneSignal, orchestration & optimisation d'agents IA.
Galerie
Lead React Native, en régie.
Deux ans de lead sur Odisei Play : une seule codebase sur iOS, Android et web, une release toutes les deux semaines, à deux engineers avec des agents IA. Ce rôle dans votre équipe, ou le setup du repo qui rend ce rythme possible.