PUSH
Développement multi plateforme et conseil
Carrefour de la collaboration musicale
2024 – 2025
PUSH
Développement multi plateforme et conseil
Carrefour de la collaboration musicale
2024 – 2025
Poursuivant son objectif d’amener de nouveaux artistes sur le devant de la scène, l’équipe de Wavlive a lancé sa nouvelle plateforme PUSH ARTST. Son but : rassembler artistes, audience et labels. L’audience peut écouter le catalogue PUSH via leur plateforme de streaming préférée, les artistes peuvent rapidement rattacher leurs contenus, tandis que les labels et autres professionnels de la musique reçoivent des recommandations chaque semaine de nouveaux artistes à découvrir.
Les applications mobiles natives ont été développées en utilisant des outils modernes tels que SwiftUI et Jetpack Compose. Coté backend, j’ai choisi Rails pour facilement gérer la partie ORM, tout en créant des composants réutilisables pour supporter le système de récompense de la plateforme.
Petite note pour les collègues développeurs : allez découvrir Cuprite, si vous ne connaissez pas déjà ; imaginez un driver Capybara quasiment identique à Selenium, qui améliore grandement la vitesse de vos tests, enlève les casses tête de chromedriver, et résout la majorité des specs instables.
Team for the Planet
Amélioration de performances
Lutte contre le changement climatique
2024
Team for the Planet
Amélioration de performances
Lutte contre le changement climatique
2024
Depuis 2019 Team for the Planet rassemble tous ceux qui veulent lutter contre le dérèglement climatique, leur permettant d’acheter des parts dans la société, qui utilise ces fonds pour financer recherche et projets commerciaux. Elle rassemble depuis plus de 130 000 personnes, créant par la même occasion une communauté dynamique.
L’application Rails, backend et frontend, s’est développée d’une simple page d’accueil jusqu’à la plateforme qu’elle est aujourd’hui, permettant entre autres de connaitre l’utilisation de ses investissements et de se rapprocher d’autres investisseurs pour développer des actions supplémentaires. J’ai rejoint leur fantastique équipe de développement en 2024 pour l’aider à migrer Rails et ses dépendances vers les dernières versions stables, améliorer le backoffice, nettoyer la dette technique et migrer la gestion des assets ActiveStorage afin de mettre en place un système de sauvegarde plus fin.
Collab' Musicale
Design et développement d'une plateforme temps réel
Playlist collaborative
2022 – 2023
Collab' Musicale
Design et développement d'une plateforme temps réel
Playlist collaborative
2022 – 2023
Au cours de ma période d’emploi chez LostMechanics, nous avons été sollicités pour créer une playlist collaborative pour des événements dans divers lieux de France. Notre solution ? Une application web accessible via un QR code. Après une inscription rapide, les utilisateurs peuvent ajouter des chansons à la playlist de l’événement et exprimer leurs sentiments sur la piste en cours via des likes ou des dislikes. Un animateur est en charge de la modération musicale, et peut créer se servir d’interactions telles que deux participant•e•s suggérant la même piste ou la suggestion d’une piste très likée par les autres utilisateur•ices pour ajouter à l’événement (lots, rencontres, etc).
Tandis que mes collègues se concentraient sur la création d’une interface utilisateur conviviale, je me suis plongé dans l’architecture du projet pour imaginer et développer une synchronisation fiable de la lecture de la musique et ajouter la communication temps réel entre tous les appareils impliqués. Le produit final se compose de trois parties : une application web permettant aux participant•es de voir et de contribuer à la playlist en temps réel ; une application iPad pour l’animateur de l’événement, diffusant de manière transparente Apple Music à travers le système audio du lieu et surveillant la liste des inscrit•e•s et des interactions sans jamais perdre le contrôle de la lecture audio même en cas de crash ; et enfin le backend Rails, orchestrant la gestion des playlists, utilisateurs et interactions dans plusieurs événements simultanés, offrant une API efficace ainsi que des notifications temps réel via pub-sub.
Hébergement interne
Élaboration d'un hébergement robuste
Sysadmin
2022
Hébergement interne
Élaboration d'un hébergement robuste
Sysadmin
2022
De 2019 à 2023 LostMechanics a développé un grand nombre de mini-jeux et sites statiques pour des clients très variés. Alors que chaque déploiement était jusque-là sur un VPS distinct, le nombre de projets grandissant nous a donné l’opportunité de repenser notre hébergement. Ayant acquis de l’expérience avec Docker lors de la réalisation de Wavlive, cet outil est vite devenu le choix logique d’évolution de notre hébergement interne, offrant une solution résiliente et des déploiements sans downtime. Après plusieurs ateliers en équipe pour être sûr de couvrir tous les cas d’utilisation, j’ai donc construit notre nouvelle architecture, avec un cluster staging et un cluster production basés sur Docker Swarm, intégrés avec notre instance Gitlab, soutenu par Traefik et monitoré via Grafana ; avant de redéployer tous les projets de la société sur cette nouvelle plateforme.
En utilisant des technologies existantes et robuste, nous avons pu mettre en place toute cette solution en un laps de temps très raisonnable. Elle a depuis prouvé son endurance en tenant des charges de plus de 10k utilisateurs par minute pour nos projets les plus ambitieux ! De plus pour faciliter la tâche de mes collègues lors de futurs projets, j’ai créé un outil CLI en Ruby avec une interface simple permettant à chacun•e de créer tous les fichiers de configurations nécessaires à partir de modèles, surveiller le statut de leur application Docker, suivre son journal d’exécution et se connecter à leur service à distance. J’ai depuis revisité cet outil en Swift, maintenant devenu Harbor, n’hésitez pas à l’essayer !
Cité du Vin
Développement d'un CMS sur mesure
Plateforme de musée
2021
Cité du Vin
Développement d'un CMS sur mesure
Plateforme de musée
2021
En 2021, notre équipe chez LostMechanics a été consultée pour faire le rebranding du site web de La Cité du Vin aux côtés de l’équipe design de Good Kids. Nous avions la flexibilité de faire nos propres choix techniques, œuvrant vers un produit final facilitant des mises à jour de contenu en un tour de main pour notre client. S’appuyant sur notre expérience de Rails et de sa fiabilité, nous avons déterminé que la construction d’un CMS modulaire simplifierait non seulement les améliorations futures, mais offrirait également une plus grande résilience vis à vis des changements inattendus, contrairement aux options de CMS traditionnels qui pourraient altérer leur API, entraînant des bugs et ralentissant par conséquent l’installation de chaque mise à jour.
Mon rôle englobait l’architecture de l’ensemble du backend et du back-office, tandis que mes collègues se concentraient sur l’intégration du design frontend. La plateforme finale supporte des pages template (telles que la médiathèque et l’agenda), des pages sur mesure (ex: contenu blog et pages d’information) ainsi que des pages statiques, réutilisant en interne la composition par bloc de contenu du CMS. Les trois types de pages peuvent être mis à jour depuis le backoffice basé sur ActiveAdmin, offrant une voie simple pour chaque type de page, en éditant les ressources associées, en modifiant les blocs de contenu d’une page ou en mettant à jour les traductions de chaînes de texte. Ma partie préférée : les événements peuvent être configurés avec plusieurs types de récurrence, un vrai régal à implémenter correctement !
Enso
Création d'une plateforme fiable, sécurisée et évolutive
Backend de micro-gaming multi-tenant
2020 – 2023
Enso
Création d'une plateforme fiable, sécurisée et évolutive
Backend de micro-gaming multi-tenant
2020 – 2023
Chaque année LostMechanics développe de nombreux mini-jeux pour ses divers clients, d’une complexité évoluant d’année en année. Une fois les premiers projets réalisés, il nous est paru évident qu’un backend fiable et solide était nécessaire pour disposer d’une gestion des scores sécurisée, d’autant plus lorsque le projet est lié à une compétition et se retrouve à stocker les données personnelles de ses participant•e•s.
La première itération a été faite en Rails avec un objectif clair : être entièrement configurable et réutilisable, chaque jeu déployant sa propre version de Enso, tout en limitant les modifications de code au maximum. Bâtir un premier projet de manière modulaire nous a permis d’ajouter des fonctionnalités à la carte se combinant pour couvrir l’entièreté des besoins de chaque jeu tout en gardant exactement le même code dans chaque instance déployée. Puis en 2022 vint le moment de rendre le projet multi-tenant. En séparant les données de chaque client dans un schéma PostgreSQL distinct, nous avons pu séparer chaque projet avec sécurité, permettant l’utilisation d’une seule instance d’Enso pour gérer tous les projets futurs existants.
Wavlive
Développement multi plateforme
Streaming d'artistes indépendants
2019 – 2023
Wavlive
Développement multi plateforme
Streaming d'artistes indépendants
2019 – 2023
Suite à mon travail sur Odysound, j’ai entamé mon nouveau rôle en tant que développeur senior chez LostMechanics, où mon attention s’est portée sur la refonte complète de la plateforme Wavlive. Depuis 2018, la plateforme vise à fournir un service de streaming pour les artistes émergents avec un système de rémunération équitable. Selon ce système, si un utilisateur abonné écoute exclusivement un seul artiste pendant un mois entier, sa cotisation d’abonnement pour ce mois va entièrement à cet artiste, déduction faite d’une commission de la plateforme pour couvrir l’hébergement et les développements futurs.
Vers la fin de 2019, nous avons initié la reconstruction complète de toute la plateforme, englobant un nouveau site web, une refonte du backend et de l’API en Ruby on Rails, ainsi que des applications mobiles natives pour iOS et Android. Bien que les applications offrent les fonctionnalités standard que l’on peut attendre d’un service de streaming sur les plates-formes natives iOS et Android, elles se distinguent en offrant une navigation fluide à travers le contenu précédemment exploré en mode hors ligne ainsi qu’une lecture des pistes pré-téléchargées. Le backend Rails permet quant à lui de gérer le contenu audio, permettant l’upload de sons wav ou mp3, voire même d’albums entiers en zip, préremplit les informations de chaque piste si elles sont disponibles dans les tags ID3, et convertit chaque son en un flux HLS avec 3 bitrates distinct, laissant les utilisateur•ices profite de leur musique même avec une connexion internet instable.
EdenCast
Modernisation de l'app
Ressources sur l'accessibilité
2019 – 2021
EdenCast
Modernisation de l'app
Ressources sur l'accessibilité
2019 – 2021
Edencast est une plateforme dédiée aux personnes aveugles et malvoyantes, qui regroupe actualités, podcasts, forums, et une sélection de logiciels accessibles. Depuis 2010, cette plateforme constitue une source riche d’informations et d’entraide sur l’utilisation et l’accessibilité de nos nouveaux outils numériques.
En 2019, j’ai eu l’opportunité de rencontrer son créateur dans le but de corriger quelques bugs sur l’application mobile associée. Au fil du temps, nous avons conceptualisé de nouvelles fonctionnalités, modernisé le code vers une base Swift + CodeData robuste, ajouté le support des notifications push, résolu tous les crashs et intégré de manière plus approfondie l’application dans l’écosystème iOS. Cette application est disponible sur l’AppStore.
Odysound
Recherche et amélioration de la qualité de lecture
Son d'ambiance qualité ciné
2018 – 2023
Odysound
Recherche et amélioration de la qualité de lecture
Son d'ambiance qualité ciné
2018 – 2023
LostMechanics m’a sollicité en 2018 pour développer une application AppleTV pour leur nouveau client : Odysound. Capitalisant sur les talents de leurs concepteurs sonores, l’application visait à proposer un catalogue de sons ambiants en qualité Dolby Atmos. Les utilisateurs auraient accès à une liste de contenus facilement navigable, comprenant chacun au moins trois pistes audio distinctes, bouclant de manière transparente et aléatoire aussi longtemps que nécessaire. Bien que le concept en lui-même soit simple, la mise en œuvre présentait des complexités inhérentes, dont la génération aisée de contenu HLS tout en préservant la qualité Atmos, la lecture de contenu à partir d’un CDN tout en assurant la protection des fichiers audio et le bouclage de plusieurs pistes sans interruption ni clics audibles.
L’application supporte désormais tvOS 12+ et iOS 14+ pour du son Dolby Atmos ou de l’audio spatial sur AirPods Pro. Mais nous avons rencontré des obstacles pour y parvenir. Par exemple AVQueuePlayer avait des limitations dans la gestion du bouclage de contenu HLS, introduisant parfois jusqu’à 5 secondes de délai entre les éléments ou redémarrant le son au milieu d’une piste. À travers des tests méticuleux sur différentes configurations et l’ajout de notre surcouche sur AVFoundation, nous avons considérablement amélioré l’expérience audio, assurant une lecture fluide pendant des heures entières. L’application iOS introduit la possibilité de télécharger les pistes préférées des utilisateurs. Cela m’a plongé dans le merveilleux univers des téléchargements de contenu HLS sur iOS. Je peux désormais affirmer avec fierté que j’ai acquis une compréhension approfondie des bugs les plus courants et ai élaboré une surcouche robuste pour gérer efficacement les téléchargements, les mises à jour et traiter les téléchargements interrompus de manière efficace !
Washos
Pilotage des développements mobiles
Car wash à domicile
2017 – 2019
Washos
Pilotage des développements mobiles
Car wash à domicile
2017 – 2019
Washos est une startup qui simplifie le lavage de voitures à domicile à Los Angeles, en mettant en relation des techniciens compétents avec des clients potentiels. Après plusieurs missions évolutives sur des fonctionnalités précises, j’ai pris le rôle de lead développeur mobile, me permettant de donner une direction supplémentaire à l’application iOS. J’ai également initié le développement d’une application Android de qualité similaire.
Pendant deux ans, j’ai eu l’occasion de contribuer à la conception de nouvelles fonctionnalités, supporter les nouveaux modèles d’iPhone, résorber une grosse partie de la dette technique et d’initier une réflexion approfondie sur l’établissement d’API efficaces et claires. Celles-ci ont facilité le développement tant des applications mobiles que du backend Rails, maintenu par mes collègues.
Veygo
Création d'apps de streaming performantes, robustes et personnalisables
TV en direct et VOD
2016 – 2018
Veygo
Création d'apps de streaming performantes, robustes et personnalisables
TV en direct et VOD
2016 – 2018
En 2016 j’ai entamé une collaboration freelance prolongée avec la société Veygo, spécialisée dans la diffusion sécurisée de contenus vidéo sur internet. Depuis plusieurs années, Veygo développe une solution complète, la Veygo Intelligence Platform (VIP), offrant toutes les fonctionnalités nécessaires, de la gestion catalogue, l’encodage à la volée et le chiffrage DRM, les comptes utilisateurs et leurs abonnements.
Avec ma participation, nous avons pu étendre l’offre de Veygo en créant une application iPhone et iPad en marque blanche utilisant leur SDK mobile, créant une application riche dotée d’une interface utilisateur fluide et grandement adaptable au besoin client, à une époque où iOS 11 et l’iPhone 5S étaient encore courants. Cette application permet la création de compte, l’affichage du catalogue et de l’EPG des chaînes en direct, l’ajout de rappels, le streaming VOD et téléchargements hors-ligne, la mise en favoris, etc. Parmi les clients de cette app, on trouvait le groupe Aldo Maru en Indonésie, Playbac Press, Tulix.tv, Vidgo et AlphaNetworks.
INPulse
Transformation d'un planning en une app fiable
Classes schedule and reminders
2016 – 2017
INPulse
Transformation d'un planning en une app fiable
Classes schedule and reminders
2016 – 2017
Projet bénévole pour le studio INPulse, compilant toute leur offre dans une application simple d’utilisation permettant de consulter le planning complet, mettre en favoris les cours suivis régulièrement, définir une alarme matinale pour ne pas oublier ses affaires de sport, ainsi que des rappels avant chaque cours.
Au bout de 2 ans, le studio a finalement développé une plateforme complète, incluant une application pour réserver les cours en ligne, rendant cette première application obsolète.
Yupp
Création d'une logique métier solide
Réseau social exclusivement mobile
2014 – 2015
Yupp
Création d'une logique métier solide
Réseau social exclusivement mobile
2014 – 2015
Jusque-là développée dans le but d’être un rolodex numérique, j’ai rejoint l’équipe de Yupp pour orienter l’application vers un réseau social de quartier. L’objectif est d’afficher exclusivement les publications des utilisateurs se trouvant géographiquement à proximité, ainsi que les publications les plus populaires du réseau.
Pour fonctionner en temps réel, l’application utilise un principe de pub-sub (publication-souscription), permettant à chaque appareil de s’abonner et de recevoir les nouvelles publications presque immédiatement. Une segmentation dynamique de chaque zone géographique permet d’éviter de surcharger les pub-sub individuelles.
Planorama
Création de l'offre mobile
Gestion d'inventaires
2012 – 2014
Planorama
Création de l'offre mobile
Gestion d'inventaires
2012 – 2014
Création d’une application iOS visant à compléter la solution logicielle de la startup Planorama, une société spécialisée dans l’aide à la gestion des ventes de produits en magasins.
Les représentants de marques utilisent cette application pour photographier les rayons liés à leurs produits. En retour, ils obtiennent les statistiques de vente et de présence souhaitées, rendues possibles par le serveur d’analyse de photos de Planorama.
Cette application relève le défi technique de fonctionner avec une qualité de connexion internet dégradée. Elle est ainsi capable d’interrompre et de reprendre la synchronisation entre sa base de données SQLite locale et la base de données en ligne du client en fonction de la qualité du lien réseau.













































































































