fr
fr
developer avatar
William Maillard
Not open to job opportunities
DevOps
Saint-Étienne
Permanent contract
Hybrid remote
Technologies
About
William Maillard
Master informatique - 🔎CDI dev / devops
DevOpsSaint-Étienne
developer avatar
Description

mes projets : https://william-maillard.github.io/portfolio/

Professional experiences
Stage – Ingénieur en Qualité Logicielle et DevOps
Expleo - ToulouseFeb 2024 - Jul 2024 · 5 months

L’objectif de ce stage est d’une part d’établir des règles de codage et de formatage de code et de configurer des outils d’analyse de code source en conséquent et d’autre part de mettre en place des processus DevOps permettant d’automatiser la génération des rapports de qualité logicielle, de rapports de tests, de la documentation, ainsi que la création et le déploiement du software.

**Compétences : **

GitLab · Linux · Conteneurisation · Jenkins · Git · Produits Docker · Sonarqube · développement logiciel embarqué

Stage - ingénieur intégrateur logiciel
Actemium - Saint-ÉtienneApr 2023 - Aug 2023 · 4 months

Projet :

Actemium est une entreprise du groupe Vinci spécialisée dans l’intégration de solutions logicielles, développées par l’entreprise ou tierce, et l’automatisation dans le domaine du process industriel.
Le projet s’est déroulé dans le cadre du développement d’une architecture système pour un projet de R&D, dans le domaine de l’industrie 4.0, ayant pour objectif de modulariser la supervision de la production d’une Gigafactory pour faciliter sa mise à l’échelle.

** Descriptif : **

L’objectif de ce stage était de réaliser une preuve de concept de l’architecture système développée dans le cadre du projet.

J’ai donc réalisé des benchmarks de logiciels à utiliser pour l’implémentation de chaque composant de l’architecture, en les configurant via docker et utilisant comme base logicielle des VM.

Environnement Technique :

Linux, VMWare, Docker/docker compose, git/Microsoft Azure, python

Schools
5 years of higher education
Université Jean Monnet - Saint Etienne
master - Données et systèmes connectés2024
Projects
Documents et données structurées
janv. 2024

🎯 Introduction - Description du Projet:
Objectifs :
Extraire des données des feuilles de temps d'une entreprise au format .ods.
Stockage des données extraites dans une base de données, schéma entités-association fourni en annexe1.
L'application permettra des requêtes paramétrables sur les employés et les projets en cours.

ℹ️ Informations du Document - Données Métiers:

Informations sur les employés : nom, prénom, contact, poste, horaires, projet(s), coût horaire.
Informations sur les projets en cours : estimation en temps, nombre de personnes assignées, type de poste, coûts, clients.

📊 Données à Stocker:

Affectation des employés aux projets, avancement, heures supplémentaires, état des tâches.
Extraction des données à l'aide de mots-clés contenus dans les en-têtes du tableur.

🔍 Informations Consultables:

Sur un projet : coût total, personnes mobilisées, heures passées, taux d'avancement, etc.
Sur un employé : nombre d'heures, heures supplémentaires, tâches terminées, projets, congés, etc.

📋 Liste des Tâches à Réaliser:

Extraction de données, génération de feuilles de temps, programme d'extraction de données.
Réalisation d'une application métier avec création de messages XML conformes à des DTD.

💻 Implémentations:

Site web static avec formulaires (un pour chaque type de message) pour l'application métier.
Utilisation de JavaScript (notamment Node.js) pour la lecture des fichiers .ods et l'extraction des données.
Interaction avec la base de données : choix entre JAVA-JPA-SQL et Node.js-MySQL.

Recherche d'information XML
janv. 2024
🎯 Objectif:

L'objectif de ce projet est de mettre en œuvre un moteur de recherche pour des documents XML appartenant à la collection INEX 2008. Le flux de travail du projet est le suivant :

 Prétraitement des documents XML
 Indexation des documents avec une liste de postes
 Interrogation de l'index avec différentes fonctions de pondération.🎯 Objectif: L'objectif de ce projet est de mettre en œuvre un moteur de recherche pour des documents XML appartenant à la collection INEX 2008. Le flux de travail du projet est le suivant : Prétraitement des documents XML Indexation des documents avec une liste de postes Interrogation de l'index avec différentes fonctions de pondération.

Compétences : python · XML
🍽️ Sémantique web - Foodies
déc. 2023

📝 Introduction :

Ce projet vise à collecter des informations sur les restaurants en scrapant les pages web du domaine 'coop-cycle.org'. Ces données sont ensuite exposées dans une base de données de triplets. Des validations par rapport à un graphe de validation SHACL garantissent la cohérence de la base de données. La base de données est utilisée dans notre application pour fournir des informations sur les restaurants en fonction des filtres définis par l'utilisateur à l'aide de requêtes SPARQL. Ces filtres représentent les préférences de l'utilisateur et peuvent être sauvegardés dans la base de données sous forme de graphe Turtle.

🚀 Déploiement :
 BDD fuseki via docker et interface utilisateur Web Flask via gunicorn, sur heroku

🛠️ Technologies Utilisées :

 Scraping Web: 🕸️
 Base de Données de Triplets RDF: 🗃️
 Requêtes SPARQL: 🔍
 Validation SHACL: 🛡️
 Framework Web Flask: 🌐
 Docker: 🐳
 Actions GitHub: ⚙️📝 Introduction : Ce projet vise à collecter des informations sur les restaurants en scrapant les pages web du domaine 'coop-cycle.org'. Ces données sont ensuite exposées dans une base de données de triplets. Des validations par rapport à un graphe de validation SHACL garantissent la cohérence de la base de données. La base de données est utilisée dans notre application pour fournir des informations sur les restaurants en fonction des filtres définis par l'utilisateur à l'aide de requêtes SPARQL. Ces filtres représentent les préférences de l'utilisateur et peuvent être sauvegardés dans la base de données sous forme de graphe Turtle. 🚀 Déploiement : BDD fuseki via docker et interface utilisateur Web Flask via gunicorn, sur heroku 🛠️ Technologies Utilisées : Scraping Web: 🕸️ Base de Données de Triplets RDF: 🗃️ Requêtes SPARQL: 🔍 Validation SHACL: 🛡️ Framework Web Flask: 🌐 Docker: 🐳 Actions GitHub: ⚙️

Compétences : Flask · Resource Description Framework · Extraction de contenu web · Beautiful Soup
🔒 algorithmes OTP
déc. 2023
🎯 Objectifs : Étudier le fonctionnement des algorithmes OTP (One-Time Password) dans le cadre d'un cours de cryptographie.

Fonctionnalités :

 🔑 Gestion des seeds aléatoires des algorithmes.
 🔒 Génération des TOTP (Time-Based One-Time Password) et HOTP (HMAC-Based One-Time Password).
 📱 Intégration avec une application authenticator (testé avec freeOTP sur Android).🎯 Objectifs : Étudier le fonctionnement des algorithmes OTP (One-Time Password) dans le cadre d'un cours de cryptographie. Fonctionnalités : 🔑 Gestion des seeds aléatoires des algorithmes. 🔒 Génération des TOTP (Time-Based One-Time Password) et HOTP (HMAC-Based One-Time Password). 📱 Intégration avec une application authenticator (testé avec freeOTP sur Android).

Compétences : Cryptographie · Python (langage de programmation)
Deep Learning - Text translation
nov. 2023
Étude de différents modèles de deeplearning pour la traduction de texte.
Création de modèles avec des transformers
Fine tune de modèles existants (bert, gpt2)Étude de différents modèles de deeplearning pour la traduction de texte. Création de modèles avec des transformers Fine tune de modèles existants (bert, gpt2)

Compétences : Deep learning · Modèles Transformers
Openairbnb
déc. 2022

🖥️ Développement Web:
🔄 Back-end : Java avec le framework Spring.
🌐 Front-end : Moteur de template Java Thymeleaf + Vue.js.

🔧 Fonctionnalités:

💾 Conception et gestion des informations de comptes dans une base de données MySQL avec JPA.
🛠️ Génération de données de tests réalistes avec JavaFaker.
👥 Gestion de différents niveaux d'utilisateurs.
🏡 Gestion d'annonces et de listes de favoris.

🚀 Déploiement Automatisé:

🌐 Sur Heroku avec GitHub Workflow.

Compétences : Java · Spring Boot · API REST · JavaScript · Vue.js · DevOps · ORM · JPA · Spring Security
🤖 Reconnaissance de chiffres manuscrits
nov. 2022
entraîner et fine tune un modèle d'apprentissage profond pour reconnaître des chiffres à partir d'images de chiffres écrits à la main.entraîner et fine tune un modèle d'apprentissage profond pour reconnaître des chiffres à partir d'images de chiffres écrits à la main.

Compétences : Intelligence artificielle (IA) · Deep learning · PyTorchCompétences : Intelligence artificielle (IA) · Deep learning · PyTorch
🚆 AlpesTransport
juin 2022
🔍 Objectif:

 🎯 Représentation RDF des données (sujet, prédicat, objet).
 💼 Conception d'une base de données au format RDF.
 🔄 Création de programmes médiateurs entre sources de données au format RDF.

🛠️ Outils Utilisés:

 📚 Wikibase pour la gestion des données structurées.
 🐍 Python Flask pour le développement de l'API web.
 🦄 Serveur Unicorn pour le déploiement de l'application.
 📊 Conception de diagrammes UML pour la modélisation du système.

📝 Gestion de Projet:

 📅 Organisation et planning dans Jira.
 🛠️ Utilisation de diagrammes UML pour la visualisation de l'architecture.

🚀 Déploiement de la démo sur Heroku, et utilisation de wikibasecloud pour stocker les données.🔍 Objectif: 🎯 Représentation RDF des données (sujet, prédicat, objet). 💼 Conception d'une base de données au format RDF. 🔄 Création de programmes médiateurs entre sources de données au format RDF. 🛠️ Outils Utilisés: 📚 Wikibase pour la gestion des données structurées. 🐍 Python Flask pour le développement de l'API web. 🦄 Serveur Unicorn pour le déploiement de l'application. 📊 Conception de diagrammes UML pour la modélisation du système. 📝 Gestion de Projet: 📅 Organisation et planning dans Jira. 🛠️ Utilisation de diagrammes UML pour la visualisation de l'architecture. 🚀 Déploiement de la démo sur Heroku, et utilisation de wikibasecloud pour stocker les données.

Compétences : wikibase · Resource Description Framework · Flask · Langage de modélisation unifié (UML)
⚔️ Wargame
mai 2022
🔍 Description:

 💻 Développement d'un jeu en Java avec la librairie graphique Swing.
 🌐 Portage sur le web avec CheerpJ, permettant l'exécution d'applications Java sur le web.

🎮 Fonctionnalités:

 🗺️ Éditeur de carte pour créer des environnements personnalisés.
 💾 Fonctionnalités de sauvegarde/chargement pour reprendre une partie ultérieurement.
 ⚔️ Jeu en tour, où chaque joueur peut soit déplacer une unité, soit attaquer.
 🎯 Affichage de la portée visuelle et des déplacements possibles des personnages.
 🤖 Algorithme d'IA pour déplacer les ennemis de manière autonome.

🌐 Portage Web:

 🖥️ Utilisation de CheerpJ pour porter le jeu sur le web et permettre une expérience jouable directement depuis un navigateur.🔍 Description: 💻 Développement d'un jeu en Java avec la librairie graphique Swing. 🌐 Portage sur le web avec CheerpJ, permettant l'exécution d'applications Java sur le web. 🎮 Fonctionnalités: 🗺️ Éditeur de carte pour créer des environnements personnalisés. 💾 Fonctionnalités de sauvegarde/chargement pour reprendre une partie ultérieurement. ⚔️ Jeu en tour, où chaque joueur peut soit déplacer une unité, soit attaquer. 🎯 Affichage de la portée visuelle et des déplacements possibles des personnages. 🤖 Algorithme d'IA pour déplacer les ennemis de manière autonome. 🌐 Portage Web: 🖥️ Utilisation de CheerpJ pour porter le jeu sur le web et permettre une expérience jouable directement depuis un navigateur.

Compétences : Java · Langage de modélisation unifié (UML) · Java Swing · java · Intelligence artificielle (IA)
📄 Projet de Document Partagé en Java
mai 2022
📝 Introduction:

 Sujet : Création d'un document partagé en Java avec 1 serveur, 1 client lourd (Swing), et 1 client léger (JavaScript).

🖋️ Type de Document:

 Document texte pour une édition collaborative.

✨ Fonctionnalités:

 Authentification des Utilisateurs:
 🔒 Identification requise pour accéder au document partagé.

 Édition du Texte:
 ✏️ Choix de la taille, couleur et type de police.
 🖊️ Centrage du texte.
 💪 Mise en gras, en italique, ou soulignement.
 🖼️ Insertion d'images de dimension appropriée.

 Édition Collaborative:
 👥 Identification de l'utilisateur en cours d'édition par un surlignage distinctif.
 💬 Fonction de tchat volatile pour la communication entre les utilisateurs.

 Gestion de l'Historique:
 ⏪⏩ Actions Undo/Redo grâce à des classes CommandeXXX stockées dans une pile.

 Gestion des Droits d'Accès:
 🔐 Attribution de droits en lecture/écriture.
 👤 Assignation d'un propriétaire et d'un groupe (optionnel).
 📝 Ajout/suppression/modification d'accès à un document ou un groupe.

 Commentaires Persistants:
 💬 Possibilité d'ajouter des commentaires persistants associés à un passage de texte surligné.📝 Introduction: Sujet : Création d'un document partagé en Java avec 1 serveur, 1 client lourd (Swing), et 1 client léger (JavaScript). 🖋️ Type de Document: Document texte pour une édition collaborative. ✨ Fonctionnalités: Authentification des Utilisateurs: 🔒 Identification requise pour accéder au document partagé. Édition du Texte: ✏️ Choix de la taille, couleur et type de police. 🖊️ Centrage du texte. 💪 Mise en gras, en italique, ou soulignement. 🖼️ Insertion d'images de dimension appropriée. Édition Collaborative: 👥 Identification de l'utilisateur en cours d'édition par un surlignage distinctif. 💬 Fonction de tchat volatile pour la communication entre les utilisateurs. Gestion de l'Historique: ⏪⏩ Actions Undo/Redo grâce à des classes CommandeXXX stockées dans une pile. Gestion des Droits d'Accès: 🔐 Attribution de droits en lecture/écriture. 👤 Assignation d'un propriétaire et d'un groupe (optionnel). 📝 Ajout/suppression/modification d'accès à un document ou un groupe. Commentaires Persistants: 💬 Possibilité d'ajouter des commentaires persistants associés à un passage de texte surligné.

Compétences : Java · Servlets
E-commerce revisite
févr. 2022
🎯 Objectifs:

 Proposer aux entreprises de modéliser en 3D leur(s) magasin(s) pour offrir une expérience immersive en ligne.
 Créer des modèles de magasins pour les entreprises et les explorer en réalité virtuelle pour les clients.

📋 Phases du Projet:

 📝Conception:
 Conception générale.
 Manuel utilisateur.
 Spécification des exigences.
 Tests d'intégration.
 Tests de recettes.

 🛠️Implémentation:
 Développement de l'application sous Unreal Engine 5.
 Création de magasins et visites virtuelles.
 Utilisation de meta-humain pour les personnages

🛠️ Technologies Utilisées:

 Unreal Engine 5 pour le développement de l'application.
 Neo4j pour la base de données des produits.
 Utilisation de la librairie JavaFaker pour la génération des produits.

🌐 Fonctionnalités:

 Création de modèles de magasins en 3D.
 Exploration immersive des magasins en réalité virtuelle.
 Stockage des produits dans une base de données Neo4j.
 Génération de produits à partir de JavaFaker.🎯 Objectifs: Proposer aux entreprises de modéliser en 3D leur(s) magasin(s) pour offrir une expérience immersive en ligne. Créer des modèles de magasins pour les entreprises et les explorer en réalité virtuelle pour les clients. 📋 Phases du Projet: 📝Conception: Conception générale. Manuel utilisateur. Spécification des exigences. Tests d'intégration. Tests de recettes. 🛠️Implémentation: Développement de l'application sous Unreal Engine 5. Création de magasins et visites virtuelles. Utilisation de meta-humain pour les personnages 🛠️ Technologies Utilisées: Unreal Engine 5 pour le développement de l'application. Neo4j pour la base de données des produits. Utilisation de la librairie JavaFaker pour la génération des produits. 🌐 Fonctionnalités: Création de modèles de magasins en 3D. Exploration immersive des magasins en réalité virtuelle. Stockage des produits dans une base de données Neo4j. Génération de produits à partir de JavaFaker.

Compétences : Neo4j · Unreal Engine · C++ · Blueprint
Informatique graphique
févr. 2022
Gestion d'un grand nombre d'éléments (variables) dans un environnement 3D à l'aide d'un octree.
Développement en C d'une interface 3D sans libraire graphique, seulement à partir d'une fonction d’allumage d'un pixel.Gestion d'un grand nombre d'éléments (variables) dans un environnement 3D à l'aide d'un octree. Développement en C d'une interface 3D sans libraire graphique, seulement à partir d'une fonction dallumage d'un pixel.

Compétences : C (langage de programmation)
🎮Free-Steal: Battle Royale Massivement Multijoueur sur un Écran
févr. 2022
📝 Sujet:

 Réalisation d'un jeu vidéo pour être joué dans un cinéma par l'ensemble des personnes présentes.
 Matériel à disposition : écran du cinéma, un PC avec Ubuntu, un routeur, les mobiles des personnes présentes.

🎮 Jeu Choisi: RPG à la 3° Personne:

 Vue du dessus avec une perspective inclinée.
 Joué par équipe de 3 joueurs.
 Objectif : être la première équipe à récolter un certain nombre de fragments.

🌍 Description:

 La carte de jeu est projetée sur l'écran du cinéma.
 Chaque joueur contrôle un personnage via une application web sur son téléphone.
 L'application web affiche :
 Plan de la carte pour repérer le personnage et les coéquipiers, ainsi que l'emplacement des fragments.
 Nombre de fragments collectés par l'équipe.
 Inventaire des objets collectés.
 Aide pour les contrôles et l'utilisation des objets.

💥 Mécanique de Jeu:

 La mort d'un joueur fait perdre 1/3 des fragments de son équipe.
 La moitié de ces fragments est relâchée là où le joueur est mort.
 Les fragments relâchés disparaissent après 5 secondes.
 Le joueur réapparaît à un emplacement aléatoire sur la carte après 5 à 10 secondes.

🛠️ Technologies Utilisées:

 Serveur de jeu : Java, websocket.
 Manette de jeu : JavaScript.
 Gestionnaire de sources et dashboard : GitLab.
 Documentation : Markdown, Javadoc, diagramme UML.📝 Sujet: Réalisation d'un jeu vidéo pour être joué dans un cinéma par l'ensemble des personnes présentes. Matériel à disposition : écran du cinéma, un PC avec Ubuntu, un routeur, les mobiles des personnes présentes. 🎮 Jeu Choisi: RPG à la 3° Personne: Vue du dessus avec une perspective inclinée. Joué par équipe de 3 joueurs. Objectif : être la première équipe à récolter un certain nombre de fragments. 🌍 Description: La carte de jeu est projetée sur l'écran du cinéma. Chaque joueur contrôle un personnage via une application web sur son téléphone. L'application web affiche : Plan de la carte pour repérer le personnage et les coéquipiers, ainsi que l'emplacement des fragments. Nombre de fragments collectés par l'équipe. Inventaire des objets collectés. Aide pour les contrôles et l'utilisation des objets. 💥 Mécanique de Jeu: La mort d'un joueur fait perdre 1/3 des fragments de son équipe. La moitié de ces fragments est relâchée là où le joueur est mort. Les fragments relâchés disparaissent après 5 secondes. Le joueur réapparaît à un emplacement aléatoire sur la carte après 5 à 10 secondes. 🛠️ Technologies Utilisées: Serveur de jeu : Java, websocket. Manette de jeu : JavaScript. Gestionnaire de sources et dashboard : GitLab. Documentation : Markdown, Javadoc, diagramme UML.

Compétences : Java · WebSocket · JavaScript
Compilateur et VM Cpyrr
déc. 2021

🛠️ Développement en C, analyseurs LEX/YACC, UI en WebAssembly/JS, et workflow GitHub.

🎯 Objectifs du Projet:

🚩 Compréhension des différentes étapes de la compilation : lexicale avec LEX, syntaxique avec YACC, et sémantique en C.
🌳 Représentation intermédiaire d'un code source sous forme d'arbre d'exécution.
💻 Machine virtuelle pour exécuter cette représentation.
🌐 Compilation en WebAssembly avec Emscripten et Docker.
🤖 Automatisation du déploiement sur GitHub Pages.

Compétences : C (langage de programmation) · Lex&yacc · GitHub · DevOps · docker · wasm · JavaScript

HMM sentiment analysis
déc. 2021
Travail pratique sur l'apprentissage automatique avec scikit-learn basé sur les séances pratiques du cours, suivi d'un projet sur l'analyse de sentiment utilisant un modèle de Markov caché. Ci-joint un lien vers un environnement d'exécution pour le cahier Jupyter (Binder) lié au dépôt GitLab.Travail pratique sur l'apprentissage automatique avec scikit-learn basé sur les séances pratiques du cours, suivi d'un projet sur l'analyse de sentiment utilisant un modèle de Markov caché. Ci-joint un lien vers un environnement d'exécution pour le cahier Jupyter (Binder) lié au dépôt GitLab.

Compétences : Algorithmes d’apprentissage automatique · Intelligence artificielle (IA) · Python (langage de programmation)
🎒Knapsack Problem 0/1
déc. 2021
🔍 Objectif:

 🎯 Le projet vise à programmer plusieurs algorithmes pour résoudre le Problème du Sac à Dos 0/1 et à réaliser une étude sur leur temps d'exécution et la qualité de leur solution.
 💡 Développement d'algorithmes pour la résolution d'un problème NP-complet.

🔧 Implémentation:

 🛠️ Développement d'algorithmes dynamiques, gloutons, et d'évolution (génétiques et de fourmis).
 📊 Division du problème étudié en sous-catégories, avec un générateur de problèmes pour chaque cas.
 🔄 Script bash d'automatisation de l'exécution des algorithmes et de traçage de courbes.🔍 Objectif: 🎯 Le projet vise à programmer plusieurs algorithmes pour résoudre le Problème du Sac à Dos 0/1 et à réaliser une étude sur leur temps d'exécution et la qualité de leur solution. 💡 Développement d'algorithmes pour la résolution d'un problème NP-complet. 🔧 Implémentation: 🛠️ Développement d'algorithmes dynamiques, gloutons, et d'évolution (génétiques et de fourmis). 📊 Division du problème étudié en sous-catégories, avec un générateur de problèmes pour chaque cas. 🔄 Script bash d'automatisation de l'exécution des algorithmes et de traçage de courbes.

Compétences : Python (langage de programmation) · Bash · LaTeX · Conception d'algorithmes
🚗 Programmation système
nov. 2021
🚗 Simulation de Garage Automobile

🔍 Objectif:

 🎯 Simulation du fonctionnement d'un garage automobile en utilisant des processus pour représenter différents métiers : client, commercial, ouvriers.
 💼 Gestion des ressources telles que les outils, stockées dans un segment de mémoire partagée, avec un contrôle d'accès via des sémaphores.
 📡 Utilisation de signaux pour la communication inter-processus.

🛠️ Implémentation:

 🔄 Utilisation de processus pour modéliser les différents rôles au sein du garage.
 📦 Gestion des ressources via un segment de mémoire partagée et des sémaphores pour garantir un accès sécurisé.
 📶 Utilisation de signaux pour la communication entre les processus et la synchronisation des opérations.🚗 Simulation de Garage Automobile 🔍 Objectif: 🎯 Simulation du fonctionnement d'un garage automobile en utilisant des processus pour représenter différents métiers : client, commercial, ouvriers. 💼 Gestion des ressources telles que les outils, stockées dans un segment de mémoire partagée, avec un contrôle d'accès via des sémaphores. 📡 Utilisation de signaux pour la communication inter-processus. 🛠️ Implémentation: 🔄 Utilisation de processus pour modéliser les différents rôles au sein du garage. 📦 Gestion des ressources via un segment de mémoire partagée et des sémaphores pour garantir un accès sécurisé. 📶 Utilisation de signaux pour la communication entre les processus et la synchronisation des opérations.

Compétences : C (langage de programmation)
🔍 Graph Theory Implementation
juin 2021
📚 Objectifs :

 🎯 Implémentation des algorithmes couverts dans le cours de Théorie des Graphes.
 💡 Les algorithmes incluent : le Tri Topologique, la Recherche en Profondeur et en Largeur, la Longueur de Chemin Minimum, l'Arbre Couvrant Minimum (Prim et Kruskal), et le Chemin de Poids Minimum (Dijkstra).

🔧 Implémentation :

 🛠️ Implémentation de différents algorithmes de graphes en langage C.
 📊 Utilisation de structures de données et d'algorithmes en C pour résoudre efficacement les problèmes de graphes.

📈 Fonctionnalités :

 📋 Tri Topologique pour les graphes orientés acycliques.
 🔍 Recherche en Profondeur et en Largeur pour le parcours.
 🛤️ Algorithmes de Longueur de Chemin Minimum comme celui de Dijkstra pour trouver le plus court chemin.
 🌉 Algorithmes d'Arbre Couvrant Minimum (Prim et Kruskal) pour trouver l'arbre couvrant minimum.
 ⚖️ Algorithmes de Chemin de Poids Minimum pour trouver le chemin avec le poids minimum.

🔬 Analyse :

 📊 Analyse de la performance et de l'efficacité de chaque algorithme implémenté en C.
 📉 Comparaison des résultats avec les attentes théoriques et les applications du monde réel.📚 Objectifs : 🎯 Implémentation des algorithmes couverts dans le cours de Théorie des Graphes. 💡 Les algorithmes incluent : le Tri Topologique, la Recherche en Profondeur et en Largeur, la Longueur de Chemin Minimum, l'Arbre Couvrant Minimum (Prim et Kruskal), et le Chemin de Poids Minimum (Dijkstra). 🔧 Implémentation : 🛠️ Implémentation de différents algorithmes de graphes en langage C. 📊 Utilisation de structures de données et d'algorithmes en C pour résoudre efficacement les problèmes de graphes. 📈 Fonctionnalités : 📋 Tri Topologique pour les graphes orientés acycliques. 🔍 Recherche en Profondeur et en Largeur pour le parcours. 🛤️ Algorithmes de Longueur de Chemin Minimum comme celui de Dijkstra pour trouver le plus court chemin. 🌉 Algorithmes d'Arbre Couvrant Minimum (Prim et Kruskal) pour trouver l'arbre couvrant minimum. ⚖️ Algorithmes de Chemin de Poids Minimum pour trouver le chemin avec le poids minimum. 🔬 Analyse : 📊 Analyse de la performance et de l'efficacité de chaque algorithme implémenté en C. 📉 Comparaison des résultats avec les attentes théoriques et les applications du monde réel.

Compétences : C (langage de programmation) · Bash
k plus proches voisins
mai 2021
🔧 Fonctionnalités:

 🛠️ Implémentation de l'algorithme des kPPV en utilisant des tableaux, puis des kd-trees en C.
 🧩 Interface de visualisation de l'algorithme en SDL.
 📊 Générateur de données pour créer des ensembles de données de test.
 💾 Sauvegarde et chargement des données pour une utilisation ultérieure.
 🎥 Animation du déroulement de l'algorithme dans le cas des kd-trees pour visualiser la prise de décision.🔧 Fonctionnalités: 🛠️ Implémentation de l'algorithme des kPPV en utilisant des tableaux, puis des kd-trees en C. 🧩 Interface de visualisation de l'algorithme en SDL. 📊 Générateur de données pour créer des ensembles de données de test. 💾 Sauvegarde et chargement des données pour une utilisation ultérieure. 🎥 Animation du déroulement de l'algorithme dans le cas des kd-trees pour visualiser la prise de décision.

Compétences : C (langage de programmation) · wasm · docker · Intelligence artificielle (IA)
Language formel
nov. 2020
🛠️ Développement en C.
💼 Création de structures d'automates en C.
🔄 Programme permettant de rendre un automate fini et déterministe.🛠️ Développement en C. 💼 Création de structures d'automates en C. 🔄 Programme permettant de rendre un automate fini et déterministe.

Compétences : C (langage de programmation)Compétences : C (langage de programmation)
🎮Bomberman
nov. 2020
🛠️ Développement: 

 🛠️ Développement en C avec la librairie graphique SDL. 
 💻 Compilation en WebAssembly avec Emscripten et Docker.
 🚀 Automatisation du déploiement sur GitHub Pages.

🕹️ Fonctionnalités:

 🏃 Déplacez votre personnage et éliminez tous les ennemis dans le temps imparti.
 ⏸️ Mettez le jeu en pause à tout moment et sauvegardez ou chargez vos parties.
 📦 Stockez les 10 meilleurs scores pour suivre les performances.🛠️ 

Compétences : C (langage de programmation) · wasm · DevOps · docker
🔍 Vérification de Parenthésage
nov. 2020
🛠️ Programmation en assembleur x86.
🔄 Création d'un programme pour vérifier le parenthésage d'une chaîne.
🔤 L'utilisateur peut définir les paires de parenthèses avec n'importe quel caractère au début du programme.🛠️ Programmation en assembleur x86. 🔄 Création d'un programme pour vérifier le parenthésage d'une chaîne. 🔤 L'utilisateur peut définir les paires de parenthèses avec n'importe quel caractère au début du programme.

Compétences : x86 Assembly · docker
Technologies
Skills
Interested by...dev, rust, kubernetes, plateforme cloud, cybersécurité
Languages
  • English
  • French
Tests
Spring - August 30, 2024Top 15% with a score of 2708 points
Git - August 14, 2024Top 22% with a score of 2640 points
Language C - Fundamentals - August 15, 2024Top 8% with a score of 2815 points
Docker - August 13, 2024Top 13% with a score of 2595 points
Kubernetes - August 14, 2024Top 23% with a score of 2546 points
Bootstrap - August 19, 2024Top 11% with a score of 2611 points
Gatling - August 16, 2024Top 18% with a score of 2697 points