Mohamed Moustapha - Architecte J2EE

Ref : 110729D002
Photo de Mohamed Moustapha, Architecte J2EE
Compétences
Expériences professionnelles
  • Expérience professionnelle

    Baamtu (Depuis 2008)
    CEO Baamtu

    Baamtu est société d’ingénierie logicielle proposant des services et des produits digitaux. Nous accompagnons des entreprises, partout dans le monde. J’interviens au niveau commercial mais également technique. J’ai une longue expérience de l’architecture SI et de la valorisation des données. Je pilote la mise en place de stratégie digitale et gouvernance de données de nos clients.

    Orange Côte d’Ivoire (Décembre 2017)
    Architecte Big Data

    Définition de l’architecture Big Data de OCI pour le BI de l’entité Revenu Assurance. La solution doit pouvoir intégrer des flux provenant de différentes applications, bases de données, Terradata et équipements réseau. Un croisement est effectué par la suite en appliquant des règles métiers en utilisant Drools.
    Aspect management gestion de projet
    Élaboration/suivi du planning
    Participation à l’écriture du document d’architecture technique
    Proposition d’une architecture lambda
    Aspects techniques
    Proposition architecture Big Data auto-scalables

    Pig, Hive, Kafka, Spark (Core, SQL, Streaming), ElasicSearch, Kibana, Drools,

    JCDecaux (Février 2015 à Septembre 2016)
    Lead architecte Big Data

    Partant de zéro mettre en place une cellule Big Data pour le leader mondial du Outdoor Advertizing. Avec plus de 400 000 dispositifs publicitaires dans le monde entier, JCDecaux détient une mine de Data. Dans un premier temps mon travail a consisté à vulgariser l’approche Big Data en particulier la notion de Datalake, au près du métier. Nous avons commencé par un POC pour rendre near realtime un mécanisme d’agrégation de données de différentes sources, qui prenait 24 heures avant.
    Après le POC j’ai défini la stratégie et les architectures Big Data à mettre en place afin de répondre aux différents use cases. Ces architectures reposent essentiellement sur le cloud et l’écosystème Hadoop. L’architecture était basée sur Spark/Kafka pour sa rapidité avec stockage sur HDFS, S3, HBase et ElasticSearch. En termes de charge, nous devons gérer 600 millions de transactions/jour. Nous avons mis en place différents mécanismes de monitoring/alerting du cluster hadoop se basant sur Ambari. Les clusters mis en place sont auto-scalables suivant la charge. Nous avons branché différents outils de BI au cluster : Kibana, Tableau, Excel et Business Object. Nous avons également participé au choix de la distribution Hadoop à mettre en œuvre, Hortonworks, suite à une étude comparative avec Cloudera et AWS
    Aspect management gestion de projet
    Élaboration/suivi du planning
    Formation et support ELK (ElasticSearch Logstash et Kibana)
    Participation à l’écriture du document d’architecture technique
    Proposition de plusieurs architectures et choix de celle à implémenter

    Aspect Méthodologiques
    Mise en place d'une méthodologie agile avec Scrum
    Coordination d’une équipe de 3 architectes

    Aspects techniques
    Proposition d’architectures Big Data auto-scalables
    Pig, Hive, HBase, Zookeeper, Kafka/Confluent, Spark (Core, SQL, Streaming), ElasicSearch, Kibana
    Avro, Cloudbreak, AWS, NodeJS, Ambari, Hortonworks
    Suivi et analyse de la production avec Logstash, ElasticSearch et Kibana

    ******** technologies (Février 2013 à Févier 2015)
    Lead architecte Java/JEE & Suivi de production

    Dans l’entité architecture et suivi de production de la BU Client et Services, j’avais pour mission d’être le référant technique d’une vingtaine de projets. Nous travaillions directement pour la SNCF et pour d’autres clients tels que Thalys. Notre BU avait en charge tout ce qui est programme de fidélisation et d’abonnement de la SNCF mais également des informations voyageur. Mon rôle était d’être garant de l’architecture applicative, de la qualité et de la bonne exploitation des applications. Nous travaillions avec des centres services. De ce fait j’intervenais dès la phase d’étude pour la définition de l’architecture cible. Nous avions mis en place un sas d’intégration avec Jenkins, Sonar et Sqale afin de pouvoir mesurer la qualité des livrables. Je mettais en œuvre les tests d’architecture avant les mises en production. Je participais également à la définition de l’architecture technique.
    J’ai également défini et aidé en la mise en place de la solution globale d’authentification centralisé sur ******** à base de OpenAM
    Enfin je mettais en œuvre les éléments nécessaires pour une bonne exploitation de l’application en termes de healthcheck et log. Nous utilisions une centralisation des logs à base de Flume, Hadoop et ElasticSearch. J’ai fait une étude afin d’avoir les métriques de prod en temps réel en se basant sur statd, logstash, Elastic Search, Kibana et Graphit.
    Aspect management gestion de projet
    Élaboration/suivi du planning
    Formation à JBoss Rules aka Drools
    Formation et support ELK (ElasticSearch Logstash et Kibana)
    Participation à l’écriture du document d’architecture technique
    Proposition de plusieurs architectures et choix de celle à implémenter

    Aspect Méthodologiques
    Mise en place d'une méthodologie agile avec KANBAN
    Coordination d’une équipe de 3 architectes

    Aspect techniques
    Proposition d’architectures orientées web et mobile hautement disponibles
    Mise en place d’un politique de logging avec log4j et logback
    Mise en place d’une base documentaire avec Nuxeo
    Gestion de base de données NoSql avec MongoDB
    Authentification avec OpenAM (aka OpenSSO)
    Centralisation des logs avec Hadoop, Flume, Syslog
    Suivi et analyse de la production avec Logstash, ElasticSearch et Kibana
    Gestion des règles avec JBoss Rules AKA Drools
    Jenkins, Sonar, SQale

    Châteaux-Hôtels et Collection (Octobre 2012 à Janvier 2013)
    Architecte Java/JEE & Coach Agile

    J’avais pour mission de proposer une architecture orientée service suite à une fusion de deux sociétés : Châteaux Hôtels Collections (CHC) et Exclusive Hotels (EH). Les deux systèmes proposent une centrale de réservation d’hôtels et de salles de séminaire en France et en Europe. Comme client, nous avions des tours operators, des GDS (via Pegasus), des IDS (comme ********, ********). Le SI CHC utilisait une solution propriétaire complétement infogérée. Le SI EH était développé en interne et se base sur des techno Java et PHP. Voici les sujets que j’ai eu à mener lors de cette mission :
    Proposition d’architecture cible orientée service en prenant en compte les problèmes de performances existant :
    Utilisation de cache (MongoDB) pour servir les hôtels et les tarifs.
    Passage à une architecture N-Tiers avoir une couche de service et d’accès aux données entre les applications de présentation et la base de données.
    Spécialisation des applications par domaine fonctionnel
    Identification et spécification des services exposés et consommés
    Mise en place d’un ESB pour la communication des services et des partenaires externes.
    Spécification d’un outil de monitoring de la production en temps réel se basant sur Hadoop+MongoDB
    Mise en place de SCRUM formation de l’équipe à la méthodologie.
    Mise en place de bonne pratique logicielle :
    Bonne pratique GIT
    Mise en place d’un environnement d’intégration continue (Jenkins, Sonar, Nexus)
    Mise en place d’un process et d’environnement de staging (Dev, Integ, Recette, Pré-prod)
    Préconisation de l’infra de prod pour le futur SI
    Proposition d’une solution optimisée pour le moteur de recherche d’hôtel du frontal WEB

    Aspect techniques
    Spring, Rest, Jboss Rules, CXF, iBatis, Jersey + Jax-RS
    Tomcat, Mysql.
    Big Data : MongoDB, Hadoop
    ESB, Moteur de règles (JBoss Rules)
    Maven, Jenkins, Sonar, Review Board


    ******** technologies (Mars 2012 à Octobre 2012)
    Architecte Java/JEE au niveau de la DSI
    Dans un groupe d’architectes, j’avais pour mission de gérer, de la phase d’étude au suivi de production, la réalisation de nouvelles versions des sites (premier site d’e-commerce en France) ******** et ********. A partir des spécifications fonctionnelles, je devais valider la faisabilité et proposer des architectures en prenant en compte l’existant. Un chiffrage et un document de cadrage technique étaient les livrables. J’avais aussi comme responsabilité la validation de documents de conception détaillée et assister les équipes de dev. Au fur et à mesure des développements, je devais valider la qualité logicielle par une usine logicielle et relecture de code. Voici quelques problématiques sur lesquels nous avions travaillées :
    Utilisation d’un ESB à la place d’EJB pour l’intégration et l’orchestration de services partenaires
    Utilisation de JMS pour l’envoie de mail asynchrone afin d’améliorer les performances
    Intégration de paiement Paypal dans le site ********
    Mise en production par ferme de serveurs (160 instances)
    Gestion de règles de XSell complexes par un moteur de règles (JBoss Rules aka Drools)
    Expositions de webservices multi-versionnés (CXF)
    Analyse de log de production
    Mise en place d’une politique de revue de code pour améliorer la qualité logicielle


    Technologies utilisées :
    Spring, Strusts2 (+FTL), Rest, Jboss Rules, CXF, iBatis,
    ActiveMQ, Varnish, Drupal, WAT (easyGate), HaProxy
    Weblogic, Tomcat, Oracle.
    Maven, Jenkins, Sonar, Review Board
    QlikView

    Groupe Caisse d’Epargne Technologies (Septembre 2011 à Décembre 2011)
    Architecte SI dans la BU SIE (Système d’Information et Edition)

    J’avais pour mission de concevoir une plateforme mutualisée de moteur de règles dans un milieu hétérogène (.Net, Java) au sein du SI globale de la caisse d’épargne. Cette plateforme prend en compte l’édition, la propagation et l’exécution des règles. Dans un premier temps j’ai apporté mes conseils quant au choix du produit. Ensuite j’ai formé les équipes projet à l’approche par règles métier. J’ai proposé également la mise en place de bonnes pratiques java en mettant en place une usine logicielle et la méthodologie agile SCRUM. J’ai fini par la réalisation de la première version (Java, Camel, CXF, Play! Framework, SoapUI, Maven, JUnit, Jenkins, Sonar, Nexus)
    Aspect management gestion de projet
    Définition des différentes phases du projet
    Élaboration/suivi du planning
    Formation à JBoss Rules aka Drools
    Etablissement de processus (édition et propagation)
    Participation à l’écriture du document d’architecture technique
    Proposition de plusieurs architectures et choix de celle à implémenter

    Aspect Méthodologiques
    Mise en place d'une méthodologie agile avec SCRUM
    Gestion de projet Scrum
    Intégration continue : mise en place de l'outil Jenkins (aka Hudson) permettant de compiler et d'exécuter les tests unitaires de façon continue. Automatisation du déploiement des bundles (Apache, Tomcat, MySql) respectant ainsi les principes du continuous delivery ou devops.
    Utilisation de Sonar pour le suivi des métriques qualités
    Mise en place d'un environnement de travail intégré (choix et déploiement des outils)
    IDE Eclipse (environnement Java/J2EE)
    Plugins TFS
    Outil de vérification de la qualité du code (Checkstyle, PMD et Findbugs) intégré à l'IDE.
    Outils de calcul de métriques du code source (Metrics)
    Outil permettant de visualiser dans l'IDE (par coloration du code) la couverture des tests unitaire (EclEmma)
    Mise en place et configuration d’un proxy maven avec Nexus

    Aspect techniques
    Proposition d’architecture orientée web hautement disponible et load balancé sur deux sites
    Apache Camel comme framework d’intégration avec la stack CXF pour une exposition en Soap et Rest. Le choix de Camel s’est justifié par le fait d’utiliser des patterns d’intégration d’entreprise standardisés comme le messaging, Pipe & filters, etc
    Utilisation de Spring (combiné à Camel) pour la gestion des beans et des properties
    EhCache pour la gestion de cache
    Stax pour parser des flux XML
    Marshalling/Unmarshalling avec XStream
    Pour la partie gouvernance des règles, mise en place d’une application web d’administration du repository de règles avec le framework Play !
    JUnit et SoapUI pour l’automatisation des tests U, d’intégrations et fonctionnels

    ******** technologies (Avril 2009 à Septembre 2011)
    Manager de l’équipe technique de la BU Innovation R&D

    Notre rôle était d'animer l'innovation fonctionnelle et technique au sein de ******** technologies. En deux ans, nous avons produit une dizaine d'applications (calendrier des meilleurs prix, push tarifaire, Hexago, Lab, Appli facebook, compagnon android, Hexapad (Ipad)) aussi bien web que mobile (Androïd, IPhone OS) mais également des applications intégrant Facebook et internes à Facebook (social commerce). Nous avons également fait du HTML5 et du Flex.
    Aspect management et gestion de projet
    Responsable de l'équipe technique d'innovation R&D. J'ai sous ma responsabilité 4 à 5 développeurs et travaille en étroite collaboration avec l'équipe de chefs de projet et le département markening qui sont nos clients.
    Scrum Master.
    Élaboration/suivi du planning
    Responsabilité des livrables (Versions Beta, RC, suivi et qualification des anomalies/évolutions, packaging)
    Relation avec l'équipe « product owner » responsable des spécifications fonctionnelles
    Encadrement/Recrutement/Formation des collaborateurs
    Relation avec équipe offshore
    Responsabilité de la validation technique (tests unitaires/d’intégration)


    Aspect Méthodologiques
    Renforcement de la mise en place d'une méthodologie agile, sensibilisation des équipes afin d'adopter les bonnes pratiques liées à ces méthodes
    Gestion de projet Scrum (backlog produit, itérations de 2 semaines, « stand up meeting » & « burndown chart » quotidiens, calcul de vélocité lors de la rétrospective de sprint, ...)

    Mise en place de stratégies de tests (tests unitaires basés sur le framework JUnit, utilisation de l'outil Mockito, test d’intégration et test d’IHM automatisés, calcul de couverture automatique via l'outil Cobertura)
    Renforcement de la qualité par la mise en place de revues de code automatisées (Review board)
    Intégration continue : mise en place de l'outil Jenkins (aka Hudson) permettant de compiler et d'exécuter les tests unitaires de façon continue. Automatisation du déploiement des bundles (Apache, Tomcat, MySql) respectant ainsi les principes du continuous delivery ou devops. Utilisation de Sonar pour le suivi des métriques qualités
    Outil collaboratif permettant la synthèse des artefacts du projet : utilisation d'un wiki (Confluence) comme base de connaissance du projet.
    Mise en place d'un environnement de travail intégré (choix et déploiement des outils)
    IDE Eclipse (environnement Java/J2EE)
    Plugins Subclipse & Subversive
    Outil de vérification de la qualité du code (Checkstyle, PMD et Findbugs) intégré à l'IDE.
    Outils de calcul de métriques du code source (Metrics)
    Outil permettant de visualiser dans l'IDE (par coloration du code) la couverture des tests unitaire (EclEmma)
    Test d’architecture avec VusialVM, JMeter

    Aspect techniques
    Responsable des architectures (utilisation de patterns JEE et GoF)
    J’ai travaillé avec les frameworks web les plus reconnus Grails, Struts 2, Spring MVC, Spring ROO, FreeMaker.
    Egalement, j’ai travaillé avec les techno les plus en vogues SPRING, EJB3, JMS, MemCached, EHCache , Hebernate,iBatis.
    Intégration de services : Rest, Soap, Hessian, ProtoBuf, CXF, ESB
    Mobile : Android, IPhone OS
    Sécurité : Spring Security, SSO (CAS), HTTPS
    Moteurs de règles : JBoss Rules (aka Drools)
    Serveurs d’applications : Tomcat, Weblogic, JBoss, Glassfish, Jetty
    Et ceci dans un environnement à forte charge et haute dispo : Load Balancing, Clustering, Multithreading, Test de charge ...
    Optimisation des performances / Analyse de complexité / Audit de code
    Participation à la définition des architectures techniques (DAT)
    Membre du club des experts de ******** technologies. Ce club a pour objectif de réunir les experts les plus reconnus de la boîte afin de se pencher sur les problèmes rencontrés et faire de la veille. Nous avons eu à travailler sur :
    Cloud computing
    NoSQL
    HTML5
    Vaadin
    Business Rules Management System

    ******** technologies pour le compte de Alti (Mars 2008 à Avril 2009)
    Architecte Java/JEE dans la cellule Architecture transverse
    Avec deux autres architectes, notre rôle était d’assurer l’harmonisation des architectures applicatives au sein de ******** technologies. Cela passait par fournir un ensemble de frameworks « maison » réutilisables, pour pas que chaque BU développe sa propre solution alors que y’en a une déjà utilisé par une autre BU. Mais également la mise en place d’applications d’admin ou de gestion de configurations. Nous avons également participé à la refonte du SI par la proposition d’architecture cible et un ensemble de benchmarks technologiques. Durant cette période, j’ai utilisé les technologies suivantes :
    ServiceMix, CXF, Business Rules (JBoss Rules), Weblogic, Tomcat, JBoss
    SSO, CXF, JPA, Weblogic, Oracle.
    AspectJ, JMX,
    Agile Management

    Novembre 07 – A ce jour GENITECH / GENIGRAPH
    Expert Technique
    Migration d’une application Web vers les technologies Web 2.0 :
    • Etude de frameworks AJAX afin de faire un choix adapté
    • Utilisation de Dojo Toolkit pour les éléments graphique et la mise en place de mécanismes asynchrones (lazy loading de listes de valeurs de plus de 10000 valeurs)
    Environnement technique : J2EE, Ajax, DOJO Toolkit.

    Mise en place d’une politique de haute disponibilité de la persistance dans une application Web J2EE :
    • Mise en œuvre du middleware SEQUOIA pour le load balancing de base de données. L’objectif était d’utiliser plusieurs backends pour la persistance avec réplication de données et changement automatique de backends.
    Environnement technique : JAVA, JBOSS, SEQUOIA.

    Octobre 04 – Novembre 07 GENITECH / GENIGRAPH
    Ingénieur d’études et de développement puis Expert Technique
    Gestion de règles métier dans le cas d'un logiciel de génération d’e-services
    • Intégration de l’approche par règles métier qui consiste à permettre à un non informaticien (l’expert métier) de gérer lui-même le comportement de l’application.
    • Mise en place d’un formalisme flexible de règles métier avec générateur de ce dernier vers le formalisme du moteur de règles cibles (JRules, JBoss Rules et Jess).
    • Spécification, conception et développement d’un éditeur de règles en langage naturel sous forme de plugin Eclipse
    • Mise en place d’une politique d’intégration continue (continious build) avec Cruisecontrol.
    Environnement technique : J2EE, J2SE, JSF, Struts, XML, JRULES, DRools, JUnit, SWT, JFACE, Eclipse, Ant, CVS, Cruisecontrol, POI, iText, XML/XSLT, MOF, EMF.

    Avril 04 – Octobre 04 GENITECH / GENIGRAPH
    Ingénieur d’études et de développement
    • Mise en en place d'un système expert à l'aide des "Business Rule" (règles métier) pour automatiser le traitement de feuilles de soins pour anciens combattants.
    • Mise en place d'une plate-forme de test pour ces règles métiers.
    • Conception et développement d’un outil d’intégration de composants logiciels dans le cadre d’un produit de gestion de configuration logicielle en utilisant Java, XML, JAXB, Eclipse, Junit. Cet outil permet aussi le déploiement d’un ensemble de composant (génération de war, ear, jar, zip …).
    Environnement technique : Java, JRules, Oracle, JUnit, XML, DBUnit, JAXB

    Février – Avril 2004 GENIGRAPH
    Ingénieur d’études et de développement
    • Réalisation d’un service de gestion des utilisateurs, de leurs profils et de leurs rôles pour intégration dans une plateforme de procédure d'e-administration.
    Environnement technique : Java/J2EE, JMX, JAAS, Struts, Jonas, Jboss, Eclipse, UML

    Avril – Juin 2003 DRIMM BORDEAUX
    Ingénieur d’études et de développement
    • Réalisation d'un logiciel de monitoring pour un calculateur parallèle IBM Regatta.
    Environnement technique : C++, C, PHP, MySQL

Études et formations
  • FORMATION
    Formation Continue

    2007 Diplômé de Doctorat en Informatique, spécialité Génie logiciel – Université de Bordeaux I

    Formation Initiale
    2004 Diplômé de DESS en Informatique, spécialité Ingénieur de développement – Université de Bordeaux I

    2003 Diplômé de Maîtrise en Informatique – Université de Bordeaux I


    2013 60 jours Certification MongoDB Développeur et Administrateur (10-Gen)
    2011 4 jours Certification Sun Java Architect (SUN)
    2010 4 jours Java performance tuning animée par Kirk Pepperdine (Xebia)

    COMPETENCES
    Langages JAVA (JSP, EJB), XML, XSLT, C, Shell, O’Caml, Lisp, PHP
    Serveurs d’application JBoss, Jonas, Weblogic
    Frameworks Struts, JSF, JRules, Drools, JMS, JAAS, JMX, RMI, POI, iText
    IHM SWING, SWT, JFace
    Technologies Internet Ajax (Dojo Toolkit, GWT), HTML, PHP, XHTML
    Base de données Oracle, MySQL, PostGreSql, Data Binding (JAXB, XMLBeans)
    Outils de développement Eclipse, NetBeans, Emacs
    Plateformes Java J2EE, J2SE, PHP
    Architectures Model Driven Architecture, architectures distribuées, architectures n-tiers, Intranet/Internet/Extranet, client/serveur multi-niveaux, Web services
    Environnement projet Ant, Cruisecontrol, CVS, JUnit, DBUnit
    Méthodologies Design Patterns, UML, IDM ou MDA
    Optimisation Load balancing, clustering
    Langues Anglais courant, Espagnol lu et écrit, Arabe lu et écrit
    Niveaux d’Intervention et méthodologies
    Expertise, Encadrement technique, Transfert de compétences
    Analyse, Conception, Réalisation, Tests et intégration

    Autres compétences
    • Capacité d’adaptation, Capacité à travailler en équipe
    • Facilité de communication, d’écoute et d’expression
    • Pédagogie
    • Rigueur

D'autres freelances
Consultant J2EE

Ces profils pourraient vous intéresser !
CV Développeur DevOps
Rida

Développeur DevOps

  • DUNKERQUE
C++ JAVA C# CI/CD REACT.JS Angular SQL PL SQL .NET J2EE
Disponible
CV Architecte JAVA
Fabien

Architecte JAVA

  • ORLÉANS
JAVA J2EE REST Spring Boot SOA APACHE KAFKA POSTGRESQL AGILE DOCKER CASSANDRA
Disponible
CV Développeur full stack JAVA
Abdallah

Développeur full stack JAVA

  • SADA
JAVA J2EE Spring Boot API RESTful REACT.JS ORACLE SQL PHP JAVASCRIPT LINUX
Disponible
CV Consultant / Developpeur FullStack
Chaima

Consultant / Developpeur FullStack

  • RUEIL-MALMAISON
JAVA SQL J2EE UNIX Angular JAVASCRIPT SQL SERVER
CV Expert JAVA
Sami

Expert JAVA

  • LILLE
JAVA J2EE C SQL Angular AGILE CI/CD LEAD MANAGEMENT JAVASCRIPT POSTGRESQL
CV Ingénieur de développement SAP CX
Aymen

Ingénieur de développement SAP CX

  • VILLEJUIF
API RESTful SCRUM SAP CX HYBRIS SPRING J2EE JAVASCRIPT SQL SERVER IntelliJ IDEA MAVEN
CV Consultant talend
Firas

Consultant talend

  • VITRY-SUR-SEINE
JAVA SQL J2EE TALEND TALEND DI ORACLE UNIX AGILE BIG DATA TALEND MDM
CV Développeur fullstack
Abdelhadi

Développeur fullstack

  • COLOMIERS
JAVA Spring Boot J2EE PYTHON Angular SQL C# TypeScript REACT.JS
CV Développeur Full Stack JAVA/J2EE
John

Développeur Full Stack JAVA/J2EE

  • METZ
J2EE JAVA SQL DOCKER GIT REST SOAP PYTHON C# MAVEN
CV Directeur de projet
Kristen

Directeur de projet

  • ASNIÈRES-SUR-SEINE
MS PROJECT CRM MAITRISE D OUVRAGE SECURITE Cybersécurité AGILE DATACENTER PMO (PROJECT MANAGEMENT OFFICE) CMMI J2EE