About
Mon parcours se lit comme une progression: scripts, machines, mémoire, hardware, runtimes. Chaque étape a rendu la suivante plus concrète.
Commencer par automatiser
Mes premiers programmes utiles étaient des scripts Bash sous Linux et des expériences autour de serveurs Minecraft vers 12 ans. Cette origine reste visible: écrire du logiciel pour retirer du travail manuel répétitif, puis renforcer l'outil quand la première version devient trop fragile.
Comprendre que le code touche la matière
À 15 ans, j'ai suivi une formation technique de trois ans en usinage CNC et optimisation de programmes de production. Des stages dans des contextes comme Renault, Disney, Clerc et Barrio ont déplacé la programmation vers les toolpaths, les cycles machine, les tolérances, l'usure et la matière perdue.
Cette expérience explique une partie de mon goût d'ingénierie actuel: demander ce qui se passe quand une hypothèse échoue, ce que l'opérateur voit et quelles pannes peuvent être récupérées sans improvisation.
C, C++ et le coût de l'abstraction
L'École 42 a poussé mon travail vers le bas niveau: C, C++, mémoire, algorithmes, structures de données et projets où une frontière floue devient vite un bug. Des projets dans des contextes comme Roche, BNP Paribas et La Poste ont ajouté une autre contrainte: le logiciel doit s'insérer dans des organisations qui ont déjà leurs workflows, leurs données et leurs habitudes opérationnelles.
Le hardware comme discipline de conception
Construire et calibrer des imprimantes 3D rend une leçon très concrète: le système n'est pas seulement le firmware. Il inclut l'électronique, le châssis, les drivers moteurs, la surface, le matériau, l'opérateur et la récupération. Labalek, une imprimante MSLA custom, est l'artefact le plus clair de cette phase.
Pourquoi Rust est devenu central
Rust correspond à la direction que mon travail avait déjà prise. Il garde le contrôle sur la mémoire, les formats de fichiers, les frontières de processus et la performance, tout en rendant plusieurs classes d'erreurs plus difficiles à publier. Dans AppCore, Rust sert surtout à imposer des contrats: manifests, services bornés, containers de stockage authentifiés, enveloppes peer, mises à jour authentifiées et frontières testables.
Ce que je cherche à résoudre aujourd'hui
Les problèmes qui reviennent sont les systèmes local-first, le logiciel desktop opérationnel, le stockage sécurisé, l'architecture de runtime, les outils industriels, les interfaces hardware et les outils développeur assez petits pour être compris et assez stables pour inspirer confiance.
La bonne question est rarement "quelle technologie utiliser?". Elle ressemble plutôt à ceci: qu'est-ce qui doit rester vrai quand le réseau tombe, quand le filesystem est partagé, quand deux utilisateurs modifient le même objet, quand une release doit être annulée ou quand une machine a déjà commencé un travail physique?