L’édition 2025 du DevFest Nantes, qui a réuni plus de 3500 passionnés à la Cité des Congrès sur deux jours intenses, restera un millésime à part pour l’équipe Ippon. Cette année, nous étions une vingtaine de Nantais, mobilisés et enthousiastes, accompagnés de nos speakers bordelais Vivien Malèze et Sébastien Oddo, venus partager leur expertise sur Open Telemetry et de Thomas Boutin venu de Tours pour échanger sur les impacts sociaux et environnementaux de nos smartphones. Notre stand n’a pas désempli, suscitant de nombreux échanges et rencontres tout au long de l’événement, entre deux conférences.

Dans la suite de cet article, nous vous proposons un retour détaillé sur les talks qui ont particulièrement retenu notre attention lors de cette nouvelle édition du DevFest. Plongez avec nous dans ces éclairages techniques qui ont nourri nos échanges et permis d’enrichir notre savoir-faire collectif.
OpenRewrite: Refactor as code
Présenté par Jérôme Tama – Onepoint Bordeaux

Jérôme débute en comparant le code à une maison : tout y est présent, mais pas toujours à sa place. Cette métaphore illustre parfaitement les difficultés de lecture et de maintenance rencontrées par les développeurs. Son objectif est clair : montrer comment réécrire le code de manière plus efficace, maîtrisée et automatisée.
Pour cela, il présente OpenRewrite, un framework open source conçu pour automatiser la réécriture de code. Testable, distribuable et multi-langage, il supporte Java, Kotlin, Groovy, YAML, et plus récemment TypeScript. Le cœur du framework repose sur le concept de “recipes”, de petites unités atomiques capables de parcourir et transformer le code. Ces recettes peuvent se composer entre elles pour réaliser des modifications plus complexes.
OpenRewrite s’appuie sur le Lossless Syntax Tree (LST), un arbre syntaxique préservant la mise en forme et les commentaires, garantissant ainsi que la structure du code reste intacte après transformation. Les recettes peuvent être exécutées de différentes façons, que ce soit via la CLI ou des plugins comme ceux de Maven.
Pour illustrer la puissance de l’outil, Jérôme montre la migration d’un projet de JUnit 4 vers JUnit 5 : une tâche habituellement longue de trois semaines, réalisée en quelques secondes grâce à une recette existante. Il précise qu’il existe des centaines de recettes gratuites, et qu’il est même possible d’en créer sans écrire de code, via une approche déclarative.
Cependant, Jérôme met en garde : un outil aussi puissant doit être utilisé avec discernement, notamment pour la maintenance de bibliothèques internes ou open source. En conclusion, OpenRewrite incarne une approche “refactor-as-code” à la fois pragmatique, testable et reproductible, offrant un véritable gain de temps et une amélioration durable de la qualité du code.
Unconf - Paroles de dev' : la conférence où vous avez la parole !
Par Benoit Martin et Damien Raude-Morvan
Cette Unconference, un des formats inédits pour l’édition 2025 du DevFest, était une réelle découverte. Et pour cause : il n’y a pas de sujet choisi au préalable. Après un rappel des règles de bonnes conduites pour les 2h que nous allions passer ensemble (écoute, empathie, bienveillance), Benoit et Damien nous ont invité à faire un brainstorming. Nous devions réfléchir aux sujets que nous souhaitions aborder avec les participants. Nous les avons noté sur des post-its, puis nous les avons mis sur un tableau. Ensuite, nous avons voté pour nos sujets préférés. Finalement, nous avons séparé la table en deux groupes en fonction des thématiques : une sur l’ubérisation des métiers du développement et la place des invisibles dans nos métiers. L’autre sur les problématiques liées au refactoring et à la gestion de la dette à grande échelle, avec ensuite un sujet sur l’avenir du TDD avec l’avènement de l’agentique. Sur toute la durée du créneau, il était possible de changer de table comme nous le voulions, voire de quitter l’assemblée pour retourner sur le salon. La loi des deux pieds était bien en place 🙂. De manière analogue, il n’y avait pas de temps imparti pour aborder un sujet : il pouvait aussi bien être traité en 10mn qu’en 1h30.
Comme nos deux animateurs le stipulaient en préambule, nous sommes aussi nombreux et nombreuses à venir en conférence pour les discussions qui se déroulent entre les présentations. Et c’est vrai que ce format présentait ce côté rafraîchissant, et comblait les manques que nous pouvons parfois ressentir en sortie d’une présentation : manque de retour concret du terrain, débat sur les limites d’une approche ou encore l’impossibilité de poser des questions parce que le temps imparti était dépassé.
Au final, on peut en ressortir avec des outils à tester comme vibe-flow et des certitudes qui se retrouvent infirmées ou confirmées.
En conclusion, merci ! Et si le format vous intéresse, les software crafters de Nantes ont l’habitude de fonctionner de cette manière. Jetez-y un oeil !
Détective de la prod: résoudre l’enquête avant le crash
Présenté par Sébastien Ferrer – OVHCloud Nantes

Sébastien ouvre son talk en opposant les deux grandes phases du cycle de vie logiciel : le build (développement) et le run (exploitation).Fort de son expérience d’astreinte, il décrit la difficulté de gérer plusieurs projets sans toujours les connaître en profondeur.
Être “de run”, explique-t-il, signifie assurer le suivi des incidents, des tickets et des indicateurs clés comme le TTA et le TTR, tout en restant le principal point de contact en cas de problème.Pour diagnostiquer efficacement, il faut adopter une posture de détective, en s’appuyant sur la Root Cause Analysis (RCA).
Différentes méthodes existent : le drill down, rigoureux mais long, et le bottom up, plus adapté aux couches basses comme le réseau.
Dans tous les cas, la priorité reste de restaurer le service avant de chercher la cause profonde.Une fois la situation stabilisée, vient le temps du cadrage, de la reproduction et du post-mortem.La méthode des Five Whys aide alors à remonter à l’origine du problème.
Cette logique s’inscrit dans une philosophie claire : “Développe ton application comme si tu allais la maintenir.”
Sébastien insiste ensuite sur l’importance des logs : anticiper les informations utiles, structurer les niveaux, et surtout adopter un format standardisé pour faciliter leur exploitation.Le monitoring complète cette visibilité, en offrant des métriques, des alertes et une meilleure réactivité face aux incidents.
Enfin, il relie ces bonnes pratiques à une démarche LEAN : uniformiser les projets grâce à des librairies communes, utiliser un linter pour garantir la cohérence du code, et continuer à progresser, notamment via son blog blog.kimi.ovh.
Angular Signal - Monde asynchrone, état dépendant
Workshop (lab de 2h) présenté par Modeste Assiongbon et Camille Pillot
Le DevFest, ce n’est pas que des conférences, mais aussi des “labs” ! Il s’agit d’ateliers de 2h, avec une trentaine de participants, où l’animateur anime une sorte de TD au travers de slides et petits exercices que les participants réalisent sur leur ordinateur.
J’ai assisté à un lab autour des signal et rxResource Angular, fraîchement matures depuis Angular 19. Ces nouveaux outils permettent de gérer des Observable de manière bien plus concise, tant dans le code TS que HTML. Elles permettent un affichage de l’état d’erreur ou de chargement simplifié. Les exercices se poursuivent sur des notions similaires avec les httpResource (qui simplifient la syntaxe d’appels serveur simples) et les LinkedSignal (qui rendent une computed modifiable au lieu de lecture seule).
Pourtant fervent utilisateur d’Angular au quotidien, j’ai appris plein de choses au travers de cet atelier, que je pourrai désormais appliquer sur mes projets !
Les exercices étaient très bien décrits et les slides très claires. La présentation est disponible sur SlideShare. Le dépôt avec les exercices est disponible sur GitHub.
Mobiles en Perspective: quels impacts sociaux et environnementaux ont nos smartphones ?
Présenté par Thomas Boutin (Ippon Technologies) et Robin Caroff (U Tech)
En 2007, le smartphone entrait dans nos vies. Depuis il est devenu notre réveil, notre appareil photo, notre carnet d’adresses, notre GPS, etc et les usages évoluent constamment au fur et à mesure des nouveautés proposées par les constructeurs et les éditeurs logiciels. Mais à quel prix ?

« Mobiles en Perspective », c’est une session un peu à part au DevFest Nantes 2025 : un format unconf, participatif, inspiré de la Fresque du Climat. Pas de slides ni de monologue : ici, on échange, on réfléchit ensemble et on explore les coulisses du numérique. On va donc essayer de ne pas tout dévoiler, parce que c’est avant-tout un format où le participant est acteur de l’atelier.
Thomas et Robin nous font redécouvrir le mobile étapes par étapes, avec une série de cartes prédéfinies : de sa fabrication à nos usages quotidiens, en passant par les infrastructures qui le font fonctionner. On parle beaucoup environnement aussi dans cet atelier. L’utilisation de ressources comme l’eau et les minerais lourds nécéssaires à la construction du matériel qu’il faut extraire (souvent dans des pays exploitant le travail des enfants.). La difficulté à recycler un smartphone, et son manque de rentabilité (moins de 5€ de matière première à récupérer) ainsi que le décyclage (perte de valeur des matériaux lors du recyclage) sont les sujets qui m’ont le plus choqués.
Enfin, les animateurs nous sensibilisent sur les impacts humains qui en découlent. Parfois positifs (accessibilité, changement des méthodes de travail), et trop souvent négatifs (santé mentale, isolement, fracture numérique), le smartphone a complètement changé nos modes de vie et nos habitudes.
Le tout, dans une ambiance conviviale, ouverte à toutes et tous, sans prérequis techniques. L’objectif n’est pas de culpabiliser, mais de comprendre ensemble et d’imaginer un numérique plus soutenable. Et pour celles et ceux qui voudraient prolonger la réflexion : tout le contenu de l’atelier est open source et libre d’accès sur GitHub.
L'aspirant chevalier LynxJS peut-il détrôner monseigneur React Native et le duc de Flutter ?
Présenté par Simon Bernardin - Mobiapps
Il existe déjà un grand nombre de frameworks multiplateformes promettant le Saint Graal : pouvoir déployer nos applications sur toutes les plateformes disponibles (android/ios/web/desktop) à partir d’une seule codebase.
Simon Bernardin, vêtu de son adorable armure et son heaume de guerre, vient alors nous présenter LynxJS, un nouveau framework cross-platform développé par ByteDance (le studio derrière TikTok), sorti le 5 mars 2025, qui cible Android, iOS, HarmonyOS et prochainement le web. Malgré son jeune âge, il est apparemment déjà utilisé par ByteDance en interne.
L'atout principal de LynxJS est son architecture à double thread automatique : le thread principal gère uniquement l'affichage tandis qu'un thread secondaire traite tous les calculs et interactions par défaut. Le framework utilise un moteur JavaScript développé spécifiquement pour le framework (Prim.js), écrit en Rust, et qui serait nettement plus rapide que ses concurrents (environ 28% plus rapide que QuickJS).
Simon termine sa présentation en définissant ses axes d’amélioration et ses points forts. En premier lieu, l’expérience développeur reste quasi inexistante sur la partie mobile avec beaucoup de choses manquantes : absence de gestion automatisée de la publication (tout doit être configuré manuellement par plateforme) et impossibilité d'utiliser des modules natifs existants, obligeant les développeurs à coder eux-mêmes les fonctionnalités natives.
Néanmoins, Il tenait à souligner les performances fluides "out of the box", la documentation qui est de qualité, ainsi que la compatibilité avec l'écosystème React permettant l'utilisation d'assistants/agents IA pour faciliter le développement.
C’est un aperçu intéressant que nous offre Simon ici bien que LynxJS reste très jeune et immature avec un écosystème limité, il mérite d'être surveillé grâce à ses promesses de performances tenues et l'écoute active de ByteDance vis-à-vis de la communauté.
SELECT 'amazing_features' FROM "postgresql"
Présenté par Kevin Davin - Gradle
Dans son talk, Kevin a mis en avant des fonctionnalités utiles, pratiques et souvent méconnues de SQL et de Postgres. L’objectif était de nous faire connaître ces features pour nous éviter de tout recoder “from scratch”.
Voici une liste non exhaustive de ces fonctionnalités:
- Les CTE (Common Table Expressions)
Leur usage améliore la lisibilité des requêtes en fragmentant les étapes. Dans certains cas, le plan d’exécution peut bénéficier d’une exécution parallèle et donc optimiser le temps d’exécution de la requête.
- Fonctions de fenêtrage (Window Functions)
Les window functions sont un outil SQL standard, qui permettent d’effectuer des calculs sur un ensemble de lignes liées à la ligne courante, sans regrouper les données comme avec GROUP BY. Un exemple courant est la déduplication via ROW_NUMBER().
Le mot-clé LATERAL permet de faire référence à des colonnes de la requête “parente” dans une sous-requête du FROM, ce qui ouvre beaucoup de possibilités (agrégations, appels de fonctions, filtrages dépendants).
Cela peut améliorer les performances en évitant des sous-requêtes coûteuses ou des jointures redondantes
L’ancienne pratique du SERIAL (auto-increment) continue d’exister, mais l’usage de UUID est recommandé pour certaines tables (notamment dans des environnements distribués ou microservices) pour éviter les attaques par énumération (si les identifiants sont séquentiels, un attaquant pourrait “deviner” des IDs).
PostgreSQL supporte nativement le type uuid et peut en générer via des fonctions intégrées comme gen_random_uuid() ou uuidv4().
Les contraintes (clé primaire, clé étrangère, contraintes de CHECK, contraintes d’unicité) sont essentielles pour protéger la cohérence et éviter la corruption de données.
Il vaut mieux s’appuyer sur les contraintes déclaratives du SGBD que sur du code applicatif pour valider la logique métier.
La commande NOTIFY permet de notifier d’un événement survenu dans la base de données. Il peut être accompagné du contenu de cet événement (le contenu d’un item qui vient d’être inséré en base par exemple). Il envoie cet événement à l’application qui a exécuté un LISTEN sur ce channel.
Les Foreign Data Wrappers permettent à PostgreSQL de consulter des sources externes comme s’il s’agissait de tables locales. Une table externe est créée et pointe sur la source externe. Cela permet d’exécuter facilement des opérations depuis Postgresql.
D’autres fonctionnalités peuvent permettre d’optimiser l’utilisation de votre moteur Postgresql (ltree, les types, jsonb pour stocker des données non structurées, … )
Let’s play Factorio - Ou “Comment j'ai appris à refactor mon code en jouant à Factorio”
Conférence présentée par Julien Wittouck
Julien utilise Factorio, un jeu d'automatisation industrielle, pour illustrer des concepts d'architecture logicielle. Dans ce jeu, le joueur doit construire des chaînes de production complexes pour transformer des ressources brutes en produits sophistiqués.
L'étape du PoC
Au départ, le joueur crée rapidement des usines reliées entre elles pour obtenir un résultat fonctionnel. On obtient vite du "code spaghetti" : un enchevêtrement chaotique difficile à comprendre et à faire évoluer.
Modularisation et isolation
En regroupant les usines par type de transformation, on crée des modules spécialisés qui alimentent les autres. Cette approche fait émerger des "couches" de responsabilités, comparable à une architecture en lasagne. Julien présente également les microservices via des drones autonomes qui transportent les ressources : excellente scalabilité (copier-coller de modules), mais problèmes d'observabilité avec des flux difficiles à suivre.
Urbanisation
Pour passer à l'échelle, on utilise des bus partagés auxquels se connectent les modules, permettant de déployer facilement des "quartiers" entiers (parallèle avec l'IaC). Julien illustre aussi les problématiques de sécurité (attaques aliens = cyberattaques) avec son "firewall" de tourelles lance-flammes, et l'importance de l'alerting via des sondes surveillant les débits et ressources.
On se rend bien compte dans cette conférence que le jeu vidéo permet d'expérimenter et visualiser des concepts architecturaux abstraits de manière ludique. Comme le dit Julien : "Je ne joue pas quand je fais du Factorio, je travaille" – les leçons tirées du jeu sont directement applicables à l'architecture logicielle.
Conclusion
Cette édition 2025 du DevFest Nantes aura été riche, inspirante et fédératrice pour nos Ippons. Ces deux jours nous ont permis d’explorer de nouvelles approches, de confronter nos pratiques et d’alimenter nos réflexions, autant sur les sujets techniques que sur l’impact de notre secteur. Nous repartons avec des idées concrètes à mettre en œuvre, des échanges qui continueront d’alimenter nos projets, et l’envie de faire grandir ces apprentissages au sein de nos équipes.Un grand merci à toutes celles et ceux rencontrés sur place pour leur énergie et leur curiosité. Nous avons déjà hâte de vivre la prochaine édition et de poursuivre ces discussions qui étaient, pour la plupart, légendaires !





