Pavé César, les gens qui ne liront pas te salut.
J’ai commencé par un BUT MMI à l’IUT de Rouen, avant d’intégrer le cycle ingénieur informatique à CESI. Entre les deux, j’ai rejoint R3mScore, d’abord en stage, puis en alternance, deux ans de Java et React en production, des fonctionnalités livrées, des intégrations IA, et une responsabilité qui grandit sur le système. À côté : EasySave, un moteur de sauvegarde distribué open source en C#/.NET avec exécution concurrente et architecture modulaire, et une application Next.js de vote pour un club de basket conçue pour tenir sous la charge.
Projets sélectionnés
Breezy
Réseau social type Twitter construit en monorepo Turborepo de six microservices Node.js/TypeScript, chacun avec sa propre base de données, derrière une gateway Nginx. gRPC pour les appels synchrones, RabbitMQ pour les événements, WebSocket pour la messagerie privée, SSE et Web Push pour les notifications. Observabilité complète avec Prometheus, Grafana, Loki et OpenTelemetry/Jaeger. Réalisé en quatre semaines à quatre pour le cours de Développement d'Application Distribuée du CESI.
Pathpipe
Outil de suivi de candidatures pensé pour les développeurs, en production. Vues kanban et tableau des candidatures, liste d'entreprises suivies, et un worker en arrière-plan qui scrape les pages carrières des entreprises suivies (JSON-LD, heuristiques HTML, repli navigateur headless) et envoie les nouvelles offres par email. Monorepo TypeScript : API NestJS comme unique source de vérité, frontend Next.js qui ne lui parle que via Server Actions, workers BullMQ indépendants sur Redis, PostgreSQL, images Docker construites sur GitHub Actions et déployées via Dokploy.
Résolveur TSP
Solveur Python pour le problème du voyageur de commerce avec contraintes réelles. Implémentation de 5 algorithmes métaheuristiques (plus proche voisin, colonies de fourmis, recherche tabou, algorithme génétique, recuit simulé) avec analyse comparative sur plus de 300 itérations par instance. Génération de graphes personnalisés avec noeuds interdits, contraintes de précédence et péages, validation statistique et visualisation incluses.
EasySave
Gestionnaire de jobs de sauvegarde en C# avec stratégies complètes et différentielles, exécution parallèle avec ordonnancement par priorité, et chiffrement AES-256 via un sous-processus authentifié par RSA. Deux interfaces partagent le même moteur : une GUI desktop cross-platform Avalonia et un TUI CLI. Logs agrégés via un serveur TCP Dockerisé, binaires publiés via GitHub Actions.
ALM Vote Manager
Application de vote MVP déployée pour le club de basket ALM Évreux : les spectateurs scannent un QR code en salle, s'inscrivent et votent depuis leur téléphone. Dashboard admin pour la gestion des matchs et joueurs, tallies en direct et affichage podium. PII chiffrées en AES-256, hébergé sur CleverCloud pour la conformité RGPD.
Infrastructure XANADU
Projet académique : architecture réseau complète conçue pour une entreprise fictive de 60 utilisateurs, implémentée à échelle réduite sur un serveur Proxmox. Couvre la segmentation VLAN, DMZ, liaison MPLS inter-sites, AD avec administration déléguée, politique de filtrage par défaut-deny, scripts PowerShell et politique de sauvegarde 3-2-1 visant un RTO de 4 heures.
Expériences
Apprenti ingénieur logiciel
Sep 2024 - Présent
Java/Spring et React sur une plateforme de sondages en production utilisée quotidiennement par des clients : services backend, frontend, fonctionnalités IA et outillage de build, livrés et maintenus en évolution continue.
- Conception et responsabilité de bout en bout d'un moteur d'import/export Word vers questionnaire, qui parse des .docx en enquêtes structurées (logique conditionnelle, boucles, questions adaptatives) et remplace 20 minutes à 3 heures de paramétrage manuel par enquête. Aucun concurrent ne le propose.
- Migration incrémentale d'un frontend de plus de 15 000 lignes de JavaScript vers TypeScript, sans gel des fonctionnalités ni régression en production, éliminant les erreurs runtime liées aux types.
- Construction d'une couche d'orchestration LLM maison en Java (clone allégé façon LangChain4j) au-dessus d'OpenAI et Mistral, permettant conversations en streaming, génération de questions de suivi et prompts multilingues avec validation JSON Schema.
- Temps de build frontend divisé par 10 (20 min → 2 min) en migrant le pipeline vers Vite, augmentant la fréquence de déploiement.
- Couverture de tests renforcée sur les fonctionnalités critiques avec des suites JUnit et Vitest, réduisant les incidents en production.
- Livraison de modules Java/Spring et React côté client, du besoin à la production ; mise en place de pipelines CI/CD et introduction de RabbitMQ pour le traitement asynchrone fiable entre services.
- POC de chatbot type WhatsApp avec sélection de persona, historique de conversation et upload de fichiers pour des démos d'analyse d'enquêtes assistée par IA.
Stagiaire ingénieur logiciel
Avr 2024 - Juin 2024
Contribution à l'outil de création de questionnaires côté backend et frontend en découvrant la base de code Java.
- Implémentation de pipelines d'import/export Word pour les questionnaires et traductions, renommage et validation automatiques des REF, et gestion plus sûre des quotas, pondérations et paramètres d'URL dans les exports de données.
- Conception et intégration d'une API RESTful pour améliorer les échanges inter-services, validée par des tests d'intégration.
- Introduction d'ESLint, ajout de tests unitaires et d'intégration sur les collecteurs et la logique de reporting, refactorisation de composants React et services Java legacy en modules clairs, typés et testés.
- Création d'outils IA internes pour organiser et analyser les réponses ouvertes des enquêtes, dont un éditeur de prompts.