Le premier concours
Un concours d’algorithmique au collège, à Toulouse. Le premier problème que j’ai eu envie de résoudre pour lui-même, pas pour la note.
Product Manager, ingénieur d’abord
Tout a commencé par un concours d’algorithmique, au collège.
Ce site n’est pas une galerie de projets. C’est un mouvement de caméra qui recule, lentement, jusqu’à ce que l’image complète apparaisse.
J’ai appris à construire des systèmes avant d’apprendre à construire des produits.
Les deux se ressemblent plus qu’on ne le croit.J’ai découvert l’informatique au collège, à Toulouse, dans des concours d’algorithmique. Ensuite j’ai touché à tout ce qui se démontait — le logiciel comme le matériel. J’ai choisi EPITA pour ce qu’elle avait de plus technique, et je n’ai pas été déçu.
En quatrième année, en stage comme développeur full-stack, j’ai compris que ce qui m’intéressait n’était pas de résoudre le problème, mais de choisir lequel méritait de l’être. C’est ce déplacement qui m’a mené au produit — sans jamais quitter la technique.
Rien de tout cela n’était planifié. Chaque étape a rendu la suivante évidente.
Faites défiler horizontalementUn concours d’algorithmique au collège, à Toulouse. Le premier problème que j’ai eu envie de résoudre pour lui-même, pas pour la note.
Cinq ans d’école d’ingénieurs, choisie pour ce qu’elle avait de plus technique. Algorithmique, systèmes, réseaux — la grammaire avant les phrases.
Les années de projets. Du code qui sort de l’exercice et rencontre quelqu’un qui l’utilise, puis s’en plaint.
Cinq mois comme développeur full-stack. La question la plus difficile n’était plus comment construire, mais quoi construire.
Diplômé, puis Product Manager — d’abord en stage, aujourd’hui en CDI. Même métier, autre altitude.
Je savais écrire du code. Je ne savais pas encore ce que ça devenait quand trois autres personnes écrivaient dans le même dépôt.
Un jeu vidéo, une équipe de quatre, et le réseau à faire tenir
Un jeu multijoueur construit à quatre, en C# sous Unity. J’étais en charge du multijoueur : la partie qu’on ne voit pas, et celle qui casse.
Un sujet volontairement fun pour un premier projet d’équipe — sauf que le multijoueur ne pardonne rien. Deux machines, deux horloges, et un état de jeu qui doit rester le même des deux côtés.
J’ai pris le réseau et je m’y suis tenu : synchronisation de l’état, gestion des connexions, et des parties jouables à plus de dix. Le reste de l’équipe couvrait les niveaux, le design et l’interface — et il a fallu apprendre à travailler sur un dépôt commun sans s’écraser.
Une application, ce n’est pas un écran. C’est un compte, une session, une API tierce, et un quota qu’on découvre un vendredi soir.
Une application de méditation, sur Android et iOS
Une application mobile de méditation et de bien-être, compatible Android et iOS, adossée à des contenus YouTube et à un backend Firebase.
ArchivéDiffuser des séances sans les héberger, gérer des comptes utilisateurs, et faire tenir tout cela sur deux systèmes qui ne s’accordent sur presque rien.
La lecture des contenus passe par YouTube plutôt que par une infrastructure vidéo à reconstruire, et Firebase gère les accès et les données. La meilleure décision technique du projet a surtout été celle de ne pas construire.
Deux semaines pendant lesquelles la seule variable ajustable était moi. Ce que j’y ai appris n’est pas une compétence : c’est un seuil.
Deux semaines, cent exercices, aucune marge
Le C appris de A à Z en deux semaines, de huit heures du matin à minuit. Plus de cent exercices, et pas le droit à l’erreur.
Apprendre un langage sans filet, dans un format calibré pour que la difficulté dépasse ce qu’on peut absorber. La question n’était pas de tout finir : elle était de ne pas s’arrêter.
Aucune astuce. Un rythme tenu quatorze jours d’affilée, des exercices repris jusqu’à ce qu’ils passent, et l’acceptation qu’un échec le matin ne dit rien de la journée.
Ce qui résiste ne se contourne pas. On y revient, jusqu’à ce que ce soit soi qui ait changé.
Repartir de zéro, jusqu’à ce que la machine obéisse. Et découvrir, dans la foulée, que le plus difficile n’était déjà plus là.
Un shell POSIX reconstruit depuis zéro, en C
Recréer un terminal POSIX complet : de la frappe au clavier jusqu’à l’exécution de n’importe quelle commande. En C, à quatre, en un mois, sans rien réutiliser.
Un shell paraît simple tant qu’on ne l’écrit pas. Derrière l’invite il y a un lexer, une grammaire, des redirections, des processus, des signaux — et une norme qui décrit tout cela au caractère près.
Le projet a été découpé comme un compilateur : lecture, analyse lexicale, arbre syntaxique, exécution. Chaque couche testée seule avant d’être branchée. Le véritable apprentissage a été le workflow — branches, revues, intégration continue.
La refonte d’un parcours critique, à l’échelle d’un groupe entier
Cinq mois de stage comme développeur full-stack. J’y ai mené la refonte d’un menu utilisé pour créer les comptes de sept millions d’employés — un point de passage critique, sans droit à l’erreur.
En ligneUn parcours ancien, utilisé quotidiennement par des équipes internes, et dont dépendait l’accès de sept millions de personnes. Impossible de le reprendre en repartant de zéro : il fallait le refaire sans jamais l’interrompre.
Une refonte progressive côté Angular, écran par écran : conserver strictement le comportement existant là où il faisait loi, le corriger là où il coûtait du temps aux équipes. Le travail le plus utile n’a pas été le code — il a été de comprendre qui s’en servait, et pourquoi.
J’ai passé cinq mois à répondre à la question. Puis j’ai regardé la personne assise à côté de moi, dont le métier était de la poser.
Un vrai client, de vrais utilisateurs. La première fois où la bonne réponse technique dépendait d’une question qui ne l’était pas.
Tech lead sur une plateforme de diffusion en direct
Un projet d’école, mais un vrai client et de vrais utilisateurs derrière : une solution de streaming en direct et d’hébergement vidéo. Mon rôle : concevoir les solutions techniques avant de les exécuter.
Le client décrivait un besoin, pas une architecture. Diffuser en direct et héberger de la vidéo recouvre une dizaine de décisions techniques dont aucune ne se déduit du cahier des charges.
Traduire la demande en options, estimer ce que chacune coûtait, défendre celle qu’on retenait — et seulement ensuite écrire le code. C’est le premier projet où j’ai passé plus de temps à décider qu’à implémenter.
Concevoir, c’est répondre. Décider, c’est accepter qu’on ne répondra pas à tout.
Cinq personnes, un périmètre trop grand, une date. Le travail n’est plus de tout faire : il est de choisir ce qui compte.
Chef de projet sur la construction d’un cloud hybride
Une équipe de cinq, un cloud hybride mêlant privé et public, capable de déployer des applications à la demande sur des environnements isolés. J’ai dirigé le projet et construit la partie privée.
Déployer à la demande, sur des environnements isolés, en combinant une infrastructure qu’on possède et une qu’on loue. Deux modèles qui n’ont ni les mêmes coûts, ni les mêmes limites, ni la même façon de tomber en panne.
Un schéma d’architecture posé avant tout développement, un découpage du travail entre cinq personnes, et un dialogue tenu avec le client d’un bout à l’autre. Sur la partie privée, j’ai construit ce que j’avais spécifié — la meilleure façon de vérifier une spécification.
Aucun de ces noms n’a d’intérêt en soi. Ce qui compte, c’est le type de problème qu’ils m’ont forcé à comprendre.
La grammaire. On en change souvent, la logique reste.
Là où le produit devient tangible pour quelqu’un.
Ce qui doit tenir quand personne ne regarde.
La discipline qui m’a appris à penser en systèmes.
Les outils qui remplacent l’intuition par des faits.
Moins un métier qu’une exigence sur le détail.
La technique n’est pas ce qui sépare un ingénieur d’un product manager. C’est ce qui leur permet de se parler.
Je n’ai jamais considéré le code comme une fin. C’était une manière d’avoir une prise sur le réel — de transformer une idée en quelque chose qu’on peut critiquer, mesurer, améliorer. Le produit fait exactement la même chose, à une autre échelle.
— Yohan Canac
Je ne suis pas devenu Product Manager parce que j’aurais cessé d’aimer construire. Je le suis devenu parce que cinq ans passés à construire m’ont appris à voir ce qu’il fallait construire. Comprendre la technologie m’a permis de comprendre les produits. Comprendre les produits me permet aujourd’hui d’accompagner les équipes qui les construisent.
Je cherche des sujets où la difficulté technique et l’enjeu utilisateur sont indissociables. C’est là que ce parcours sert à quelque chose.
Une question sur ce parcours, un projet, une contradiction à m’opposer : les trois m’intéressent également. Et si vous êtes étudiant et que quelque chose ici vous parle, écrivez — c’est exactement comme ça que ça a commencé.