Ingénieur Full-Stack / IA

Jordan
Serafini.

Je conçois, je livre, je mets en production.

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.

RÔLEFull-Stack & IA
BASÉ ÀHaute-Savoie (74)
EXP.2,5 ans
FORMATIONTitre IA — RNCP 7
01

À propos

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.

02

Stack technique

Backend

NestJSNode.js / ExpressPythonFastAPIMicroservicesAPI RESTOpenAPI / SwaggerJWT

Frontend

ReactNext.jsTypeScriptTailwindRadix / shadcnTanStack QueryZustand

Mobile

React NativeExpo (SDK 54)Offline-firstWatermelonDBExpo RouterNativeWind

Données

PostgreSQLMS SQL ServerRedispgvectorPL/pgSQLpandas / NumPyMatplotlib

IA / ML

scikit-learnCatBoost / XGBoostMLflowMLOpsLLM / RAGAgents · MCPStreamlit

DevOps

DockerLinuxCI/CDNginxGitTailscale
03

Projets marquants

/01
Pro · Full-Stack

Suite ERP terrain (EBP App)

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.

NestJS 11Next.jsReact NativeWatermelonDBPostgreSQLMSSQL
720endpoints API
/02
Pro · Data & ML

Plateforme data-driven

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).

NestJSFastAPICatBoost / XGBoostProphetMLflow
R²
0.88
modèle stacking
/03
Client · en production

Institut YUNA

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.

Next.js 15React 19Tailwind v4StripeResendSQLite
LIVEyuna-annecy.com ↗
/04
Formation IA · projet final

Compagnon Immo

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é.

Pythonscikit-learnOptunaSHAPStreamlit
R²
0.958
MAE 159 €/m²
/05
Microservices · mobile

SportPoint

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.

NestJSPrismaPostgreSQLExpoRedisDocker
6microservices
/06
Fin de formation · équipe

GreenRoot

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.

NestJS 11PrismaStripeNext.js 15Docker
Stripepaiement intégré
/07
R&D perso · IA agentique

AURA

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.

PythonSQLitesqlite-vecsystemdLinux
~150agents Python
04

Intégrations & automatisation

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.

/01
Pro · Intégration ERP

EBP : une synchro bidirectionnelle avec un ERP fermé

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.

  1. Action dans l'app
  2. Fichier d'import (CSV strict)
  3. Import par l'ERP
  4. Confirmation reçue
  5. Relecture ciblée
Exemple fictif, aucune donnée réelle
intervention INT-0142 · création → fichier généré
import ERP … ok · confirmation reçue en 3 s
client CLI-0087 · modification → import refusé, essai 2/6, nouvel essai dans 2 min
NestJSPostgreSQLSQL ServerCSVretry queue
/02
Pro · Téléphonie

3CX : du journal d'appels au ticket

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.

  1. Appel (plusieurs segments)
  2. Regroupement
  3. Transcription locale
  4. Résumé IA
  5. Suggestion de ticket
Exemple fictif, aucune donnée réelle
14:02 · entrant · 4 min 12 · décroché par un technicien
Résumé : l'imprimante réseau du bureau 2 est hors ligne depuis ce matin.
Suggestion : ticket « Imprimante hors ligne », file Technique
NestJSPostgreSQLfaster-whisperLLM
/03
Pro · Support

NinjaOne : tickets, temps et notes depuis l'application

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.

  1. Appel ou demande
  2. Ticket + tag de file
  3. Temps et notes
  4. Tickets similaires
  5. Synthèse par rôle
Exemple fictif, aucune donnée réelle
Nouveau ticket « Imprimante hors ligne » → file Technique
Relecture : le ticket apparaît bien dans la file ✓
3 tickets proches trouvés (similarité 0,91 · 0,87 · 0,84)
NestJSAPI RESTOAuthembeddings
/04
Pro · Analyse & ML

Les données de l'ERP : analyse et prédiction

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.

  1. ERP
  2. Brut
  3. Nettoyé
  4. Indicateurs
  5. Modèles
  6. Tableaux de bord
Exemple fictif, aucune donnée réelle
Chantier fictif A · risque de dépassement : 0,72 (élevé)
Facteurs : remises élevées, heures consommées au-delà du prévu, 2 retards
Anomalie : facture en double détectée sur un devis (score 0,94)
PostgreSQLCatBoostIsolation ForestProphetFastAPISHAP
/05
Client · en développement

Badgeuse et pointeuse pour un commerce

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.

  1. Badge ou QR
  2. Borne hors ligne
  3. File d'envoi
  4. Pointage immuable
  5. Journée recalculée
  6. Alertes
Exemple fictif, aucune donnée réelle
06:02 · badge arrivée (borne hors ligne, reçu à 08:15, horloge corrigée)
Correction : badge de départ oublié · motif obligatoire · journée : 7 h 45
Alerte : repos entre deux journées inférieur à 11 h
TypeScriptNestJSReactPostgreSQLoffline-first
/06
Client · automatisation IA

Agents IA du quotidien

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.

  1. Relevé des boîtes
  2. Classement (seuil de confiance)
  3. Brouillons
  4. Contre-vérification
  5. Compte rendu
Exemple fictif, aucune donnée réelle
Message 1 · facture fournisseur → rangé « Compta » (confiance 0,93)
Message 2 · confiance 0,41 → laissé en boîte de réception
Brouillon : « Bonjour, … [à confirmer : date de livraison] »
PythonIMAPLLMsystemd
05

Parcours

JANV. 2024 → AUJOURD'HUI

Développeur intégrateur · full-stack

SLI (Solution Logique) · CDI

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.

SEPT. 2025 → SEPT. 2026

Expert en ingénierie de l'IA — RNCP niveau 7

Parcours Machine Learning Engineer, Liora (ex-DataScientest) · certificat Mines Paris PSL Executive Education

Formation en alternance : machine learning, MLOps, mise en production de modèles. Titre RNCP38587 (bac+5).

2023

Concepteur Développeur d'Applications — RNCP 6

O'clock (en alternance)

Titre professionnel de niveau Bac+3/4, orienté conception et architecture logicielle.

2023

Formation développeur web / web mobile

O'clock

Socle full-stack JavaScript : le point de départ d'une montée en compétence continue.

EN CE MOMENT
Intégrations EBP, téléphonie, ML en production AURA — R&D continue, en partie open source Side projects — Arduino / C++ & divers
màj oct. 2026

Basé en Haute-Savoie (74). Un projet, une idée, une question ? Ma boîte mail est ouverte.