Développeur Sénior Java Angular
Vinci Energies
juillet 2024 - aujourd'hui
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 :
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.
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 :
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.
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.
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.
Implémentation d’OTP et MFA sur Keycloak pour les utilisateurs les plus sensibles (administrateur du SaaS).
- Modélisation et architecture :
Conception et élaboration des diagrammes UML pour modéliser les objets et les scénarios de gestion des équipements et des interventions.
Mise en place d’une architecture microservices en fonction du découpage métier.
- Développement et documentation d’APIs :
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 :
BIM Hyperviseur : Intégration d’un hyperviseur pour piloter les équipements.
Analyse et compréhension des processus de maintenance GMAO (curative, évolutive, préventive) pour la gestion du patrimoine d’équipements.
Gestion des tournées de nuit pour les techniciens de maintenance.
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 :
Collaboration avec l’équipe OPS pour l’implémentation de la chaîne CI/CD et l’automatisation des déploiements de la plateforme.
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 :
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.
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 :
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 :
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, Kafka, 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.
Java 21, Spring Boot, Spring Security, Spring Data JPA, Kafka, 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 Éditeur de logiciel
février 2023 - juillet 2024
Projet : Cash Forecasting
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.
Objectifs :
Développement évolutif et correctif, Amélioration continu.
Analyse des besoins métiers et implémentation de nouvelles fonctionnalités.
Développement d’un système de notifications en temps réel avec Kafka.
Missions :
- Implémentation de mécanismes de sécurité des APIs avec Spring Security et Keycloak avec RBAC (Role-Based Access Control), ABAC (Attribute-Based Access Control).
- Conception et développement d'un système de notifications en temps réel avec Kafka, permettant la gestion dynamique des événements liés à la trésorerie, la mise à jour en temps réel des prévisions de cash-flow, ainsi que la gestion des transactions financières entre entreprises.
- Développement de producteurs et consommateurs Kafka pour la gestion des événements financiers, tels que les mises à jour de prévisions, les alertes de seuils critiques de trésorerie et les notifications liées aux paiements inter-entreprises.
- Optimisation des flux de données Kafka, en mettant en place une gestion efficace des topics et partitions pour une performance optimale du système dans un environnement à fort volume de transactions.
- Participation à des revues de code régulières pour garantir la qualité et la cohérence du code produit à l’aide du CI/CD et SonarQube.
- 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.
- Application de la méthode TDD et les pratiques Clean Code.
- 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.
- Développement sous système Linux.
- Double role Scrum Master pour la gestion de l’agilité au sein de l’équipe.
Environnements techniques :
- Java 21, Spring Boot, Spring Security, Spring Data JPA, Kafka, JUnit, TestContainers, Mockito, Angular 18, RxJS, Ag-Grid, Jasmine, Keycloak (OIDC (OpenID Connect), MFA, OTP), Flyway, PostgreSQL, Docker, API REST, Sonar, CI/CD, Script Shell, Azure DevOps, Linux Shell.
Java 21, Spring Boot, Spring Security, Spring Data JPA, Kafka, JUnit, TestContainers, Mockito, Angular 18, RxJS, Ag-Grid, Jasmine, Keycloak (OIDC (OpenID Connect), MFA, OTP), Flyway, PostgreSQL, Docker, API REST, Sonar, CI/CD, Script Shell, Azure DevOps, Linux Shell.
Développeur Backend Java
Société Générale
février 2022 - février 2023
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 col...