Aller au contenu

CV

Formation

2011 Diplôme d'ingénieur des Mines-- Douai

Compétences

  • OS : WINDOWS, LINUX, OSX
  • Langages : JAVA, KOTLIN, JAVASCRIPT, TYPESCRIPT, DART, PYTHON
  • Frameworks : SPRING (BOOT, CORE, MVC, FLUX), REACT, ANGULAR, SPARK, FLUTTER, AWS
  • SGBD : MONGODB, POSTGRE, MYSQL,
  • Outils : INTELLIJ, MAVEN, NPM, JUNIT, JEST, GIT, GITLAB (&CI), JENKINS
  • Packet Manager : NPM, MAVEN
  • Méthodologie : SOFTWARE CRAFTSMANSHIP(**TDD, REFACTORING, CI, PAIR-PROGRAMMING), SCRUM, KANBAN

DOMAINES D'INTERVENTION

  • Développement, Back-End comme Front-End, avec les pratiques craft
  • Sensibilisation et partage sur les pratiques craft
  • Mentoring autour des bonnes pratiques
  • Animation de communauté de pratiques

TRAINING & CONFERENCES SUIVIS

  • Formation « Architecting on AWS » - Revolve 2021
  • Formation Flutter -- Zenika 2021
  • Formation Sfeir School Speaker -- Sfeir 2020
  • Conférence NCraft (2018-2019)
  • Formation Les bases su Machine Learning -- e-Voyageur Technologies 2019
  • Formation en ligne Sketchnoting -- Bloculus (2019)
  • Formation Refactoring -- Arolla 2017
  • Formation Domain Driven Design -- Arolla 2017

CENTRES D'INTERETS

  • Transmettre, Apprendre, Partager
  • Ateliers d'intelligence collective
  • Gamification et ses applications

Expériences

Shodo Nantes -- Depuis Septembre 2021

Transparence, Confiance et redistribution des richesses. Pour mettre ces valeurs en pratiques, Shodo propose un modèle d'entreprise novateur. Une grille de salaire transparente et publique, ainsi que des marges fixes et toutes aussi transparentes, Shodo souhaite redonner du sens au salariat, tout en garantissant des prestations de qualité.

Tous les membres de Shodo sont des développeuses et développeurs convaincu.e.s par les principes du Software Craftsmanship et aggueri.e.s aux bonnes pratiques de développement. Chacun ajuste sa rémunération et son temps libre pour se former, échanger ou se reposer, dans le respect des engagements clients pris.

Maisons du Monde via Shodo Nantes -- Depuis Septembre 2021

Développeur Senior. Animateur de communauté.

E-Voyageurs Technologies -- Décembre 2018 - Septembre 2021

Développeur Java, Senior, puis Lead. Animateur de communauté.

E-Voyageur technologies est l'usine numérique derrière e-Voyageurs SNCF. Ce pôle technologique d'environ 1000 personnes, est responsable du site oui.sncf, mais également des application « Assistant SNCF », « TGV Pro », et d'autres briques technologies de la SNCF.

Depuis Avril 2019, en parallèle des projets IT, animateur en transverse dans la communauté de pratiques du « Cercle du Développement ».

  • Création du « parcours d'accueil des développeurs », avec les RH en charge de la formation
  • Initiation des ateliers « Conception de formation » : TDD,CleanCode, SOLID, Apprendre à Apprendre : comment faire sa veille technologique
  • Initiation des ateliers de partage :
    • Xtrem(Reading | Watching | Sharing | TechWatch)
    • GoodMorningLearning
  • Animation de Coding Dojos, et d'atelier de travail sur le Pair-Programming, et Mob-Programming
  • Animation de Serious Games :
    • « Qu'est-ce qu'un TU »,
    • « Pair-Programming : le comprendre sans coder »
  • Impliqué dans la redéfinition des rôles de la CoreTeam, et des objectifs de la structure

Depuis Novembre 2020, développeur senior dans l'équipe « Innovation », en charge d'accélérer les expériences de la cellule « Innovation » de la branche « Produit » de l'entreprise

Principales réalisations :

  • Mesure de l'affluence dans les trains

    • Back : Typescript + AWS Lambda
    • Front : Ionic sur AWS CloudFront
    • CI/CD via GitLab CI + AWS CLI
    • TDD + Formation de l'équipe
  • Carbon Tracker : votre coach de mobilités carbone

    • Back : Typecript + AWS Lambda
    • Front : Flutter + Dart
    • Formation de l'équipe à la gamification

De Décembre 2019 à Novembre 2020, développeur senior dans une équipe de seniors, en charge de motoriser la personnalisation des applications e-Voyageurs Technologies, notamment via du Machine Learning.

Sur la partie « Cross-Sell » sur le site de oui.sncf :

  • Back en Reactive Spring

    • Java 8, 11, puis 13
    • AWS ElasticBeanStalk
    • Tests de l'application en Gherkins, sur un composant « BlackBox »
    • Mise en place de JaCoCo sur un projet Maven en multimodules
  • Moteur de personnalisation :

    • Batch en Python + PySpark
    • Captation des données via la « feedback-loop »
    • Utilisation d'un modèle de ML paramétré par l'équipe
    • Alimentation d'un Elasticsearch
  • Initiation de l'équipe aux pratiques Craft

    • Présentations régulières (TDD, Clean Code, Pair-programming)
    • Mise en place de Mob-Programming sur des sujets de refactor et de partage de connaissance

Lors de l'intégration de la solution « Kameleoon » pour comparer avec nos propres briques

  • Intégration de la solution « Kameleoon » pour tester sa pertinence

    • Contribution transverse sur toutes les briques Front du site oui.sncf
    • Mise en place de bonnes pratiques de contribution (collaboration avec équipe hôte, pair-programming, respect des conventions de l'équipe hôte, post-mortem systématiques)
    • Stacks hétérogènes : Angular, React, Vue
  • Participation au développement du moteur de recommandation transverse

    • Testing / TDD
    • Moteur de scoring par règles métier,
    • Tests de charge du moteur par Gatling
    • Utilisation de différents modèles de Machine Learning pour répondre à des contextes différents
    • Mise en place d'un bus RxJS pour synchroniser les Front, tests avec des MarbleTests

Lors de la modélisation des modèles de machine Learning - Mise en place des tests de workflow (AWS Glue) de traitement de la donnée - Mise à jour de modèle de Machine Learning via AWS Sagemaker

Environnement :

Java, JUnit, Mockito, Cucumber, Gatling, JavaScript, Typescript (REACT, JEST), MongoDB, Spring, Python, Dart, Flutter, Git, Software Craftsmanship, Clean Code, TDD, Pair-Programming (& MOB), Docker, Jenkins, AWS, Formation, Animation, Facilitation

La Combe du Lion Vert via AROLLA -- Mai 2018 - Septembre 2018

Formateur

La Combe du Lion Vert est une filiale d'Arolla, qui offre aux développeurs en début de carrière un cursus de formation sur les pratiques du Software Craftsmanship, avant de les envoyer chez les clients.

Formateur à la demande du CTO, sur des sessions ponctuelles (6 jours en tout)

  • Formation CleanCode et SOLID
  • Formations Tests Doubles, et Double Loop TDD

Environnement :

Java, POO, SOFTWARE CRAFTSMANSHIP, Clean code, SOLID, TDD, FORMATION, COACHING

VIDAL via AROLLA -- Juin 2016 - Décembre 2018

Développeur « Fullstack »

VIDAL est l'entreprise éditant le « Dictionnaire VIDAL », catalogue des produits et des médicaments, à destination des professionnels de santé.

Intervention dans le cadre de plusieurs projets, portant sur différentes étapes du cycle de la génération du dictionnaire de santé VIDAL.

Dans une équipe de 5 personnes tournantes, nous avons travaillé sur les projets suivants :

  • Enrichissement des contrôles de Posologie HAS :

    • Scenarii BDD (Prescription, Saisie du référentiel),
    • Montée de version AngularJS (1.2 vers 1.5) et introduction de composants
    • Full Pair-Programming, TDD
  • Souscription & Nouvelle Facturation :

    • Numérisation de l'envoi du dossier,
    • Génération des données de facturation
    • Prise en charge du rôle de Scrum Master (Facilitation des ateliers suivants : Rétrospective, Backlog refinement, Définition du DoD, Définition du DoR)
  • Reprise des posologies :

    • 80 Go de données
    • Mise en place d'un job Spark et d'un cluster « ad hoc »
  • Circuit du médicament :

    • Création d'une application « from scratch »
    • Java 11, Angular 6, MongoDB
    • TDD, Pair-Programming, et Code Reviews
    • Sensibilisation transverse aux pratiques crafts (présentation, et ateliers de mise en pratique de TDD et Pair-Programming)

Environnement : Java, JUnit, Mockito, Cucumber, JavaScript (AngularJS, Jasmine), MongoDB, Spring, Hibernate, Git, SOFTWARE CRAFTSMANSHIP, Clean code, TDD, Pair-Programming, ANIMATION, FACILITATION

DARTY via AROLLA -- Juin 2016 - Novembre 2017

Développeur JAVA JEE

Darty.com, le site internet de vente en ligne de Darty, correspond au premier magasin du groupe en terme de chiffre d 'affaire, totalisant 14% des ventes de produits. Depuis 2014, Darty.com intègre également la plateforme Mistergooddeal.

Ces sites permettent à tout internaute de consulter un large catalogue de produits, pour ensuite les acheter en ligne, et bénéficier des mêmes avantages que lors d 'un achat en magasin (livraison, installation, etc.).

Intervention dans le cadre d 'un projet d 'amélioration continue, sur un large panel d 'applications, aux stacks diversifiées, et de qualité hétérogène.

Au sein d'un projet d'une vingtaine de personnes, je suis intervenu sur les applications suivantes :

  • Les applications dites du "Back "
    • Darty WebSphère : monolithe très endetté, concentrant les workflows et les dépendances externes historiques
    • Order Management System (OMS) : orchestrateur de micro-services dédiés au remplacement de WebSphère
    • BO-DCom : Back Office métier de Darty.com
  • Les applications dites du "Front "
    • Le "Front DCom " : Le site internet, en lui-même
    • Le "Front MGD " : Le site Mistergooddeal.com

Ma contribution a essentiellement été valorisée sur les aspects suivants :

  • Working with Legacy

    • Retrotesting et outillage pour générer des tests
    • Conduite du changement sur une équipe peu sensible au Clean Code
  • Application des pratiques de Software Craftmanship

    • TDD, Pair-Programming, et Code Reviews
    • Amélioration des processus de merge du code
    • Ateliers & Dojos, pour parler du code
  • Application de pratiques Agiles

    • Introduction aux cérémonies Agiles auprès de l 'équipe (Daily)
    • Rétrospectives de release (rétro bateau, rétro dont vous êtes le héros)
  • Force de proposition sur les workflows

    • Introduction à la norme BPMN
    • Emergence des workflows de paiement, et des commandes

Environnement : JAVA, JAVASCRIPT (JQUERY, ANGULARJS), GUICE, DROPWIZARD, REST, JUNIT, MOCKITO, GIT, CLEAN CODE, TDD, PAIR-PROGRAMMING

OALIA -- Mars 2011 - Juin 2016

Développeur Java JEE

Oalia est un éditeur spécialisé dans la production de solutions dédiées à l'optimisation du processus d'achats (prestations intellectuelles, matériel, fournitures diverses). Il propose entre autre, une suite logicielle web (front to back), qui permet de gérer le workflow lié à toute commande.

Intervention continue dans le cadre du projet EXCELLENCE™, qui est la refonte du socle technique de la suite logicielle OALIA. Remplacement des composants Legacy (Turbine + Velocity) par une architecture MVC entièrement méta-modélisée, modulaire et administrable.

Phase 1 (Mars. 2011 -- Septembre 2011) : Développement de l'UIOM (User Interface Object Model) qui est la couche de rendu de la nouvelle architecture OALIA

Elaboration de l'UIOM (User Interface Object Model) : un moteur de rendu HTML en Java, venant s'intégrer avec le méta-modèle métier de l'application. Ce moteur constitue la première brique de la refonte du socle technique.

  • Développement en TDD du rendu HTML, en restant fidèle et rétrocompatible au rendu de la version legacy
  • Programmation par composants (AOP)
  • Automatisation de l'intégration des travaux de l'équipe GUI
  • Intégration au méta-modèle métier de l'application

Phase 2 (Septembre 2011 -- Septembre 2012) : Montée en compétence & stabilisation d'un legacy important en vue de préparer le fork vers la nouvelle architecture

Travail en équipe sur la stabilisation du socle technique fortement endetté :

  • TMA sur l'ensemble de la suite logicielle
  • Mise en place d'une démarche TDD
  • Montée en compétences sur les Design Patterns

Cette amélioration indispensable du socle technique a permis, par la suite, de procéder à un fork entre deux applications ; l'une conservant une dette technique importante, l'autre étant le sujet du nouveau moteur applicatif.

Phase 3 (Septembre 2012 -- Mars 2014) : Mise en place de IAM (Interactive Application Model) qui modélise les processus métiers OALIA, les écrans et le rendu

En suivant la méthodologie Agile SCRUM dans une équipe de trois développeurs, nous avons pu développer les briques logicielles, constituant le cœur d'IAM (Interactive Application Model) :

  • Modules complémentaires de l'UIOM

    • Mise en place de nouveaux composants via TDD
    • Création d'API de développements fluides et guidées (en suivant le pattern fluent interface), permettant un gain de productivité, et un raccourcissement du temps de prise en main
    • Modélisation des composants graphiques
    • Intégration des modèles à un « Studio » disponible sur l'application, permettant d'administrer les modèles de composants
  • Enrichissement du modèle de navigation

  • Développement de la couche de modélisation des processus métier

    • Développement en TDD d'API de développements fluides et guidées
    • Mise en place d'une couche de validation des modèles de processus, conformément au standard BPMN
  • Développements fonctionnels permettant le portage iso-fonctionnel de modules métiers, depuis la technologie obsolète vers le nouveau modèle.

  • Application de pratiques agiles basées sur SCRUM et XP :

    • Sprints de 2 semaines avec livraisons toutes les 6 semaines. Suivi des cérémonies classiques (Planning, Stand-Up, Démo, Rétro).
    • TDD et Pair-Programming (montée en compétences des nouveaux développeurs, développements de fonctionnalités critiques).

Phase 4 (Mars 2014 -- Mai 2016) : Lead Développeur, Référent Technique IAM

Au sein du même projet, en suivant la méthode Agile SCRUM ; intervention sur les tâches suivantes :

  • Outillage des tests :

    • Développement de runners JUnit pour tests d'intégration
    • Mise en place de Selenium-IDE, prélude à l'industrialisation de Selenium
  • Référent technique sur la couche applicative

    • Formation des nouveaux arrivants
    • Suivi des développements, relecture de code, support technique
  • Développements techniques :

    • Mise en place du module de connexion par SSO
    • Amélioration des API fluent interface orientées développeur
    • Outillages des procédures de migration des différents modèles
    • Amélioration des processus d'intégrations avec l'équipe GUI
  • Application de pratiques agiles basées sur SCRUM et XP :

    • Sprints de 2 semaines avec livraisons toutes les 6 semaines. Suivi des cérémonies classiques (Planning, Stand-Up, Démo, Rétro).
    • TDD et Pair-Programming (montée en compétences des nouveaux développeurs, développements de fonctionnalités critiques).
    • Réflexions sur la mise en place d'une démarche Devops (automatisation de scripts de déploiement)

Environnement :

JAVA 7, JAVA-EE, JAVASCRIPT (JQUERY), SPRING (CORE, MVC), HIBERNATE (JPA), POSTRESQL, JUNIT, EASYMOCK, POWERMOCK, SELENIUM, GIT, DESIGN PATTERNS, CLEAN CODE, TDD, PAIR-PROGRAMMING, SCRUM & XP**