EXPÉRIENCES
Descriptif projet DESCRIPTIF PROJET :
C'est une application web qui permet la gestion des requêtes des clients
internationaux (CSM : Client Service Manager) de BNP Paribas CIB.
L'architecture de l'application est en 3 tiers (client / serveur / base de données) et
interagit avec plusieurs microservices, des batchs Spring, des triggers Oracle
PL/SQL, ainsi qu'un middleware NATS pour les échanges en temps réel.
L'équipe du projet est organisée selon la méthodologie Scrum, composée de 40
membres (23 développeurs, 6 business analysts, 7 testeurs, un Scrum Master, un
Product Owner et un Project Manager), répartis entre Paris et Chennai (Inde).
TÂCHES :
Développement Back-End (Java / Spring Boot)
● Création from scratch de batchs Spring et implémentation du Multi Threading
Java pour le traitement de données massives en production pour des clients
spécifiques.
● Développement d’un micro-service Spring Boot (hobart-sse-sm) pour
connecter l'application au middleware NATS.
● Migration de la version Java de l’application de Java 8 à Java 11.
● Rédaction de scripts PL/SQL pour la création de fonctions, procédures, vues et
triggers en base de données.
● Implémentation des tests unitaires backend en Java avec JUnit 4.
● Refactoring de la sécurité de l’application vers OAuth2 et JWT.
Développement Front-End (Angular)
● Études et implémentations de nouvelles fonctionnalités :
o Service Request Preview
o Officier Manager Portfolio
o Client Overview Module
o Client Data Export
o Workflow d'envoi des mails Four-eyes-check
Mohamed ******** -
Public
● Migration du store Redux vers NgRx pour une meilleure gestion de l’état.
● Implémentation des tests unitaires front-end en Angular avec Jasmine.
● Migration des fonctionnalités front-end et amélioration des performances de
l'application.
Intégration et Communication entre Front-End et Back-End
● Implémentation de l'échange de messages en temps réel entre le front-end et
le back-end avec Server-Sent Events (SSE) et NATS (broker de messages).
● Mise en place de proxies : Traefik et micro-service SSE entre les navigateurs
et le serveur NATS déployé sur Kubernetes.
● Mise en place des certifications TLS pour sécuriser le serveur NATS et le
micro-service SSE.
Automatisation et CI/CD (DevOps)
● Mise en place de la configuration pour la couverture des tests unitaires avec
Jacoco et Sonar.
● Automatisation du déploiement du serveur NATS sur Kubernetes en utilisant
Helm Chart, Jenkins, et Ansible.
● Création des templates Helm pour NATS et le micro-service hobart-sse-sm.
● Configuration du cluster du serveur NATS sur Kubernetes en environnement
de développement.
Infrastructure et Monitoring
● Configuration des AVI (Network Load Balancers) pour le serveur NATS et le
micro-service hobart-sse-sm.
● Monitoring du cluster NATS avec Grafana, Prometheus, et Alert Manager
pour la surveillance en temps réel.
Code Quality and Best Practices
● Revue de code et suivi du respect des normes de codage à travers des revues
régulières pour maintenir la qualité du code.
● Adoption des principes du Software Craftsmanship, en mettant l'accent sur
l'écriture de code propre, maintenable et évolutif, et en promouvant des
pratiques comme le Test-Driven Development (TDD) et le Pair Programming
pour améliorer la qualité et la collaboration.
Environnement
technique
● Java 11, 17, Angular 15, HTML5/CSS3, TypeScript, SQL, Spring, Spring Batch,
Spring Security, Spring data, Hibernate/JPA, Oracle 11g, PLSQL, Docker,
Kubernetes, Git, Bitbucket, Jenkins, Ansible, Helm, Traefik, POSTMAN,
Jmeter, Prometheus, Grafana, Api RESTful, TDD, IntelliJ Idea
En mission chez BNP PARIBAS CIB / Octobre 2021 – Aujourd’hui
CONSULTANT DEVELOPPEUR FULL-STACK JAVA / ANGULAR,
BNP PARIBAS CIB | 1 an et demi,
PROJET : HOBART
C’est une application web permet la gestion des requêtes des clients internationaux (CSM: Client Service Manager) de BNP PARISBAS CIB.
En tant que consultant développeur senior Full-stack Java et Angular, et au seine
d’une grande équipe repartie entre Chennai Inde (20 développeurs, testeurs et
BA) , et Paris (15 personnes: dont 7 développeurs, 5 BA, un chef du projet, un
scrum master et un Product Owner) J’ai :
Implémenté des nouvelles fonctionnalités:
- Service Request Preview;
- Officier Manager Portfolio;
- Client Overview Module;
- Client Data Export;
- Workflow d’envoie des mails Four-eyes-check;
Corrigé des bugs du prod et maintenance de code;
Implémenté les tests unitaires java en Junit;
Implémenté les tests unitaires Angular avec Jest;
Fixé le code smell repoté par Sonar côté Front et Back;
Mis en place la config nécessaire pour la couverture des tests unitaires
avec Jacoco et Sonar,
Fait des demos après l’implémentation de chaque fonctionnalité pour les
Sponsors;
Fait la migration du store avec Redux à Ngrx.
Fait la migration de Java 8 à Java 11
Refactoré des tests unitaires du Jest à Karma
Rédigé de la documentation technique sur
- ajout des business fields,
- utilisation du Store avec Ngrx
Participé aux mise en prod le weekend;
Fait estimation globales des Jiras et participer à la définition de backlog
Refactoré de la sécurité de l’application vers Oauth2 et JWT.
Environnement Technique : Java 8 et 11, Angular 9 et 13, Typescript 3.2,
HTML5/CSS3, Sass (styles), Oracle SQL Developer, Maven 3.6.0, Spring Web
MVC, Spring Boot 2.3.4, Spring Data, Spring batch, Oauth2, JWT, Hibernate,
Apache Tomcat, Git, Sonar Qube, Jenkins, Eclipse, IntelliJ IDEA, Rest API,
Junit 4, Jacoco, JMS 2.0.1, Redux, Ngrx, rxjs.
En mission chez Deveryware / Février 2021 – Septembre 2021
INGENIEUR D’ETUDES & DEVELOPPEMENT FULL-STACK JAVA / ANGULAR,
Deveryware | 8 mois,
PROJET : Zafer
Développement et maintenance des plusieurs micro-services qui font partie
de ZAFER project en utilisant Java et Angular.
Les projets ZAFER permettent d’assurer les fonctionnalités nécessaires des
clients de Deveryware : Gendarmerie, DGSI.
En tant que développeur Java et Angular, et au seine d’une équipe de 5 développeurs (dont un expert), deux fonctionnelles et le chef du projet. J’ai :
implémenté les nouvelles fonctionnalités de gestion des stocks et missions,
implémenté les fonctionnalités d’association et dissociation des balises GPS
(front et back),
Envoyé des notifications aux différents micro-services à chaque changement des autorisations sous forme des messages Rabbitmq ;
Implémenté les tests unitaires : côté frontend avec Jasmine, Karma et côté
Java avec Junit 4, AssertJ, Micronaut Tests, Spring Test ;
géré le trace des différentes requêtes http entre les différents micro -
services ;
créé un nouveau module du projet from scratch pour importer les données
des hiérarchies des groupes des utilisateurs ;
créé un nouveau projet de configuration et d’exécution des différents micro -
services Zafer en local en utilisant des commandes shell et docker,
configuré ou mettre à jours des configurations docker pour micro -services ;
participé au réunion scrum (sprint planning, rétrospective) ;
Environnement Technique : Java 11, Micronaut 3, Spring Boot 2, Araongodb
3.6, Self4J, AssertJ, Angular 12, Typescript 3, Ngrx, Docker, Shell, Gradle
4.4.1, Rabbitmq 5.9.0, commonCsv ;
En mission chez SMA BTP Assurances / Septembre 2019 – Décembre
2020
INGENIEUR D’ETUDES & DEVELOPPEMENT FULL-STACK JAVA 7 / ANGULAR 8, ANGULAR JS 1.3,
SMA BTP Assurances | 15 mois,
PROJETS : WF, SY, TW, IW, SY-DEMANDE-DETAIL, et Journal Technique.
Développement, migration et maintenance des différentes applications du
Groupe SMA (2 Portails WEB et 4 micros services) :
WF : Portail web développé en Java, Maven et Angular, permet de gérer les
différents services pour les courtiers, conseillers, sociétaires, et gestionnaires.
SY : Micros service en Java qui regroupe les différents Batchs sous formes
des modules maven et qui permettent d’extraire les détails des demandes, de
valider les contrats, de persister les données dans des bases Oracle, de surveiller la cohérence et l’intégrité des contrats d’assurances.
SY-DEMANDE-DETAIL : c’est un micro service en Java et Maven qui regroupe
les différents modèles et contrôles de validité des données.
TW : c’est un micro service en Java et Maven qui permet les traitements des
demandes et l’envoie des mails nécessaires aux différents acteurs concernés
par les contrats d’assurances.
Journal Technique : c’est un micro service en Java et Maven qui permet de
gérer les traces des différentes transactions et mouvements et appels aux
services externes.
IW : c’est un portail web en Java, Maven et Angular qui permet gérer les
rôles, autorisations des utilisateurs et les paramétrages nécessaires pour
l’application WF.
En tant que consultant full-stack Java et Angular, au sien d’une équipe composée
de 9 développeurs et 6 fonctionnels, j’ai :
Implémenté les pages de demandes de déclarations annuelles,
Refactoré les pages de changements du contact et a dresse;
Créé les modèles de données et les tables SQL du projet Journal Technique,
Implémenté le batch de vérification et validation des contrats d’assurance;
Fixé des anomalies liées aux : demandes d’attestation de chantier, batchs
de mise à jour de parc auto, demande de sinistre auto, ….
Migration des modules existants d’Angular JS 1.3 vers Angular 8.
Déployé des releases sur les environnements d’intégration et de recette,
Géré les codes sources des projets en utilisant Git, SourceTree, Jenkins et
Sonar.
Environnement Technique : Java 7, Angul...