Back-end
- PHP
- Symfony
- Node.js
- SQL
- API
- Sécurité & authentification (JWT, rôles)
- Tests & qualité (PHPUnit, clean code)
Je m’appelle Geoffrey Franz, développeur web avec une solide expérience sur des projets front et back. J’aime construire des applications claires, fiables et bien structurées, avec une attention particulière portée à l’expérience utilisateur et à la qualité du code.
Aujourd’hui, je fais évoluer mon parcours vers l’intelligence artificielle. Je me forme activement aux concepts et aux outils modernes de l’IA afin d’enrichir mon profil de développeur et d’apporter une dimension plus intelligente et automatisée aux projets que je construis.
Mon objectif est simple : combiner mes compétences web avec l’IA pour créer des solutions plus efficaces, plus utiles et plus ambitieuses.
Actuellement étudiant à EPITECH, je suis en recherche d’une alternance orientée IA, afin de me spécialiser et d’apprendre au contact de projets concrets. Je souhaite rejoindre une équipe où je peux progresser, contribuer, et monter en compétence sur les technologies d’intelligence artificielle.
Je suis motivé par les environnements où l’on peut expérimenter, comprendre les enjeux métier, et transformer des idées en outils réels. Je suis autonome, rigoureux, et à l’aise pour documenter, communiquer et travailler en équipe.
Si vous recherchez un profil sérieux, capable d’apprendre vite et de s’investir pleinement dans une alternance IA, je serais ravi d’échanger avec vous.
J’ai développé une plateforme complète permettant de gérer les candidatures des intervenants de la Fédération Européenne des Écoles. Ce projet s’inscrit au cœur du système d’information de la FEDE : il centralise les demandes, automatise les validations et crée les comptes intervenants directement dans Microsoft Entra (Azure AD), afin de permettre l’accès aux différentes applications internes.
Le système repose sur un formulaire multi‑étapes avancé, un workflow métier structuré, un audit log détaillé, une gestion fine des rôles et des permissions, ainsi qu’une intégration profonde avec les services Microsoft (Entra, SharePoint) et les services AWS déjà en place. Les documents (CV, pièces justificatives) sont automatiquement envoyés dans SharePoint, tandis que les comptes intervenants sont créés et configurés via l’API Entra.
Ce projet a été réalisé en autonomie quasi totale, en collaboration directe avec les équipes pédagogiques et administratives. J’ai conçu l’architecture, développé le front et le back, mis en place les intégrations cloud, sécurisé les endpoints, et déployé l’ensemble sur le VPS OVH via un environnement Docker. Le résultat est une application robuste, maintenable et utilisée quotidiennement pour gérer les intervenants du réseau FEDE.
J’ai développé un service complet de génération de documents PDF automatisés pour la Fédération Européenne des Écoles. L’objectif était de produire des documents complexes à partir de données métier, avec une mise en page dynamique, des sections conditionnelles, des tableaux, des fusions de pages et une pagination intelligente.
Le cœur du système repose sur une Lambda AWS écrite en Python, utilisant ReportLab pour la génération programmatique et PyPDF2 pour la fusion et la manipulation des pages. Le service récupère les données, construit le document, applique les règles métier, puis stocke le PDF final dans un bucket S3 via des URLs pré‑signées.
Ce projet m’a demandé d’apprendre rapidement un nouvel environnement technique, de comprendre un workflow métier complet et de livrer un outil fiable utilisé quotidiennement par les équipes internes. J’ai travaillé en autonomie guidée : accompagné lorsque nécessaire, mais responsable de l’analyse et de l’implémentation du service, ainsi que de son intégration avec l’intranet existant.
Le résultat est un service robuste, maintenable et automatisé, qui a permis de réduire significativement le temps de production documentaire tout en améliorant la qualité et la cohérence des documents générés.
Ce projet permet aux écoles partenaires de soumettre des demandes d’équivalences afin d’inscrire un étudiant directement à un certain niveau, à condition qu’il fournisse les justificatifs nécessaires (diplôme équivalent, expérience professionnelle, certifications, etc.). Le système applique un ensemble de règles métier structurées pour garantir une décision cohérente, fiable et standardisée.
L’interface est développée en React avec une logique orientée composant : formulaires dynamiques, validation en temps réel, gestion des états, upload des fichiers, messages d’erreur contextualisés et sélection de la langue. L’ensemble du parcours est entièrement multilingue grâce à une couche i18n (FR/EN) qui gère la traduction des labels, des messages métier et des retours d’erreur.
Le frontend communique avec une API interne en Node.js qui contient le moteur d’équivalences, la gestion des règles métier, les contrôles d’intégrité, la création des sessions Stripe, le traitement du webhook et l’envoi automatique des emails. Les pièces justificatives sont stockées dans AWS S3 et toutes les opérations critiques sont monitorées via CloudWatch.
Le workflow complet : sélection du pays et du niveau → remplissage du formulaire → upload des pièces justificatives → validation → création de la session Stripe → paiement → webhook Stripe → génération du résultat → envoi automatique des emails (école + FEDE) avec les pièces jointes stockées dans S3.
Entrées → poids → somme → activation. C’est l’unité de base du réseau.
Paramètres appris par le modèle. Les poids contrôlent l’influence, le biais décale la sortie.
ReLU utilisée pour introduire de la non-linéarité et stabiliser l’apprentissage.
Calcul de la prédiction du réseau avant comparaison à la vérité terrain.
Mécanisme d’ajustement des poids basé sur le gradient de la fonction de perte.
Mesure de l’erreur du modèle (MSE, Cross-Entropy selon la tâche).
Algorithmes comme SGD ou Adam pour mettre à jour les poids efficacement.
Réseau composé de couches fully connected (Dense), nombre de couches et de neurones par couche.
Construire un réseau fully connected avec plusieurs couches denses et ReLU entre chaque couche.
Mettre en place une boucle d’entraînement complète : forward, perte, backpropagation, optimisation.
Entraîner ce MLP sur un dataset simple (ex : classification MNIST ou binaire) et analyser les résultats.