11 ans en France (6 ans en ESN (SSII) chez Ouest-France (SIC), Hotels B&B, Adventiel, Cedricom, NetPME, CG44 et Pagesjaunes (3 ans +), puis 3 ans chez Pagesjaunes en interne (Big Data)) et fin près de deux ans chez Astellia/Exfo.
Pédagogue, curieux, motivé par la résolution de problèmes complexes, aime apprendre et partager.
Responsabilités : • Collaborer étroitement avec les principaux architectes et développeurs seniors des principaux centres de développement dans le monde entier pour améliorer les déploiements de bases de données et de Big Data, accroître l'efficacité et introduire les meilleures pratiques. • Contribuer à la conception d'un traitement Big Data en temps réel en utilisant les technologies actuelles de traitement de flux de données distribuées. • Évaluer les nouvelles technologies. Concevoir, coordonner et exécuter des projets pilotes, des prototypes ou des preuves de concepts, valider des scénarios spécifiques. • Documenter et partager les meilleures pratiques et connaissances techniques avec les équipes R&D et autres parties prenantes.
Responsable de la nouvelle architecture Big Data (temps-réel) pour fusionner les produits Astellia et Exfo existants dans une solution commune.
Réalisation de bench de performance sur Elasticsearch et HBase (Cloud) pour supporter une ingestion de plus de 380 000 events/s avec des pics à 800 000 events/s
Conception de la solution d'un Query Engine permettant de requêter les données en temps-réel pour les outils de Troubleshooting
Proposition de mise en place de Apache Carbondata pour répondre aux besoins de troubleshoot et d'analytics. Réalisation de bench de performance sur Carbondata. Ajout du support pour Azure Data Lake Storage afin de répondre aux besoins des clients sur Azure.
Mise en place d'un cluster Kubernetes pour répondre aux nouveaux modèles de déploiement pour les solutions Big Data et Analytics.
Proposition et évaluation d'une solution Analytics temps-réel utilisant Apache Druid dans un environnement "conteneurisé".
Proposition, évaluation et mise en place d'une nouvelle solution de Troubleshooting basée sur Elasticsearch (sous Kubernetes). Formations et montée en compétence sur Elasticsearch et Kubernetes par mes soins.
Responsable et administrateur des clusters Cloudera (CDH), Mesos et Kafka permettant de collecter l'audience web, applicative (mobile) et partenaires Pagesjaunes en temps réel (Hadoop, Kafka, Spark Streaming (Scala), Elasticsearch...).
Responsable de la transition de la solution orientée batch (Pig/Hive) vers une solution temps réel via Apache Spark Streaming pour la collecte et le traitement de l'audience Pagesjaunes. C'est 360 millions de messages / jour (soit plus de 350 Go collectés) en moyenne, avec des pics à plus de 40 000 messages par seconde.
Conception et architecture d'une solution centralisée d'événements nommée Horus : du commit au déploiement en production, de l'information à la notification d'erreur critique, de la mise en production à l'incident matériel. Horus nous permet d'avoir une vue globale sur nos environnements (physique / logiciel / qualité de nos données générées). Cet outil, construit principalement avec des composants open-source, gère : nos rapports qualité, nos alarmes, nos reprises automatiques. Il est au coeur de nos analyses en production.
Architecte et responsable technique de l'équipe de développement de collecte et d'analyse de l'audience Pagesjaunes.
Travail sur une solution d'alerting basée sur la prédiction des audiences en temps réel via réseaux neuronaux (Deeplearning) à base de LSTM, développée avec Tensorflow et Keras.
Animation de la veille technologique (principalement autour du Big Data).
Encadrement et formation de nouveaux arrivants
Conception et mise en place d'une DMP orientée utilisateur (CMP) pour mise en place début 2018
Etude et planning de migration de nos clusters dans le Cloud pour début 2018
Présentation de la solution technique faite au Breizhcamp 2017 Rennes visible sur https://www.slideshare.net/yannvds (contient la présentation sur youtube également)
Gestion éditoriale : solution de gestion de contenu éditoriale orientée composant.
PagesBlanches : garant de l’architecture et référent technique sur la refonte complète de PagesBlanches avec migration de Struts à JSF2. Optimisation des performances JSF afin de tenir la charge spécifique du portail PagesJaunes, soit 5 millions de visite par semaine sur PagesBlanches.
SEO Page Thématique : Génération de page permettant d’améliorer le référencement du contenu PagesJaunes.
Suivi d’architecture sur la modularisation des briques techniques et métiers, et exposition via API Rest, refactoring important (réduction de la dette technique et suppression de l’adhérence des dépendances à livrer, amélioration de la testabilité des couches métiers).
Architecture sur les nouvelles pages détaillées orientées média (JSF / MongoDB / Pertimm, Rest, API Recherche).
Architecture NewPJ : solutions de déploiement incrémental et progressif, load balacing dynamique et feature flipping
MISSIONS
Rédaction des spécifications complètes, architecture et conception de la solution de gestion éditoriale, suivi des développements (relectures techniques et audits) et force de propositions sur les points techniques et fonctionnels.
Référent technique sur les projets JSF : PagesBlanches, Interfaces d’administration de la gestion éditoriale (Primefaces), SEO (pages thématique), formulaires hébergés, FDM...
Audits de code, rédaction d’un guide de développement contenant les bonnes pratiques JSF spécifique pour PJ et les solutions aux problèmes fréquemment rencontrés.
Réalisation de benchs de performance (nominal, montée en charge, endurance), consommation mémoire, optimisation du code interne et patch de projets open source (dont Mojarra , Prettyfaces et Tomcat) afin de pouvoir tenir la charge spécifique de PagesBlanches et FDM.
Préconisation sur l’infrastructure dans le data-center
Assistance à la mise en production et monitoring des performances.
Travail sur la refonte de la formation JSF2 et formation interne à 15 personnes sur JSF2 sur 2 sessions de 3 jours.
Suivi des projets techniques et fonctionnels du murissement avec l’équipe marketing, cadrage technique, conception, dév. et jusqu’à la mise en Production.
Mise en place d'un solution permettant d'être stateless à terme sur les serveurs d'application : Espace de Mémoire Partagée
Référent technique sur les sujets JSF, MongoDB, Redis, OpenResty.
Conseil Général 44 (En parallèle avec mission Architecture PagesJaunes)
Mars 2012
à décembre 2012
Nantes
France
Site institutionnel (JCMS)
Audit de performances (Apache/Tomcat/CMS/Pools) portant sur le site internet institutionnel www.loire-atlantique.fr :
Analyse d’incidents suite à de fortes montées en charge
Vérification de la cohérence de la configuration Apache/Tomcat
Tuning des pools de connexions
Scénarios de montée en charge, vieillissement
Nombreuses optimisations des pages du site (réduction des requêtes HTTP, images, css, js), configuration optimale du CMS.
Tuning de la JVM (notamment sur le GC)
Réduction significative de la bande passante requise
Recommandations pour les contributeurs du site
Préconisations sur le monitoring des composants du site
Préconisations sur l’architecture du site afin de mieux répondre aux pics d’audience (haute disponibilité).
Produit propriétaire - Perceaval
Audit de performances d’un produit propriétaire n’offrant pas les performances requises.
Scénarios de montée en charge
Monitoring de la JVM et du back-end
Tuning des pools de connexions
Préconisations sur les modifications nécessaires permettant des traitements plus rapide ainsi que de pouvoir supporter un nombre plus important d’utilisateurs en accès concurrent.
Portail interne (basé sur Liferay)
Audit de performance complet de la Bases de Données, LDAP, Serveurs d’applications (en cluster), Conf JVM,
Conf Apache, Pool de connexions, charge sur Cluster.
Réalisation de scripts de montée en charge via multiple injecteurs en Master-Slave.
Rédaction de rapports d’audit détaillé
Détection et correction de fuites mémoire sur la JVM
Travail sur la refonte complète des formations Spring 3.0 et GWT 2 incluant la mise à niveau et l’utilisation d’une approche plus pédagogique, par l’exemple.
Refonte de la fiche hôtel des Hôtels B&B afin d’améliorer la référencement (SEO) de ces pages.
Evolutions : Google Maps, couloir de réservations, amélioration du pool de connexions, correctifs… Migration de Jahia 6.0 à 6.1.1
MISSIONS :
Définition de la solution logicielle
Mise en place complète de la solution
Création d’une tagLib spécifique pour répondre aux besoins du client concernant le référencement, tout en rendant le contenu plus réutilisable et modifiable dans les templates Jahia
Création de Fichiers d’Adresses : après normalisation des données provenant de la base de données client de France Télécom, l’application web de ce projet permet aux commerciaux de créer des fichiers contenant des adresses et numéro de téléphones filtrés sur un grand nombre de critères et de les vendre à des entreprises recherchant des contacts et notamment de potentiels clients. Ce projet fait partie de l’offre Marketing Services de Cedricom.
MISSIONS :
Définition l’architecture logicielle de la solution
Mise en place complète du projet : JSF2, Spring, Hibernate
Soutien à la conception métier et modèle de données
Création d’une interface permettant de définir les requêtes d’extraction de données à base d’une arborescence simple et flexible.
Tableau de données permettant l’édition de cellule directement du tableau (AJAX), filtres et ordre de tri inclus au tableau et par cellules...
PROJET : Réalisation d’une plateforme web multiple-flux financiers. Cette plate-forme multiple-utilisateurs (avec des rôles spécifiques et variés) et multilingues permet entre autre la création, visualisation et modification d’ordres et de transactions financières incluant la signature digitale de documents, acceptation ou rejet d’ordre, le tout en utilisant les standards tel que ETEBAC V3 et V5, PESIT (X.25).
MISSIONS :
Suivi de l’architecture logicielle de la solution
Travail important sur l’encadrement des équipes de dev.
Intégration de services RMI
Intégration de JMS
Mise en place de la solution de livraison WARs, puis EAR
Migration de la plateforme vers JSF v2
Mise en place de la solution de persistance via Hibernate
Mise en place des couches d’interfaçage aux données en provenance du partenaire allemand PPI.
Ajout d’un support multiple-entitées (personnalisation)
Ajout de la gestion des Exceptions
Ajout du support multilingues et localisations (dont images, icônes)
Création et maintenance des scripts pour la base de données (incluant les DDL).
Ajout de la solution d’authentification, incluant celle via SSL V3 (certificat client X509), utilisant entre autre Spring Security
Introduction et initiation (Maven, JSF2, Spring, Hibernate, Tomcat, Hudson et Nexus) à une partie des équipes de développement en interne
Support à la montée en compétence de développeurs Java.
Participation active avec le partenaire allemand (en anglais)
Gros travail sur la qualité du code , incluant le refactoring et réorganisation du code, mise en place de règles, intégration à la plateforme d’intégration continue et d’analyse statique du code.
Référant technique sur nombre important de points d’architecture et implémentation.
ENVIRONNEMENT TECHNIQUE : Eclipse, JSF1.2 puis JSF2.0, Primefaces et Tomahawk, Hibernate, Spring, MySQL et Oracle, RMI, JMS, Maven2, Apache/Tomcat Mod_JK, SVN, Nexus, Hudson, Sonar, UML, Entreprise Architect
Réalisation des évolutions pour la version V2 d’Infolabo, une interface web de consultation et d’impression de données résultant d’analyses d’échantillon laitiers.
MISSIONS :
Migration de l’application de Tomcat V5 à Glassfish V3
Création du script JK pour la communication Apache/Glassfish (remplacement d’IIS/Tomcat)
Création de script permettant la création de connexion pool pour Glassfish ainsi que de script permettant de créer le connecteur JK.
Réalisation des évolutions, incluant le refactoring et réorganisation du code exemple d’évolution : création d'un module de recherche à double critères de filtrage incluant une sélection dynamique des colonnes à afficher dans le rapport (HTML/PDF/Excel ).
ENVIRONNEMENT TECHNIQUE : Eclipse, Struts, Hibernate, Oracle, Maven2 et Ant, Apache/Glassfish Mod_JK, JasperReports, SVN, VM JRockit
Réalisation forfaitaire de la version 2 de Transnet, un outil permettant aux vétérinaires passer des commandes de produits Centravet à travers une interface web (multi-OS, multi-navigateurs). Cet outil permet également de : » de commander des codes barres pour les différents rayonnages » calculer les prix de revente via une calculatrice » réaliser des pré-commandes » réaliser des badges et barèmes d’honoraires en WYSIWYG » définir des marges financières » scanner des produits pour ajouter à une commande (lecteur code barre) directement dans un navigateur via l’application web » créer un inventaire …
Cet outil se décline en 4 parties :
Version Internet (site web)
Version réseau (à déployer dans un cabinet vétérinaire multi-poste)
Version offline permettant à un vétérinaire de préparer ces commandes en mode déconnecté (sans connexion réseau) puis de se synchroniser avec les versions de Transnet connecté.
Version PDA (version simplifié)
MISSIONS : Responsable technique et architecte du projet Architecture (solution SOA) – parties IHM et métier modulaires réutilisées dans les 4 parties du projet. Encadrement de l’équipe de réalisation (multi-sites) Proposition de solutions techniques et conseils au client
PROJET : Réalisation forfaitaire de la refonte du site www.hotel-bb.com pour améliorer ses performances, la relation avec les utilisateurs et sa mise à jour en interne. Solution multi-OS et multi-navigateurs.
MISSIONS :
Responsable technique et fonctionnel du projet
Pilotage du projet auprès du client dans des délais serrés : COPIL, rédaction des CR, reporting,
Rédaction des spécifications fonctionnelles générales et détaillées,
Benchmark et proposition d’architecture dans un contexte de haute disponibilité : serveur d’application, CMS, couche IHM, couche d’accès aux données,
Encadrement de l’équipe de réalisation
Développement des briques les + sensibles,
Mise en place de la plateforme d’intégration continue
Création des templates Jahia afin de répondre aux attentes du client
PROJET : Amélioration du processus d’intégration continue au sein des développements applicatifs de PagesJaunes.fr
MISSIONS :
Passage du projet YeS à une structure Maven2 standard (multi-modules),
Rédaction d’un document permettant la migration de l’ensemble des projets PagesJaunes vers Maven2 incluant des Best Practices,
Mise en place d ’une plateforme d ’intégration continue pour l ’équipe intégration,
Travail sur les règles de vérification de la qualité du code pour Eclipse, intégration à Maven et Sonar. Ces règles incluent également des règles personnalisées pour PagesJaunes (XPath) ainsi qu’un triage par importance,
Rédaction d’un document permettant l’installation, configuration et mise en place de la plateforme d’intégration continue complète, spécifique pour PagesJaunes, incluant une approche d’intégration et synchronisation avec les équipes de développement externe,
Création d’un archétype maven pour optimiser le temps de démarrage de nouveau projet
Aide au passage d’Eclipse Europa à Ganymede (TSE), et règles de formatage du code
PROJET : Suivi des Animations Ventes : Solution web permettant de gérer le suivi des animations ventes de la préparation à la réalisation pour les animateurs commerciaux répartis sur 12 départements.
MISSIONS :
Remise en confiance des acteurs principaux dont la MOA suite à un problème relationnel entre la MOA et la MOE qui avait commencé ce projet,
Refonte des spécifications fonctionnelles et techniques détaillées,
Développement des lots 1 et 2,
Application Web struts/tiles/ajax sous Tomcat, architecture MVC,
Pilotage du projet, planification et suivi des tâches,
Assistance à la MOA (comité de pilotage, rédaction des spéc. et cahier de recettes, coordination des réunions avec les acteurs du projet),
Définition du contrat d’interface et export des données pour le décisionnel,
Mise en production
ENVIRONNEMENT TECHNIQUE : Java 5, JSP, AJAX, Struts, Tiles, Hibernate, Ouest France SIC framework, Tomcat 6, Sybase (procédures stockées), Eclipse, PowerAMC, CAST, MS Project, GranttProject, Windows, Solaris
PROJET : ICE - Intelligent Control of Energy : solution ASP (Application Service Provider) permettant d’économiser de 5% à 30% de la consommation d’énergie de bâtiments industriels et commerciaux. Logiciel utilisant des techniques avancées d’intelligence artificielle, basée sur une architecture Java modulaire orientée service (SOA et ROC), disposant de deux interfaces web : client et administrative
MISSIONS :
Planification de projets,
Réunion avec les clients afin de déterminer leurs besoins
Rédaction des spécifications fonctionnelles et techniques détaillées,
Création de la base de données et de ses tables/index,
Architecture basée sur plusieurs concepts (SOA, ROC, ESB, REST, XML, JMS, event-driven) afin de répondre aux besoins spécifiques du projet tel que la mise à jour (ou roll-back) de modules "à chaud" , monitoring des performances des modules (optimisation/stats), abstraction complète des modules, support en mode distribué (load balancing), caching (avec invalidation), queueing...
Conception objet UML (Diagrammes de Classe, Use Cases, Séquences)
Développement :
Interfaces web pour client et configuration du bâtiment (administration),
Réseaux neuronaux avec approche intelligence artificielle,
Communication avec la solution embarquée (web-services),
Client Telnet permettant la communication avec plateforme embarquée
Réalisation des tests unitaires, et mise en production des projets.
Rédaction de manuels utilisateur.
Evolution de la solution logicielle (incluant des innovations qui ont été brevetées), optimisation de la base de données et de son accès pour amélioration des performances de l’application
Participation et collaboration avec freelance designer du site internet de la société :
Implémentation du design et mise à jour du site Web,
Recrutement, formation des nouveaux arrivants et encadrement
Datamining et analyse des données en amont des réseaux neuronaux et algorithmes génétiques.
Formation des clients à l’interface ICE Web.
Installation et configuration de la solution embarquée chez les clients, reliée au BMS (Systèmes de gestion d’immeuble : Trend, Cylon...) ainsi que la connexion Internet et sécurité via pare-feu.
PROJET : Connect et Connect Mobile Learner, Offline Learning Management System.
Solution permettant de :
Télécharger des cours de différents fournisseurs (sources),
Suivre les cours hors connexion avec installation automatique : via son propre web serveur « léger », avec le moteur de servlets pour supporter les normes de cours (HACP et SCORM),
Inclus une interface web personnalisable et multilingues,
Gestion des résultats et validation des connaissances
MISSIONS :
Rédaction des spécifications fonctionnelles et techniques détaillées,
Architecture,
Mise à jour de la base de données et de ses tables,
Conception objet UML (Diagrammes de Classe, Use Cases, Séquences)
Développement :
Migration de données au format XML afin de respecter les standards elearning,
IHM personnalisable,
Plateforme de lancement des cours,
Synchronisation (offline et online), gestion des conflits
Réalisation des tests unitaires, et mise en production des projets.
Rédaction de manuels utilisateur et de maintenance.
Massive Open Online Courses (Cours en ligne ouvert et massif)
Depuis février 2013
Formation ReactJS, SfeirSchool, Paris (Juin 2017)
Formation certifiante Hadoop avec Spark pour Développeurs de Cloudera (CCA Spark and Hadoop Developer), Cloudera University, Xebia Paris (Décembre 2016)
Formation Scala, Zenika, Paris (Novembre 2016)
MOOC - CS190.1x: Scalable Machine Learning, EDX, BerkeleyX, University of California, Berkeley (Août 2015)
MOOC - CS100.1x: Introduction to Big Data with Apache Spark, EDX, BerkeleyX, University of California, Berkeley (Juillet 2015)
MOOC - Introduction to Data Science (avec distinction), Bill Howe, Computer Science et Engineering, University of Washington (Octobre 2014)
MOOC – MongoDB – M202 MongoDB Advanced Deployment and Operations (Juillet 2014)
MOOC – Principles of Reactive Programming (Janvier 2014)- Coursera, Erik Meijer, Martin Odersky, Roland Kuhn – Ecole polytechnique Fédérale de Lausanne
MOOC – Data Analysis (Janvier 2014)- Coursera, Jeff Leek, John Hopkins University
MOOC - Web Intelligence et Big Data (Décembre 2013) - Coursera, Dr Gautam Shroff
MOOC – Computing for Data Analysis (Novembre 2013) - Coursera, Roger D. Peng, JHU
MOOC - Machine Learning (Août 2013) - Coursera, Andrew NG, Stanford University
MOOC - MongoDB University - M101J: MongoDB for Java Developers / M101P: MongoDB for Developers (Python) / M101JS: MongoDB for NodeJS Developers / M102: MongoDB for DBAs (Février à Juin 2013)
MOOC - An Introduction to Interactive Programming in Python (Juin 2013) - Coursera, Rice Univ.
MOOC - Functional Programming Principles in Scala (Mai 2013) - Coursera, Martin Odersky – Ecole polytechnique Fédérale de Lausanne
Organisation et encadrement de l'événement pour les 17 équipes en compétition de l'ENSAI (École Nationale de la Statistique et de l'Analyse de l'Information) de Bruz.
Cours thématique "Infrastructures Big Data", auprès des étudiants du Master 2 Mathématique appliquée - Statistique du Département MIASHS de l'université Rennes 2. Incluant un TP sur Spark MLlib (machine learning)
Participe à beaucoup de conférences et veilles sur son temps libre
Apprend beaucoup à travers les MOOC de Coursera, Udacity : théorie et mise en pratique poussée, à travers questionnaires, travaux pratiques et corrections collaboratives.