Master Informatique — Parcours STL
Formation en ingénierie logicielle adossée au LIP6, l'un des plus grands laboratoires d'informatique universitaires associés au CNRS. Le cursus forme des ingénieurs capables de raisonner formellement sur le logiciel, de concevoir des systèmes complexes et de comprendre ce qui se passe sous les abstractions — théorie des langages, algorithmique avancée, systèmes distribués, génie logiciel. Chaque module se concrétise par un projet substantiel codé et documenté.
Ce qui a été maîtrisé
Théorie des langages et compilation — implémentation complète d'un langage en 4 niveaux successifs (ILP1→ILP4) : noyau fonctionnel, boucles, exceptions, classes et objets. Analyseur ANTLR4, interprète Java, compilateur Java→C. Prolongé par un évaluateur-typeur pour le lambda-calcul en Scala (alpha-conversion, inférence de types par unification, polymorphisme) et la compilation de closures vers machines virtuelles.
Algorithmique avancée — ROBDD (Diagrammes de Décision Binaires réduits et ordonnés), clone partiel d'egrep avec pipeline NDFA→DFA→mDFA (Aho-Ullman et KMP), complexité paramétrée via k-Vertex Cover : kernelization, décomposition en couronne, branch-and-reduce, speedup jusqu'à 5 000× démontré sur graphes denses.
Programmation concurrente et systèmes distribués — réseau de capteurs BCM4Java, modèles mémoire partagée, Go-routines, Lustre/Esterel, model-checking SPIN. Moteur de recherche LIBSEARCH sur 1 800 livres Gutenberg en Scala/Play + Vue.js : indexation O(1), Jaccard, closeness centrality. Noyau de langage impératif en OCaml/Prolog (APS0→APS2).
Génie logiciel et sûreté applicative — modernisation d'un système legacy PHP (+440% perf, élimination injections SQL), plateforme TalenSwipe en équipe de 6 (Next.js / Spring Boot / Docker / Agile), cartes à collectionner décentralisées sur Ethereum (ERC-721, Solidity, MetaMask), analyse de 82 466 inspections NYC avec Elasticsearch et Kibana.
Projet de recherche PSTL au LIP6 — immersion en laboratoire : rétro-ingénierie du générateur DataGen, benchmark sur 6 099 instances JSON Schema issues de 6 datasets réels, caractérisation formelle des limites des générateurs optimistes. Rapport en continuité des publications de l'équipe BD (EDBT 2021, arXiv 2021-2022).
Stack maîtrisée
Projets
- LIBSEARCH — Moteur de recherche bibliothèque numériquenov. 2024 – fév. 2025
Moteur complet sur 1 800 livres Gutenberg (18M+ mots). Recherche par mots-clés, regex et KMP, indexation O(1), pipeline NFA→DFA→mDFA, similarité Jaccard, closeness centrality. Recherches sub-seconde.
- k-Vertex Cover & Complexité Paramétréejan. – fév. 2025
Kernelization, décomposition en couronne, noyau polynomial 3k, algorithme branch-and-reduce VCB. Speedup démontré jusqu'à 5 000× sur graphes denses, évalué sur instances aléatoires G(n,p).
- TalenSwipe — Plateforme matching alternanceoct. – nov. 2024
Application full-stack en équipe de 6. Matching bidirectionnel, authentification JWT, messagerie intégrée, Docker. Gestion de projet Agile/Scrum avec Jira.
- Modernisation système de gestion des vœux M1nov. 2024 – fév. 2025
Migration PHP legacy → PDO avec requêtes préparées. Élimination complète des vulnérabilités SQL injection. Gain de performance +440% validé par tests de charge Siege.
- Évaluateur-Typeur Lambda-Calculoct. – nov. 2024
Alpha-conversion, substitution, inférence de types par unification, polymorphisme faible. Compilation avancée de closures et d'exceptions vers machines virtuelles.
NFTs ERC-721 sur blockchain Ethereum. Smart contracts Solidity, interface React/MetaMask, optimisation gas avec OpenZeppelin.
- Clone egrep — Automates NFA→DFA→mDFAsept. – oct. 2024
Pipeline complet : regex → arbres syntaxiques → NDFA → DFA → minimisation (Aho-Ullman, Rabin-Scott, Brzozowski). Algorithme KMP pour les motifs exacts. Validation sur corpus Gutenberg.
11 requêtes DSL complexes sur 82 466 inspections. Analyse géospatiale, agrégations temporelles, dashboard opérationnel. Mapping optimisé pour l'analyse temps réel.
- Réseau de capteurs distribué BCM4Javajan. – mai 2024
Système de supervision distribué pour alertes environnementales (détection de feux). Architecture à base de composants BCM4Java, gestion de la concurrence et décentralisation.
- Noyau de langage impératif APS0→APS2jan. – mai 2024
Langage fonctionnel puis impératif : affectation, structures de contrôle, passage par valeur/référence, gestion des tableaux, mémoire dynamique.
- Langage ILP1→ILP4sept. – déc. 2022
Conception et implémentation d'un langage en 4 niveaux successifs : noyau fonctionnel → boucles → exceptions → classes et objets. Analyseur ANTLR4, interprète Java, compilateur Java→C, bibliothèque d'exécution C.
- ROBDD — Diagrammes de Décision Binairesoct. – déc. 2022
Génération, réduction, ordonnancement de ROBDD. Comparaison expérimentale rigoureuse avec l'article Newton & Verna.
- PSTL / Stage de recherche au LIP6juin – août 2023
Rétro-ingénierie du générateur DataGen. Benchmark sur 6 099 instances JSON Schema issues de 6 datasets réels (Snowplow, Kubernetes, GitHub, WashingtonPost…). Caractérisation formelle des limites des générateurs optimistes. Rapport en continuité des publications de l'équipe BD (EDBT 2021).