Skip to content
<Thierno DIALLO/>

Thierno DIALLO

Ingénieur logiciel senior

Bonjour, moi c’est Thierno, ingénieur logiciel senior basé à Montpellier. J’aime concevoir et construire des systèmes backend, depuis la première esquisse d’architecture jusqu’au code fiable en production, puis rédiger la documentation qui évite à la personne suivante de devoir lire dans mes pensées. Je suis attiré par les problèmes où fiabilité, sécurité, performance et maintenabilité veulent toutes passer devant. Trouver le juste équilibre entre ces exigences parfois contradictoires, c’est justement ce que je préfère. Je vous laisse explorer la suite : j’ai laissé les compromis les plus intéressants bien en vue.

Compétences techniques

  • Java
  • Quarkus
  • Python
  • OAuth 2.0
  • OpenID Connect
  • PostgreSQL
  • Docker
  • Kubernetes
  • GitHub Copilot
Thierno DIALLO

Formations

Diplôme d’ingénieur de l’École Centrale de Lyon

Septembre 2018 – Octobre 2021

École Centrale de Lyon

Sélectionné pour intégrer le programme de double diplôme avec l’École Supérieure Polytechnique de Dakar au terme d’un processus sélectif. Ce cursus pluridisciplinaire d’ingénierie générale a élargi mon socle en ingénierie informatique grâce à une approche transversale des problématiques d’ingénierie.

Diplôme d’ingénieur de conception – Génie informatique

Octobre 2017 – Octobre 2021

École Supérieure Polytechnique de Dakar

J’ai suivi la formation d’ingénieur de conception en Génie informatique à l’ESP, où j’ai acquis de solides bases en informatique et en sciences de l’ingénieur. Ce cursus m’a ensuite conduit à être sélectionné pour intégrer l’École Centrale de Lyon en double diplôme et a constitué le socle de mon parcours d’ingénieur logiciel.

Diplôme universitaire de technologie (DUT) – Informatique

Octobre 2015 – Juillet 2017

École Supérieure Polytechnique de Dakar

Admis à l’issue d’un concours et d’une sélection sur dossier scolaire, j’ai suivi cette formation de deux ans en informatique après le baccalauréat. Elle m’a donné un premier socle technique, avant ma sélection pour poursuivre en cycle ingénieur de conception en Génie informatique à l’ESP.

Expériences

Gouvernance des agents IA et accompagnement des développeurs

Janvier 2026 – Aujourd’hui

CompuGroup Medical (CGM)

L’arrivée des agents IA de développement dans notre quotidien chez CGM a rapidement fait apparaître une qualité inégale, des efforts dupliqués, des résultats peu fiables et l’absence de standards communs. Dans mon rôle de Software Engineer senior, j’ai répondu à ces enjeux en pilotant la création d’un cadre partagé pour l’équipe.

J’ai défini un modèle de gouvernance couvrant les responsabilités, les cycles de contribution et de revue, les tests indépendants, les phases de préversion, la composabilité, les règles d’activation non concurrentes et des seuils de qualité recommandés. Pour rendre l’évaluation reproductible, j’ai conçu une grille de notation pondérée et développé un outil déterministe en Python qui évalue les skills et les workflows, signale les problèmes critiques et classe les améliorations selon leur impact.

J’ai également créé des skills réutilisables pour le diagnostic sécurisé de Kubernetes, la gestion des tickets Jira, les pipelines et merge requests GitLab, les opérations Git locales, l’identification des environnements de fonctionnalités et l’évaluation automatisée de la qualité. Deux workflows d’orchestration combinent ces capacités dans des processus structurés de diagnostic et d’évaluation, avec des contrats explicites, des dépendances réutilisables, des garde-fous de sécurité et une gestion des échecs.

Ces ressources sont largement utilisées par l’équipe. Je continue à évaluer les contributions, à aider mes collègues à créer et déboguer leurs propres workflows, à les accompagner lorsqu’ils rencontrent des problèmes liés aux agents IA ou aux intégrations d’outils, et à faire évoluer le cadre à partir des retours d’usage.

Authentification fédérée avec OIDC

Mars 2026 – Juillet 2026

CompuGroup Medical (CGM)

L’authentification unique à l’échelle du groupe représentait l’étape suivante pour une plateforme SaaS de santé multi-tenant utilisée en France et en Italie. Dans mon rôle de Software Engineer senior chez CGM, j’ai conçu et implémenté de bout en bout l’intégration d’un fournisseur d’identité d’entreprise.

La frontière architecturale essentielle consistait à déléguer l’authentification tout en conservant la gestion des rôles, des autorisations et des périmètres organisationnels au sein de la plateforme, sans supprimer le mode de connexion existant par identifiant et mot de passe.

J’ai pris en charge l’architecture, la coordination avec les parties prenantes, l’implémentation Java/Quarkus, le modèle de sécurité et la documentation technique. L’intégration utilise le flux OIDC Authorization Code avec PKCE, les Pushed Authorization Requests, ainsi que la validation de state et de nonce.

J’ai conçu la gestion côté serveur de l’état d’authentification et des jetons externes, notamment leur renouvellement et leur suppression synchronisée avec le cycle de vie de la session, ainsi qu’un modèle d’association des identités indépendant du fournisseur qui refuse les correspondances ambiguës. J’ai également résolu le routage des callbacks pour des environnements de test dynamiques sans assouplir la validation des URI de redirection.

L’intégration est désormais en production et activement utilisée par des professionnels de santé, offrant une authentification fédérée sécurisée tout en préservant les frontières internes d’autorisation.

Configuration dynamique des intégrations

Janvier 2026 – Mars 2026

CompuGroup Medical (CGM)

Les intégrations tierces n’utilisaient pas toutes les mêmes paramètres de connexion : les points d’accès variaient selon l’environnement de déploiement et le profil de l’utilisateur, tandis que la configuration correspondante était dispersée entre plusieurs fichiers et le code applicatif. Dans mon rôle de Software Engineer senior chez CGM, j’ai pris en charge le remplacement de ce modèle fragmenté par un système centralisé de résolution des configurations.

Orienter un utilisateur de test ou pilote vers un point d’accès hors production, tout en maintenant les professionnels de santé sur le point d’accès de production, nécessitait souvent une modification du code et un redéploiement, sans moyen simple de définir une exception pour un seul utilisateur.

J’ai remplacé ce fonctionnement par un modèle de résolution à trois niveaux, évalué pour chaque utilisateur et chaque intégration : une configuration spécifique à l’utilisateur est prioritaire, une stratégie propre à l’intégration applique les règles de routage, puis une valeur par défaut gérée en base de données sert de repli. Les changements courants de points d’accès et les configurations individuelles peuvent ainsi être appliqués sans redéployer l’application.

J’ai utilisé les patterns Strategy et Factory pour isoler et étendre les règles de routage. J’ai également conçu le modèle de données JPA, implémenté le service et l’API en Java/Quarkus, et documenté l’architecture dans une RFC formelle accompagnée de diagrammes techniques. Le système est activement utilisé en production.

Projets

Laajal Sa Diine

Laajal Sa Diine est une plateforme en ligne de questions-réponses audio courtes, que j’ai conçue et développée seul pour faciliter l’accès à des réponses pratiques sur l’islam. Le produit associe une application cliente en React et TypeScript à une API REST Node.js et Express, MongoDB et Amazon S3.

L’un des principaux défis applicatifs a été la recherche de contenus : un index de recherche plein texte pondéré, configuré pour le français, classe les correspondances sur plusieurs champs, tandis que des filtres combinables et le défilement infini facilitent l’exploration de la bibliothèque. J’ai également mis en place une administration protégée par JWT, avec des droits distincts pour la gestion des contenus, des administrateurs et des sauvegardes.

La mise en ligne du produit a constitué un autre défi important. Plutôt que d’utiliser un hébergement entièrement managé, j’ai volontairement provisionné et configuré un serveur Hetzner Cloud, déployé les services avec Docker, assuré leur routage avec Traefik et configuré les enregistrements DNS via Cloudflare.

Cette approche m’a permis de pratiquer concrètement le déploiement et l’exploitation d’une application de bout en bout, jusqu’à sa mise en production. La plateforme reste en ligne, utilisée par des auditeurs et maintenue comme un projet personnel en évolution.

  • React
  • TypeScript
  • Node.js
  • Express
  • MongoDB
  • Amazon S3
  • Docker
  • Traefik
  • Cloudflare
  • Hetzner Cloud

Système d’alerte du niveau de remplissage des conteneurs à déchets

GSF souhaitait permettre à ses équipes de connaître le niveau de remplissage des conteneurs avant de planifier leurs tournées. Dans le cadre d’un projet académique de l’ECL mené de septembre 2019 à avril 2020, j’ai assuré la direction technique de la conception d’un système connecté capable de mesurer ce niveau et de transmettre périodiquement les données.

J’ai piloté la conception et la réalisation du système électronique, en définissant la chaîne de communication reliant un capteur à ultrasons et une carte Arduino à une passerelle LoRa connectée aux serveurs de GSF. J’ai développé le firmware Arduino en C++ et configuré une mesure et une transmission toutes les 30 minutes afin de limiter l’activité du dispositif et de préserver la batterie.

J’ai également coordonné le travail avec l’équipe mécanique, qui a utilisé le FabLab de l’ECL pour fabriquer un boîtier de protection adapté à un environnement sale et contraignant. Nous avons livré un système fonctionnel et l’avons testé sur le terrain dans plusieurs conteneurs. Sans relais intermédiaire, la communication LoRa a atteint une portée d’environ 100 mètres.

Ce projet a renforcé mon expérience des systèmes embarqués, de la conception basse consommation, des communications longue portée et du pilotage technique multidisciplinaire.

  • Arduino
  • C++
  • LoRa
  • Ultrasonic Sensor

Coupe de France de Robotique 2019 – Atom Factory

L’édition 2019 de la Coupe de France de Robotique demandait aux équipes de concevoir et construire des robots autonomes pour Atom Factory, un match de 100 secondes proposant plusieurs actions rapportant des points, sans ordre imposé. J’y ai représenté l’École Centrale de Lyon de septembre 2018 à juin 2019, dans un défi où la stratégie comptait autant que la fiabilité d’exécution.

En tant que responsable technique de l’équipe électronique, j’ai contribué activement au logiciel embarqué en Python exécuté sur des contrôleurs LEGO EV3. J’ai travaillé étroitement avec l’équipe mécanique pour aligner la stratégie de match, les capacités physiques et le comportement logiciel, tout en coordonnant le travail électronique jusqu’à l’intégration.

Nous avons également appliqué des notions de commande en boucle fermée étudiées à l’ECL afin de réguler le déplacement et le positionnement des robots. Nos robots ont obtenu leur homologation officielle et participé à la compétition. Ce projet a renforcé mon expérience en programmation embarquée, automatique, intégration multidisciplinaire et coordination technique.

  • Python
  • LEGO MINDSTORMS EV3
  • Embedded Systems
  • Closed-Loop Control