Je construis des applications métier complètes, de l'API à l'app mobile offline-first, et j'y intègre du Machine Learning quand ça crée de la valeur. Du code à l'architecture, jusqu'au déploiement.
Développeur full-stack, j'aime prendre une application de la page blanche jusqu'à la prod, et en rester responsable de bout en bout.
Depuis janvier 2024, je travaille chez SLI (éditeur de solutions de gestion), d'abord en alternance, en CDI depuis septembre 2026, où je prends en charge les projets de bout en bout : architecture, choix techniques, processus, mise en production et fiabilité, en grande autonomie. J'y suis aussi intégrateur et formateur EBP, et j'assure le support de plus de 200 clients.
Mon terrain de jeu, c'est la full-stack TypeScript (NestJS, Next.js, React Native) et l'intégration de systèmes métier — y compris des ERP propriétaires fermés, ce qui n'est jamais simple. En parallèle, ma formation Machine Learning Engineer (titre RNCP niveau 7) me permet d'embarquer du ML dans des produits réels, pas seulement dans des notebooks.
Ce qui me plaît, c'est de garder la main sur toute la chaîne — de l'idée à la production — et de continuer à apprendre, du Machine Learning à l'IA agentique.
Suite de gestion full-TypeScript pour techniciens de terrain : API NestJS, back-office Next.js et application mobile Expo offline-first, avec synchronisation bidirectionnelle non destructive vers un ERP propriétaire fermé et intégration d'un RMM.
Plateforme analytique sur les données de l'ERP : ETL en architecture médaillon Bronze/Silver/Gold sur PostgreSQL, et plusieurs modèles de Machine Learning servis en production via un microservice FastAPI découplé (interprétabilité SHAP, tracking MLflow).
Site d'un institut bien-être à Annecy, géré de bout en bout : vitrine, réservation en ligne et boutique avec paiement Stripe, cartes cadeaux PDF, programme de fidélité et back-office. Conception, développement, SEO, déploiement et exploitation en continu.
Estimation du prix au m² de l'immobilier français sur ~5,9 M d'annonces et 101 départements : RandomForest optimisé Optuna, enrichi de données socio-économiques INSEE, interprétabilité SHAP et démo Streamlit. Data leakage identifié et corrigé.
Application de coaching sportif : 6 services NestJS dont une API Gateway (auth, coaching, spots, chat, notifications), base PostgreSQL/Prisma, app mobile React Native / Expo. Chat temps réel, géolocalisation, gamification, nutrition.
Site e-commerce de vente de plantes en monorepo conteneurisé : catalogue, panier, tunnel de commande, paiement Stripe, auth/RBAC, documentation Swagger, tests unitaires/e2e et tests de charge. Contributeur principal d'une équipe.
Orchestrateur personnel d'agents autonomes, qui tourne en continu sur ma machine Linux : environ 150 agents Python, un planificateur piloté par un simple fichier markdown, une mémoire vectorielle avec rappel hybride, et un banc de mesure qui a écarté cinq pistes RAG pourtant séduisantes sur le papier. Mon terrain d'expérimentation de l'IA agentique, en partie open source.
Ce que je fais le plus souvent : relier des systèmes qui n'ont pas été conçus pour se parler, et automatiser ce qui prend du temps. Chaque carte montre comment ça marche, avec un exemple fictif : aucune donnée réelle n'est exposée.
EBP n'a pas d'API publique. L'application écrit dans l'ERP en générant des fichiers d'import au format strict, déclenche l'import via un petit service installé sur le poste EBP, puis relit le résultat. Dans l'autre sens, elle ne récupère que ce qui a changé. Rien n'est écrasé à l'aveugle, et tout échec repart dans une file de reprise.
Le journal d'appels du standard est recopié dans l'application. Un appel compte souvent plusieurs segments (transfert, groupe, messagerie) : ils sont regroupés à la lecture. Les enregistrements sont transcrits en local, sans coût d'API, puis résumés par une IA qui peut proposer un ticket prêt à créer. Le piège : une messagerie qui décroche n'est pas un appel pris, et les statistiques sont fausses tant qu'on ne le modélise pas.
Un connecteur avec l'outil de supervision et de ticketing : création d'un ticket depuis un appel, saisie du temps et ajout de notes, avec les bons droits. Les tickets passés les plus proches sont retrouvés par similarité (embeddings), et des synthèses sont adaptées au rôle (technicien, commercial, direction). Détail utile : une file n'est pas un champ mais une vue sur des tags, donc un mauvais tag crée un ticket invisible, sans erreur. Je relis donc après chaque écriture.
Les données de l'ERP sont copiées puis nettoyées par couches (brut, propre, indicateurs) dans PostgreSQL. Dessus : scores de santé client, détection d'anomalies de facturation, prévision du chiffre d'affaires, et un modèle qui estime le risque de dépassement de budget d'un chantier (R² 0,88). Le modèle est servi par un service séparé, avec les facteurs d'explication visibles.
Une borne (tablette Windows 5G, lecteur de badge, caméra pour un QR code) qui continue de fonctionner sans internet : les pointages sont stockés puis envoyés, avec correction de l'horloge. Un pointage n'est jamais modifié : toute correction exige un motif, et les journées sont recalculées, jamais saisies. Alertes sur les seuils légaux, administration des badges, tableau de bord. Pas de photo ni de biométrie. Conçu avec le client, en cours de développement.
Un agent de messagerie classe quatre boîtes mail, prépare des brouillons de réponse et envoie un compte rendu deux fois par jour. Ses garde-fous comptent plus que ses fonctions : il n'envoie rien, ne supprime rien, laisse en boîte de réception ce dont il doute, et n'apprend que des corrections de sa propriétaire, jamais d'une phrase glissée dans un courrier reçu. Dans la même veine : des campagnes WhatsApp et SMS conçues pour exiger un consentement opposable avant tout envoi.
Pilotage technique de bout en bout des applications métier internes et clients : architecture, choix techniques, processus et mise en production, en grande autonomie — d'abord en alternance, aujourd'hui en CDI. Également intégrateur et formateur sur les logiciels EBP, avec le support de plus de 200 clients.
Formation en alternance : machine learning, MLOps, mise en production de modèles. Titre RNCP38587 (bac+5).
Titre professionnel de niveau Bac+3/4, orienté conception et architecture logicielle.
Socle full-stack JavaScript : le point de départ d'une montée en compétence continue.
Basé en Haute-Savoie (74). Un projet, une idée, une question ? Ma boîte mail est ouverte.