
Soufiane FHIYIL
Développeur Java Angular | GenAI
1 recommandation
Salaire / Taux journalier
1 personne recommande
78300 Poissy, France
Freelance
Peut venir sur site
Expertises
Langues
À propos
Introduction
Développeur Full Stack Sénior avec 6 ans d’expérience, j’ai accompagné des clients tels qu’Orange Bank, la Fédération Française de Football, Agorapulse et Cegid dans le développement de solutions robustes et performantes. Spécialiste Java et Angular, j’interviens sur l’ensemble du cycle de vie des applications, en mettant en oeuvre des bonnes pratiques comme le Clean Code et les principes SOLID. J’ai également porté la casquette de Scrum Master chez Cegid, facilitant la collaboration et l’agilit
Expérience de travail
Développeur Sénior Java Angular
Vinci Energies
juil. 2024 - Présent
2 ans 4 mois
92000 Nanterre, France
Projet : City App Nouvelle Génération Contexte : Refonte sous forme de SaaS d’une plateforme GMAO (Gestion de Maintenance Assistée par Ordinateur) destinée à la gestion globale des infrastructures urbaines intelligentes. Cette solution permet : - La supervision en temps réel d’un large panel d’équipements (éclairage public, signalisation lumineuse, vidéoprotection, bornes d’énergie, contrôle d’accès, …). - L’optimisation des procédures de maintenance des équipements. - Le suivi des consommations énergétiques. - Polyvalente et évolutive, CityApp offre un accès direct aux gestionnaires, prestataires et collectivités, facilitant ainsi la planification, le suivi des indicateurs de performance et la réalisation de projets de villes durables et connectées, aussi bien depuis le bureau que sur le terrain. Objectifs : - Développer une plateforme SaaS pour l’initialisation des marchés (tenants) dans le cadre de la gestion des équipements urbains. - Chaque marché sera indépendant et permettra aux utilisateurs de basculer d’un marché à un autre selon leurs droits. - Permettre le pilotage à distance des équipements et la gestion de la maintenance (curative, préventive), ainsi que des tournées de nuit des techniciens. - Gérer les périmètres d’accès qui définissent les droits des techniciens sur les équipements. - Gérer les droits patrimoniaux (équipements) et fonctionnels des utilisateurs. - Gérer l’import et la création des équipements. - Limiter l’exploitation des équipements selon les périmètres d’accès des utilisateurs. - Mutualisation de CityApp avec l’hyperviseur BIM. Missions : - Développement de microservices : o Market Setup : Développer un microservice dédié à l’initialisation de nouveaux marchés (tenants) et contrats administratifs. Chaque marché contiendra un hyperviseur BIM et la solution GMAO CityApp. o Permissions Manager : Développer un microservice responsable de la génération d’un token de permissions qui décrit les droits (patrmoniaux, fonctionnels) des utilisateurs, en intégrant un modèle RBAC (Role-Based Access Control). - Sécurisation et gestion des accès : o Implémentation de Spring Security avec Keycloak pour la gestion de l’authentification des utilisateurs, tout en réservant à Keycloak uniquement le rôle de fournisseur d'authentification et non de gestion du RBAC. o Définir et implémenter des mécanismes pour l’attribution des droits et permissions d'accès aux utilisateurs via des rôles et périmètres d’accès. o Gérer les 2 tokens (authentification, permissions) dans le backend de BIM pour valider si l’utilisateur a le droit de manipuler les web services. o Implémentation d’OTP et MFA sur Keycloak pour les utilisateurs les plus sensibles (administrateur du SaaS). - Modélisation et architecture : o Conception et élaboration des diagrammes UML pour modéliser les objets et les scénarios de gestion des équipements et des interventions. o Mise en place d’une architecture microservices en fonction du découpage métier. - Développement et documentation d’APIs : o Développement et documentation des API via OpenAPI (Swagger), garantissant l’interopérabilité et l’extensibilité de la plateforme. - Développement et documentation d’APIs : o Développement et documentation des API via OpenAPI (Swagger), garantissant l’interopérabilité et l’extensibilité de la plateforme. - Gestion de la maintenance et des équipements : o BIM Hyperviseur : Intégration d’un hyperviseur pour piloter les équipements. o Analyse et compréhension des processus de maintenance GMAO (curative, évolutive, préventive) pour la gestion du patrimoine d’équipements. o Gestion des tournées de nuit pour les techniciens de maintenance. o Coordination avec l’équipe BIM-CORE pour définir les points d’intégration et faciliter la mutualisation entre BIM et CityApp. - Intégration et automatisation : o Collaboration avec l’équipe OPS pour l’implémentation de la chaîne CI/CD et l’automatisation des déploiements de la plateforme. o Développement et intégration du module Maintenance dans l’hyperviseur, permettant la gestion des signalements et le suivi des interventions via des workflows définis. - Référentiels et données métiers : o Développement du module Référentiel pour alimenter les microservices avec les données métiers, telles que les types de défauts, les actions possibles, etc. o Intégration du domaine maintenance dans BIM-CORE via l’outil graphique FORSE, assurant la gestion des relations entre DefectReport, Interventions, PerformedActions, etc. - Gestion des workflows et des règles métiers : o Implémentation des règles de gestion pour les workflows de signalement et d’intervention, permettant de gérer efficacement les différents processus de maintenance et d’intervention sur les équipements. - Gestion des objets via BIM-CORE : o La gestion (CRUD) des objets sera effectuée avec l’outil BIM-CORE, garantissant une interface centralisée pour nouveaux objets de CityApp. Environnements techniques : - Java 21, Spring Boot, Spring Security, Spring Data JPA, Redis, JUnit, TestContainers, Mockito, Angular 18, PrimeNG, RxJS, Jasmine, Keycloak (OIDC (OpenID Connect), MFA, OTP), Liquibase, PostgreSQL, Docker, API REST, Sonar, CI/CD, Script Shell, Azure DevOps, Linux Shell.
Développeur Fullstack Java Angular
Cegid
févr. 2023 - juil. 2024
1 an 6 mois
92100 Boulogne-Billancourt, France
Contexte : Développement de l’application Cash Forecasting pour la gestion de la trésaurie et flux réels des entreprises ainsi que le cash pooling. Objectif(s) : - Développement évolutif et correctif. - Amélioration continu. - Analyse des besoins métiers et implémentation de nouvelles fonctionnalités. Missions : - Création de nouvelles fonctionnalités de gestion des prévisions de trésorerie et du cash-flow management entre les entreprises. - Conception et développement de tableaux de bord analytiques pour visualiser les données financières et faciliter la prise de décision. - Optimisation des performances de l’application pour garantir une expérience utilisateur fluide et réactive. - Implémentation de mécanismes de sécurité avec Spring Security et Keycloak pour la gestion des rôles utilisateurs. - Participation à des revues de code régulières pour garantir la qualité et la cohérence du code produit. - Collaboration avec les équipes de conception pour assurer l'harmonisation entre l'interface utilisateur et l'expérience utilisateur. - Migration vers Ag-Grid pour la visualisation des tableaux. - Participation à des séances de grooming technique avec le Product Owner pour renforcer les fonctionnalités et proposer des solutions techniques adaptées. - Définition de l’architecture du code et des bonnes pratiques de développement. - Développement d'APIs REST. - Développement évolutif et correctif. - Implémentation des tests unitaires avec JUnit et Mockito pour le backend ainsi que Jasmine pour le frontend - Implémentation des tests d'intégration du backend avec TestContainers. - Support dans la mise en production. Environnements techniques : Java 21, Spring Boot, Spring Security, Sprint Data JPA, JUnit, TestContainers, Mockito, Angular 17, RxJS, Ag-Grid, Jasmine, Keycloak, Flyway, PostgreSQL, Docker, API REST, Script Shell, Azure DevOps.
DÉVELOPPEUR BACK-END JAVA JEE
Société Générale
mars 2022 - févr. 2023
1 an
La Défense
Projet : Inventory - collecte de données des services Cloud GTS (cloud privé). Contexte : La Société Générale investit depuis plusieurs années dans son Cloud Privé afin de proposer des produits SaaS, CaaS, IaaS, et PaaS, qui vont concurrencer les offres d'Orange. Parmi ces outils, "Inventory" est une solution de collecte de logs, permettant de récupérer des données sur les instances et serveurs du Cloud. L'objectif est d’ajouter des batch de récupération de nouvelles données et de garantir une forte disponibilité de l'outil afin qu'il fournisse des informations critiques qui soutiennent les autres services dans leurs processus d'investigation et d'analyse des données. Objectifs : - Contribuer activement au développement et à l'amélioration d'Inventory pour répondre aux besoins évolutifs du Cloud Privé. - Optimiser la haute disponibilité de l'outil, en assurant la fiabilité et la scalabilité de l'infrastructure. - Améliorer les processus de récupération des données et la gestion des erreurs dans la chaîne CI/CD. - Optimiser la performance des batchs de collecte de données. - Anticiper et résoudre les incidents pour maintenir la continuité du service à l’aide de Kibana. Missions : - Collecte et analyse des données : Assurer la collecte et l'analyse des données relatives à l'utilisation des ressources et des instances dans le Cloud Privé de la Société Générale. - Extension de la collecte de données : Développer de nouvelles fonctionnalités permettant d'étendre la collecte des données sur des services supplémentaires, tout en assurant une intégration fluide avec d'autres systèmes internes. - Amélioration de la haute disponibilité : Concevoir et mettre en œuvre des solutions techniques pour garantir la haute disponibilité et la résilience des services de collecte de données. - Collaboration avec les équipes internes et externes : Travailler en étroite collaboration avec les équipes techniques, y compris les équipes de développement en Inde (Bangalore), pour comprendre les besoins et assurer une intégration harmonieuse. - Optimisation des processus CI/CD : Analyser et anticiper les erreurs dans la chaîne de production CI/CD, tout en contribuant à la mise en place de processus de qualité. - Performance des batchs : Identifier et résoudre les goulots d'étranglement dans les batchs de récupération de données afin d'améliorer la vitesse et l'efficacité des processus. - Analyse des exigences métier : Proposer des solutions techniques en réponse aux besoins d'évolution fonctionnelle de l'application Inventory. - Développement de l'infrastructure : Concevoir, développer et maintenir l'infrastructure nécessaire au bon fonctionnement du Cloud et à la collecte des données de manière fiable. - Documentation technique : Rédiger des documentations détaillées des processus et des flux de données pour assurer la traçabilité et faciliter la compréhension des différentes parties prenantes. - Support et résolution des incidents : Assurer un support technique de qualité pour résoudre les incidents et garantir une disponibilité continue de l'application Inventory. - Formation et accompagnement : Former et accompagner les utilisateurs finaux pour maximiser l'adoption de l'outil et en garantir une utilisation optimale dans leur environnement de travail. - Mise en production et gestion des mises à jour : Assurer la mise en production des nouvelles fonctionnalités et la gestion des mises à jour de l'application, en utilisant des outils DevOps comme Jenkins et Kubernetes. - Gestion des migrations de bases de données : Gérer les migrations de bases de données avec Flyway pour garantir la cohérence des données à travers les environnements de développement, de test et de production. - Tests automatisés : Développer des tests unitaires avec JUnit et Mockito, ainsi que des tests d'intégration backend avec TestContainers pour assurer la qualité du code. - Optimisation de la sécurité et de la conformité : Mettre en œuvre des solutions pour garantir la sécurité des données collectées, notamment en intégrant des mécanismes de sécurité via Spring Security et des bonnes pratiques DevOps. Environnements techniques : Java 17, Spring Boot, Spring Security, Sprint Data JPA, Hibernate, Kibana, Swagger, JUnit, TestContainers, Mockito, Flyway, Maven, PostgreSQL, Docker, Jenkins, Kubernetes, API REST, Sonar, CI/CD, Script Shell, JIRA, Confluence, Linux Shell.
Développeur Backend Java
FFF - Fédération Française de Football
sept. 2021 - févr. 2022
6 mois
Paris et périphérie
Projet : Géfor, plateforme de formation en ligne. Contexte : La Fédération Française de Football (FFF), soucieuse de la formation continue de son personnel (arbitres, entraîneurs, éducateurs, administratifs), a mis en place GEFOR, une plateforme dédiée à la gestion des formations en ligne. Cette solution permet d’organiser, suivre et valider les parcours de formation des différents acteurs du football français. Elle centralise l’ensemble des contenus pédagogiques, les sessions de formation, les évaluations et les certifications. Objectifs : - Digitaliser et centraliser la gestion des formations pour faciliter l’accès aux contenus pédagogiques et assurer une meilleure traçabilité des parcours. - Optimiser l’expérience utilisateur en proposant une plateforme intuitive, ergonomique et accessible sur différents supports (PC, tablette, mobile). - Automatiser les processus administratifs liés à l’inscription, à la validation des modules et à l’attribution des certifications. - Intégrer des outils analytiques permettant le suivi des performances et la génération de rapports personnalisés pour les formateurs et les responsables de la FFF. - Garantir la scalabilité et la performance de la plateforme afin de répondre aux besoins croissants des utilisateurs. Missions : - Développement et déploiement de nouvelles fonctionnalités pour améliorer l'expérience utilisateur sur la plateforme de formation en ligne. - Création de modules interactifs et pertinents pour les entraîneurs, arbitres et personnel de la Fédération Française de Football. - Collaboration avec des experts pour concevoir des contenus pédagogiques de qualité, conformes aux normes de la FFF. - Intégration de fonctionnalités de suivi et d'évaluation des progrès des utilisateurs. - Maintenance technique de la plateforme. - Intégration de fonctionnalités multilingues pour une formation en ligne accessible à tous. - Gestion du système de notifications pour le suivi des statuts de formation avec RabbitMQ. - Analyse des retours d'expérience pour l'amélioration continue de la plateforme. - Veille technologique pour rester à jour avec les innovations en formation en ligne. - Implémentation des tests unitaires avec JUnit et Mockito. - Implémentation des tests d'intégration du backend avec TestContainers. - Développement sous système Linux. Environnements techniques : Java 11, Spring Boot, Spring Security, Sprint Data JPA, Swagger, JUnit, TestContainers, Mockito, Maven, Swagger, Git, Flyway, MongoDB, RabbitMQ, Docker, Azure DevOps, Sonar, CI/CD, API REST, Script Shell, Agile Scrum, JIRA, Confluence, Linux Shell.
Software Engineer
Orange Bank
mars 2019 - sept. 2021
2 ans 7 mois
93100 Montreuil, France
Projet : Marple, système de détection de fraude. Contexte : Dans un contexte où la fraude en ligne représente un enjeu majeur pour Orange Bank, les équipes de R&D en Intelligence Artificielle ont développé Marple, un système avancé de détection de fraude. Ce projet vise à analyser les comportements suspects et à identifier automatiquement les comptes frauduleux à l'aide d'algorithmes d'IA et de Machine Learning. Objectifs : - Développer et exposer des API REST sécurisées permettant d’intégrer la détection de fraude aux systèmes existants. - Mettre en place un moteur d’analyse basé sur l’IA, capable d’évaluer le risque de fraude en temps réel. - Optimiser la performance et la scalabilité des traitements pour analyser un grand volume de transactions et de comptes. - Assurer la traçabilité et l’explicabilité des décisions via des logs détaillés et des mécanismes d’audit. Missions : - Analyse approfondie des besoins avec les équipes métiers risques et finance pour définir les critères et scénarios de détection de fraude. - Conception et développement des APIs REST permettant l'intégration fluide de Marple avec les systèmes bancaires existants. - Mise en place de Kafka pour écouter les événements de fraude en temps réel depuis les webservices de l'équipe R&D, et envoyer des notifications instantanées aux équipes métiers via l'interface front-end. - Implémentation de mécanismes d’authentification et d’autorisation sécurisés avec Spring Security et Keycloak, garantissant un accès contrôlé aux fonctionnalités sensibles du système. - Rédaction d'une documentation technique et fonctionnelle complète pour faciliter l'intégration de Marple, avec des exemples pratiques et des instructions détaillées pour l’équipe Front. - Collaboration étroite avec les équipes métiers pour ajuster les critères de détection de fraude et les notifications, en fonction des retours et des évolutions des processus bancaires. - Suivi des performances du système de détection à travers la collecte de métriques et d'indicateurs, avec des actions d’optimisation basées sur les données collectées pour améliorer la réactivité et l'exactitude de la détection. - Fourniture des APIs nécessaires aux équipes Front-end, afin d'intégrer les alertes et notifications de fraude dans l'interface utilisateur, en assurant une communication fluide entre le back-end et le front-end. - Développement et tests réalisés sous un environnement Linux, en utilisant des outils adaptés pour assurer la robustesse du code et un déploiement simplifié. Environnements techniques : Java 8, Spring Boot, Spring Security, Sprint Data JPA, JUnit, TestContainers, Mockito, Maven, Swagger, Git, Flyway, PostgreSQL, Docker, API REST, Sonar, CI/CD, Script Shell, Agile Scrum, JIRA, Confluence, Linux Shell.
Formation
Université Paris Cité
Master Machine Learning for Data Science, Computer Science
2018 - 2019
2 ans
Faculté des Sciences de Fès
Master Big Data Analytics & Smart Systems, Big Data
2016 - 2018
3 ans
Faculté des Sciences et Techniques de Fés
Licence Génie Informratique, Informatique
2012 - 2016
5 ans
Licences et certifications
DELF B2
Délivré le : mai 2025
AWS Certified Cloud Practitioner | CLF-C01
Délivré le : avr. 2021
Portfolio
