Expérience professionnelle
SNCF-FRET 2020 - AUJOURD'HUI
Lead Software Architect
DOMAINE D’INTERVENTION:
Projet de migration et refonte de la totalité des applications (65) du périmètre SNCF Fret existant :
1.Définir la stratégie de la migration, évaluer les impacts et veiller à les faire converger vers un standard
DSI Fret. Assurer une revue du portefeuille applicatif est la mise en place d'une cartographie. Veiller à la cohérence et la pérennité des architectures/solutions technologiques au sein du DSI en collaboration avec les autres équipes réseaux, sécurité et ops.
2.Revue et refonte des applications existante dans le cadre de la migration. Migration vers des architectures 3 tiers, refonte de l'architecture en haute disponibilité : Ajout LB middle, vip frontal en
SFTP, Ajout Ha proxy dans le catalogue, migrer le socle des SBB.
3.Accompagner sur les choix d'architecture des application futures. Fournir, pour le newBuild les architectures intermédiaires et la cible qui tient en compte de la refonte des applications existantes.
Contribuer à l'innovation pour maitriser le coût : Gain de 300% de coup de licences Gurobi (Data Science et GRPC). Assurer le transfert des compétences et la formation des nouvelles fonctions aux équipes production et support.
Les phases de refonte et migration sont terminées en mai 2022.
OUTILS ET TECHNOLOGIES : Togaf, Prometheus, Grafana, ESB, VIP, DNS, SAN, NAS, DAT, Fuzze, Jenkins, Gitlab, Nexus, Sonar, Ansible, Pattern SOA, ELK, Oracle, Postgres SQL, My SQL, MariaDB, BPM
Missions d’expertises
Du 02/2019 à Présent : Architecte Microservice
Projet
INES: GFI
Responsabilités
Gestion des APIS avec API Manager WSO2:Versionnage ,throttling , fail over , load balancing .
Sécuriser l ‘écosystème micro service avec KEYCLOAK: authentification, autorisation , JWT, OAUTH2 ,gestion et centralisation des session utilisateur ,refresh token,spring security ...
Conception et développement du socle technique et POC pour des batchs en Spring Batch ,Integration ,Rest ,Boot.
Dockerisation et mettre en place serveur spring config pour la gestion des profiles et multi environnement (12 Factor )
Externalisation des paramètres Angular et paramétrage HTTPS de reverse proxy NGINX en tenant compte de tout l ‘eco-system.
Environnement
Spring Boot, Swagger, , Maven, Gradle, CI/CD, Docker, Spring Actuator, Circuit Breaker, Hystrix, Netflix (Zuul), (ElasticSearch, Logstash Kibana),
Du 09/2018 à 02/2019 : Architect Devops
Projet
DLPIS : Disney Land Paris Integration System
Responsabilités
Délivrer la conception détaillée des flux d’interfaces de sous-systèmes DLPIS (LLD et Contrat d’Interface)
D’assurer le maintien à niveau des documents de la conception détaillée durant la phase de build
Revoir et valider les livrables et fournitures réalisés par les équipes de développement
Contribuer à la définition de l’architecture physique, et des environnements nécessaires au projet
Réaliser la stratégie de test et de déploiement
Garantir l’alignement entre toutes les parties prenantes sur le projet
Vérification de la cohérence de la solution avec les principes de l’architecture de DLPIS
Environnement
Architecture Micro Services et son eco system (Docker container, Java 8, Spring Boot, String Batch, Consul, Vault, Rabbit MQ) ,ETL Talend Open Studio ,Amazon Web Services, Terraform, Jenkins, Github, MDM (Master Data Management),Visio, Git,Jenkins ,sonar ,nexus,
Du 01/2017 à 08/2018 : Senior E-Commerce Architect (Hybris)
Projet
********
Responsabilités
Revue de code hybris et investigation des problèmes en Prod: pool thread,lazy loading, standards hybris,CronJob,Jemalloc…
concevoir les scripts de tests de perf avec jmeter puis neoloder.
Monitoring et tuning des points d ‘étranglement de l ‘écosystème ecommerce conforama avec dynatrace ,tunning de la base oracle ,réseaux avec wireshark.
Tunning et optimisation de la partie frontend (html ,js ,css) pour améliorer le speed index ...
Tuning et migration de GC (CMS et // ) des backoffices et frontoffices hybris .
Développer un POC pour optimiser les appels WS en utilisant un pool de connexion http comme si une base de donnée.
Développer un microservice avec spring boot et Scala pour simuler le DAM.
Faire la monté en charge des boutiques,produits et offres Marketplace (Hybris ,miracle,Talend et DAM).développer avec spring batch un générateur de volumétrie des produits Marketplace.
Développer un POC pour la Continuous delivery avec docker ,docker hub, docker compose puis Kubernetes
.
Environnement
Git,Jenkins ,sonar ,nexus,Scala ,Spring REST, Spring data, , SQL SERVER , ,Maven, Kubernetes, Docker, Dynatrace,Sap Hybris
Du 01/2016 à 12/2016 : Senior Micro-service Architect
Projet
CliniSys, Computer System
Responsabilités
Migration de l ‘application monolithique CliniSys de santé vers une architecture microservice (Spring Boot,REST).
Concevoir et implémenter un POC pour la partie sécurité (session distribuées ):Spring session ,redis,stateless API :
Ajouter XA-transaction sur plusieurs entity managers (transaction entre plusieurs schémas de donnée )
Mettre une plateforme d’intégration continue : Git,Jenkins ,sonar ,nexus.
Environnement
Spring REST, Spring data, Atomikos, SQL SERVER , FlyWay,Gradle,Ubuntu, Docker,Nosql ,Redis ,MangoDb, Git, Jenkins ,sonar ,nexus,
Du 02/2014 au 12/2015 : Senior intégration Architect
Projet
AFT : Agence France trésor
Client
Ministre de finance de France
Responsabilités
Etude et développement d’une architecture «ESB LightWay » d’intégration des SIs Atena ,Masit, Murex et Piver.
Developer des Jobs d’intégration (récuperation des fichiers et insertion dans la base) avec spring batch.
Utiliser les patterns “Enterprise Integration Patterns» pour implémenter les RGs d ‘intégration (80 RGs).
Monitoring et administration des Jobs avec WS-REST.
Développer une couche de communication bidirectionnelle entre serveur IHM et Integration avec des web services et web socket.
Environnement
Spring Integration, Spring Batch, Oracle, CentOs, Docker
Du 02/2014 au 02/2015 : Senior Micro-service Architect Orange
Projet
OBIS : Orange Business Intelligence Service
Client
Orange
Responsabilités
Concevoir et implémenter un ESB applicatif qui sert comme plateforme d’automatisation des relances de recouvrement à base des Timelines et indépendante du Marché (Mobile, ADSL, DATA) avec les WS-REST (HATEOS : maturité niveau 3).
Concevoir et développer une couche Gateway entre back-end (des ends points) et Front-End des Access point avec SpringRest et Vaadin .
Implémenter les services relances en API: Service Mailing, Service Smsing, Service CMS (exp barring...), Service Planification et Automatisation, Service Notification, Api Repository (BD) ...
Implémenter des Web services d‘interfaçage avec BSCS (WS-SOAP) pour le provisionning: suspension, réactivation, barring...
Développer des batchs Job Talend pour des traitements sur de gros volumes de données BSCS Oracle et MySQL.
Environnement
Spring, SOAP, ATOM, Quartz, Talend ETL, Oracle, CentOs, Spring batch- admin.
Du 06/2013 au 01/2014: Technical leader J2EE TCMC France
Projet
Storeforce
Client
TCMC France
Responsabilités
Développement d’application qui génère un planning pour les employés des grandes surfaces comme géant, carrefour…
Partie administration : gestion des magasins, enceintes, salariés, taches, processus, produits, nomenclatures.
Partie chef rayon et partie chef magasin pour générer le planning.
Créer des composants graphiques personnalisés en Primefaces.
Migration de la plateforme GoogleAppEngine en Cloud et objective vers Hibernate et Mysql.
Environnement
Eclipse, SVN, Maven, JSF 2.2, Spring, Hibernate, GoogleAppEngine, GWT (MVP), Prime face, Apache Tomcat, Glassfish, MySQL.
Du 09/2011 au 04/2013 : Chercheur en style architectural MIRACLE
Projet
Client
Migration silencieuse et non destructive des styles architecturaux Labo MIRACLE
Responsabilités
Etude approfondie des architectures oriente service, oriente représentation, Architecture pilotée par les évènements et complexe event processing.
Etudier la méthode Domain Driven Design pour mettre en amant le choix de l’architecture logiciel dans un projet agile. Mettre une architecture hexagonale ou le core du domaine est au centre et les technologies sont utilisées comme des adapter et ports.
Utiliser les patterns Entités, Objets-Valeurs Services Modules Agrégats Fabriques Entrepôts…
Etude approfondi des modelés MVC2, MVP, MVVM
Développer une microarchitecture MVC2 en orienté aspect de sorte que le style architecturale est isolé dans des aspects et tissé en temps d’exécution. Cette solution a résolu la dispersion et l’enchevêtrement du code des patrons. Cette solution est implantée dans un jeu en réseaux de territoire.
Implémenter toutes les patrons GOF en orientés Aspect avec AspectJ.
Environnement
Java, eclipse, RMI, Tomcat, Swing, AspectJ.
Du 06/2011 au 07/2011 : Expert JEE ANCE
Projet
Client
Sécurité en JEE
Agence Nationale de Certification Electronique ‘A.N.C.E.’
Responsabilités
Cursus de formation pour certifier en SCJP 6.0
Animer des ateliers de travail sur les technologies Spring, Hibernate, Flex, Struts pour sécuriser des applications J2EE avec les signatures numériques et la cryptographie.
Environnement
Spring, Hibernate, EJB, POJO, WEB SERVICES, JMS, jboss, JSP, servlet, Flex, Struts …
Du 03/2011 au 04/2011 : Consultant JEE TUCS
Projet
Client
Migration en EJB 3.0
Tunisian Universal Communication Systems
Responsabilités
Animer des ateliers de travail avec une dizaine de développeurs pour maitriser l’architecture à base des composants EJB sur le serveur JBOSS. On a développé des démos sur EJB session, JPA, JMS, MDB….
Migration des procédures stockées PL/SQL vers Hibernate(HQL).
Implémentation des services métiers
Environnement
EJB session, JPA, JMS, MDB, eclipse.
Du 02/2011 au 03/2011 : Consultant JEE BNA
Projet
Client
Global banking
BANQUE NATIONALE AGRICOLE
Responsabilités
Coaching d ‘une équipe de 9 ingénieurs pour concevoir à base d’interface et abstraction avec le Framework Spring. Coaching du développement de la couche persistance :
• Gestion des verrous Hibernate pour corriger l’anomalie LOST Updates
• Gestion du versionning au niveau applicatif
• Migration vers les sessions longues durées et le patron ThreadLocal.
Environnement
Spring orm jdbc, jpa, Hibernate, ANT, IVY, oracle …
Du 01/2011 au 02/2011 : Consultant JEE Sungard, Assurance, Comar
Projet
Client
Sungard
Responsabilités
Mission d'accompagnement pour mettre en œuvre des bonnes pratique de l’utilisation des Frameworks Hibernate , Spring, Maven.
Les designs patterns du Spring : IOC, AOP, JDBCTemplate
Environnement
SpringORM, IOC ,Spring jdbc, Hibernate …
Du 04/2010 au 10/2010 : Consultant JEE TMI (partenaire Oracle en Tunisie)
Projet
Client
programme national de certification des compétences
TMI (partenaire Oracle en Tunisie)
Responsabilités
Animer des cursus de formations (OCJA, OCJP 6.0) pour les formateurs de TMI pour mettre en exécution le programme national de certification des compétences.
Environnement
Java/JEE, Threading, java Template, collections …
Du 12/2009 au 02/2010 : Consultant JEE STEG
Projet
Client
DATS : Gestion des candidats
GAMMA
Responsabilités
Certification d’une équipe de 12 personnes.
Mission d'accompagnement pour l’analyse et passage du compétence de l’architecture et les technologies utilisées du Projet GAMMA.
Certifier une équipe de 12 personnes.
Mission d'accompagnement pour l’analyse et passage du compétence de l’architecture et les technologies utilisées du Projet GAMMA.
Coaching de l’équipe pour intégrer des design patterns J2EE dans les différentes couches Struts, EJB, Jboss, JMS, and Design pattern J2EE, Oracle.
Environnement
EJB, Spring , Hibernate , Struts ,JMS,JBOSS, Oracle …
Du 07/2009au 11/2009 : Consultant JEE Poste
Projet
Client
Gestion Des comptes
POSTE TUNISIENNE
Responsabilités
Mission d'accompagnement et coaching d’une équipe de 4 ingénieurs pour leur permettre de maintenir et ajouter des fonctionnalités de l’application Gestion Des comptes en utilisant les patterns (Core J2EE Patterns).
Environnement
Eclipse, STRUTS, EJB, Oracle. Core J2EE Patterns.
Du 07/2008 au 08/2009 : Développeur Senior java/JEE ItTrainedEye
Projet
Client
e-commerce, Téléshopping
TunisiaShopping, SUPCOM,
Responsabilités :
Développement d’un site e-commerce: gestion des ventes, produits, familles, catégories, factures, livreurs, paiement électronique…
Développer une application web pour la planification et la réservation du stock suivants commande clients, Gestions des colis, mandats, reçus, acomptes, factures. (De l’étude du besoin jusqu’ à livraison)
Développer d’un outil de détection de faille de sécurité dans les protocoles d’authentification cryptographiques : analyseur lexical, syntaxique, sémantique, générateur de l’arbre de trace, recherche de branche d’attaque
Participer dans les développements et correction des modules d’association Ataazour :
Développer une application J2EE WEB avec les frameworks JSF 2.0, PrimeFaces, Hibernate:
Gestion administrative : gestion des adhérents, membre de l’administration, comité, sujets,
Gestion des dépenses : gestion des bénéficiaires, logement, intervention, revenue, type besoin ..,
gestion des importations : gestion des subventions, bienfaiteurs, recette
gestion des réunions et PV.
Environnement
Java/JEE, Spring, Hibernate, Tomcat, MySQL, CSS, SVN.
Du 01/2005 au 06/2008 : Développeur Confirmé java/JEE Aprico Consulting
Projet
Client
ClearPriority
Aprico Consulting en Belgique Offshore
Responsabilités
concevoir et Développer la couche cliente en Flex avec le (remoting)
Mettre en place une microarchitecture Cairngorn (Observer, CompositeView)
Développer le reporting (IReport + jasper)
Développer la couche persistance en Hibernate et la couche service et transactionnelle en Spring.
Implémenter une architecture à base du chargement anticipative en utilisant le mode asynchrone et le pattern page per page Iterator.
Environnement
Flexbuilder, eclipse, Flex, Spring, Hibernate, MDB (JMS), Jboss 4.0, PostgresSQL, Oracle, Mysql.
Du 11/2003 au 11/2004 : Développeur java/JEE MASS
Projet
Client
Automatisation bureau d’ordre
Ministère des affaires sociales Tunisie
Responsabilités
Développer une application web gestion du bureau d’ordre sur le serveur d’application Domino. Planification des taches, Gestion électronique des documents, workflow, gestion de processus administratifs et financiers…
Messagerie Lotus notes.
Environnement
IBM Serveur d’application Domino, WebSphere Servlet, jsp, JavaScript HTML, JDBC, base de données documentaire.
Niveau d’intervention
Etudier les expressions de besoins
Concevoir et mettre en œuvre une architecture
distribuée
scalable
hautement disponible
fault tolerant
secure vis à vis d’un modèle de menaces prédéfinis
Stability Patterns
Conception : dossiers d’architecture, de conception technique, de sécurité,
d’exploitation
POC : veille technologique, évaluation et challenge de solutions proposées par les éditeurs de logiciel
Développement
Réalisation : scénarios de tests, jeux de test, programmes
Support : réponses aux demandes d’assistance, correction d’anomalies
Assurer le reporting de son activité
Vérifier la qualité des développements: temps de traitements, optimisations et contrôles des données
Synthétiser en un document l'architecture technique
Expert en test, montée en charge, tuning et monitoring de performances
Formation professionnelle
Décembre 2018
Formation spring one Tour
Janvier 2018
Formation google cloud
Mars 2017
Formation dynatrace
Avril 2017
Formation neoload
Juin 2018
Confluence et jira
Juin 2016
Git, jenkins et continuos integration
DIPLOMES ET FORMATIONS
Décembre 2018
ENIS : Mastère en Ingénierie Logicielle Avancée.
Juin 2003
Juin 1998
FST : Ingénieur en Génie Informatique
Baccalauréat, section Sciences expérimentales.
LANGUES MAITRISEES
Anglais
Bon niveau
Allemande
A2