
Ahmed BOUZIDI
Développeur Sénior Java JEE | Spring Boot
Salaire / Taux journalier
Paris, France
Freelance
Peut venir sur site
Expertises
Langues
À propos
Introduction
Développeur Java JEE avec 8+ ans d'expérience, actuellement chez Euronext sur des architectures microservices complexes. Expert en conception d'écosystèmes Spring Boot (GraphQL, Kafka, Batch), avec maîtrise avancée du traitement de données massives et orchestration Apache Airflow. Je transforme vos défis techniques en solutions scalables et performantes, de la conception architecturale à la mise en production.
Expérience de travail
Développeur Sénior Java JEE
Euronext
juin 2022 - Présent
4 ans 5 mois
Projet : Matrix NextGen est le nouveau référentiel de données pour Euronext qui aura comme composants : – Un jar commun qui va contenir toute la logique métier. – Un jar contenant les différents Contrôleur GraphQL et Dto généres par vision tool – Une ou plusieurs APIs Rest pour répondre aux différents besoins des autres applications chez Euronext. – Un ou plusieurs backends pour les différentes applications front. – File Processor pour le traitement de différents fichiers. – Service Processor pour implémenter les batch métiers. – Kafka Consumer pour traiter les messages Kafka. – Kafka Producer pour implémenter les batch métiers Durant la phase d'étude du projet, j'ai collaboré avec un architecte pour challenger et par la suite valider les différents choix techniques. Plusieurs POC et prototypes ont été réalisés – Base de données : – Revue de schéma de base de données pour le normaliser – Gestion de versioning (historique) des différentes entités – Archivage des données dans S3 – Reverse engineering des procédure stockées pour définir la complexité des traitements métiers et donner une estimation high level de leur migration en Java. – Common business component « Maven » est un projet maven avec des dépendances Spring natives qui va être utilisé comme un jar (une dépendance) dans les autres projets : – Concevoir un projet Maven avec des dépendances Spring natives – Conception et Définition du Code Design – Définir la stratégie d'audit Trail en se basant sur AOP (AspectJ) – Implémentation des premiers services Business – Implémentation des tests unitaires – Rédaction de la documentation technique – Matrix NextGen vision api « Maven » : – Concevoir un projet maven qui va contenir les contrôleurs GraphQL, les dto et les interfaces appelées (injectées) dans les contrôleurs. – Intégration de l'outils de génération du code. – Matrix NextGen Back-End « Springboot » : – Concevoir un Back-End GraphQL avec Spring boot qui va utiliser les jar common-business et vision-api comme dépendances. – Implémentation des façades (Adaptors) qui injectent les interfaces des services métiers – Implémentation de différents Mappeurs. – Matrix NextGen Api « Springboot » : – Concevoir une api avec Spring boot qui va utiliser le jar commun comme une dépendance – Implémentation des contrôleurs Rest – Implémentation des façades (Adaptors) qui injectent les interfaces des services métiers – Implémentation de différents Dto et mappeurs – Gestion des exceptions et renvoyer une réponse adéquate – Implémentation des tests d'intégration et des tests de comportement BDD – Préparation du Docker file – Rédaction de la documentation technique – Matrix NextGen File Processor « Springboot Batch» : – Justification des choix techniques. – Concevoir un composant avec Spring boot qui va utiliser le jar commun comme une dépendance. – Utilisation de Spring Batch {read --> process --> write} – Mettre en place une solution basée sur une enum de configuration pour décider en runtime quel reader (par format), process et writer utiliser. – Mettre en place une solution générique de parsing des fichiers XML, CSV, JSON et .dat – Utilisation de StaX pour parser les fichiers volumineux et éviter les problèmes de mémoire. – Lecture par chunk (lot de recors), Processig en parallèle et batch updates – Stratégie de tolérance aux pannes configurable – La définition des exception tolérables – Stratégie de tracing en BD configurable – Se baser sur les listener pour calculer des métriques et logger – Orchestration de ces jobs avec Apache Airflow – Implémentation des tests d'intégration – Préparation du Docker file – Rédaction de la documentation technique – Matrix NextGen Service Processor « Springboot » : identique au File Processor mais l'input est plutôt des records dans la DB au lieu d'un fichier – Concevoir un composant avec Spring boot qui va utiliser le jar commun comme une dépendance – Utilisation de Spring Batch {read --> process --> write} – Mettre en place une solution basée sur une enum de configuration pour décider en runtime quel service exécuter – Lecture par chunk (généralement lot de recors en DB), Processig en parallèle et batch updates – Stratégie de tolérance aux pannes configurable – La définition des exception tolérables – Stratégie de tracing en BD configurable – Se baser sur les listener pour calculer des métriques et logger – Orchestration de ces jobs avec Apache Airflow – Implémentation des tests d'intégration – Préparation du Docker file – Rédaction de la documentation technique – Matrix NextGen Kafka Consumer « Springboot » : – Etudes comparatives des librairies/Frameworks pour intégrer Kafka précisément sur Apache Flink, Spring Kafka, Apache Kafka native et Kafka Stream – Justification des choix techniques – Concevoir un composant avec Spring boot qui va utiliser le jar commun comme une dépendance – Mettre en Place toute la configuration Spring Kafka – Définition de la Stratégie de commit (COUNT_TIME) – Définition de stratégie d'échec de lecture ou de processing – Implémentation des Listeners – Génération des class à partir d'un fichier xml pour pouvoir parser les message SBE – Implémentation des parseurs natifs pour les messages Avro – Implémentation des Dtos et des mappeurs. – Implémentation des tests d'intégration. – Préparation du Docker file. – Rédaction de la documentation technique. – Matrix NextGen Kafka Producer « Springboot » : – Concevoir un composant avec Spring boot qui va utiliser le jar commun comme une dépendance. – Mettre en Place toute la configuration Spring Kafka. – Définition de la stratégie d'échec d'envoi de messages. – Implémentation des Producers. – Implémentation des Dtos et des mappeurs. – Implémentation des tests d'intégration. – Préparation du Docker file. – Rédaction de la documentation technique.
Développeur Sénior Java Angular
Rte
avr. 2021 - juin 2022
1 an 3 mois
Projet : JARVIS est une application permettant de visualiser les données mesurées par les Capteurs installés sur les ouvrages de Rte dans le cadre du projet Monitoring des actifs : – Monitoring des transformateurs via l'Analyse des Gaz Dissous (DGA) – Monitoring des Protections Cathodiques des Liaisons Souterraines – Monitoring Thermiques Acoustiques des Liaisons Souterraines – Module Gatherer « Springboot » : – Récupération des trames de données des capteurs selon les protocoles : Lora, https, mqtts, mqtt et Transfert de fichiers en sFTP – Envoi de données des capteurs au Collecteur – Module Collecteur « Springboot » : – Recevoir de données des capteurs selon le protocole mqtt ou celles envoyées par le Gatherer – Enrichir les données et les envoyer au serveur Karte (Kafka) – Implémentation des différentes IHM afin de répondre aux besoins client – Consommation de différents end points exposés par les microservices – Module PIXAR « ElasticSearch » : – Préparation des templates et des pipelines pour les stocker dans ElasticSearch. – Module Back-End « Springboot » : – Exposition des endpoints au frontend permettant de fournir les données nécessaires à l'affichage des IHMS JARVIS. – Traitement des requêtes et interrogation des différentes bases – Application des règles métiers comme les calculs de dépassements de seuil et les calculs de moyennes etc. – Récupération des mesures enregistrées dans ElasticSearch. – Implémentation des batchs de récupérations d'informations depuis les services externes. – Implémentation de différents batch d'alerting (Envoi de mail en cas d'alerte). – Mise en place du cache pour améliorer les performances – Module Front-End « Angular » : – Implémentation de différents IHMs permettant aux utilisateurs de monitorer les actifs. – Appeler les Apis Rest du backend pour récupérer les données à afficher
Développeur Full-Stack Java /Angular
BforBank du groupe Crédit Agricole
juin 2019 - avr. 2021
1 an 11 mois
Projet 1: Conception, développement et intégration de la norme « DSP2 » en Java/Angular qui consiste à mettre en place une nouvelle norme de sécurité pour la banque BforBank du groupe Crédit Agricole. – Partie front-end « Angular » : – Implémentation des IHM – Implémentation des clients REST pour consommer les web services exposés de la Gateway – Partie Gateway « BFF » : – Exposition de différentes web service REST pour les invoquer du front-end – Mise en place de l'architecture hexagonale pour bien isoler le code métier – Partie Micro-services « Spring Boot » : – Participation à l'implémentation de différents micro-services répondant aux besoins fonctionnels de l'application. Projet 2: Conception, développement et intégration d'un nouveau module, from-scratch, sur l'espace client pour que l'utilisateur peut mettre à jour son formulaire KYC – Partie front-end « Angular » : – Implémentation des différentes pages du formulaire – Remonté et affichage des données récupérées de la Gateway – Partie Gateway « BFF » : – Exposition de différentes web service REST pour les invoquer du front-end – Synchronisation des appels à la ferme micro-services – Partie Micro-services « Spring Boot » : – Exposition des nouvelles routes – Création des clients feign pour pouvoir appeler les web services exposés Maintenance applicative : – Répondre aux nouvelles fonctionnalités de métier et correction évolutives des bugs – Développement et ajustement de quelques modules avec le CRM Jahia – Maintenance de différents modules tels que « espace client, CRM, Parcours de souscription, Assurance vie etc.. »
Développeur Full-Stack Java JEE
BNP Paribas Real Estate
mars 2018 - mai 2019
1 an 3 mois
Conception, développement et intégration de la solution logicielle « Vega » de gestion immobilière en Java JEE From Scratch pour le groupe BNP Paribas. – Partie front-end « JSF PrimeFaces » : – Proposition des maquettes et implémentation des IHM – Gestion des droits et des rôles avec Spring Security – Implémentation des clients Rest pour consommer les web services exposés coté back avec Spring Rest Template – Amélioration et optimisation des appels web services pour augmenter les performances – Partie back-end « Spring » : – Amélioration de tous les traitements dans l'application – Mettre en place les Entity Graph pour minimiser les accès à la base en mode lazyLoading – Mettre en œuvre un système pour ne pas bloquer certains traitements dans l'application quand sharepoint est KO. – Assurer la communication avec les autres applications via L'ESB Tibco avec des web services soap – Assurer la communication avec SAP et une autre base de données distante – Implémentation des jobs pour le re-upload des documents en sharepoint et pour des besoins demandés par la MOA – Gestion des certificats (Google maps et sharepoint) – Gestion du Cache – Migration et transcodification des données de l'ancienne base
Ingénieur R&D Java JEE/Angular
SAGEM software & Technologies
déc. 2016 - févr. 2018
1 an 3 mois
Développement et intégration d'une solution de gestion de cycle de vie des compteurs intelligents dans la suite logiciel Siconia de management de la Smart Grid. – Implémentation et configuration des routes Camel pour la communication entre les différents modules de la solution. – Développement des évolutions demandées par la MOA. – Développement des nouvelles IHM qui répondent aux Spécifications des clients. – Conception et visualisation des dashboards à l'aide de KIBANA – Correctif des bugs – Refonte de la partie front-end avec angular 4
Ingénieur R&D Java JEE
Société d’Informatique de Management et de Communication
janv. 2016 - nov. 2016
11 mois
Support et maintenance d'un ERP de la SIMAC qui consiste principalement en la gestion des ressources humaines, la gestion financière, la comptabilité, la gestion budgétaire et la gestion des marchés publiques. – Maintenance des solutions existantes – Conception et développement des solutions selon les spécifications du client – Amélioration, raffinement et optimisation de certaines implémentations. – Implémentation de la logique métier sous forme de procédures stockées avec PL/SQL et T-SQL.
Formation
–
Ingénieur en Informatique, Informatique
2016 - 2016
1 an
–
Baccalauréat, Mathématiques
2010 - 2010
1 an