Compétences

Architecture

Event Driven Architecture, SOA, micro-services et systèmes distribués

Patterns

CQRS, event sourcing, port-adapter, Circuit Breaker

Pratiques agiles

Scrum, Kanban, Scum-ban, extrêmes programming (XP)

Pratiques dev

TDD, BDD, DDD et adepte clean code

Principaux langages

Clojure, ClojureScript, Java, Scala, Javascript

Frameworks / libs

Spring, Spring Boot, GWT, Axon, AngularJs 1.x, React/Redux, Re-frame, ClojureSpec

Ops

GoCD, Jenkins, GitlabCI, Docker, Kubernetes

Présentations et articles

Du monotlithe aux microservices, depuis les tranchées

Magazine Programmez • Octobre 2018

Tout ce qu'il faut savoir avant de se lancer dans une architecture microservice; gérer les intéractions et les domaines fonctionnelles, les difficultés d'un système distribué, les pièges à éviter, les briques techniques à mettre en oeuvre et les enjeux culturels et organisationnels.

Comment choisir son framework ou sa librairie

Magazine Programmez • Juin 2018

L’intégration d’un framework ou d’une bibliothèque est un choix important et impactant pour une application. Vous vous êtes sûrement retrouvés dans des situations où vous deviez faire un choix. Par manque de méthodologie ou d’accompagnement, cette décision peut être prise de manière peu constructive.

Du monotlithe aux microservices, depuis les tranchées

Codeurs en Seine • Novembre 2017

Les patterns CQRS et event sourcing

Deux patterns qui changent radicalement le design de nos applications. L'un répond à un besoin de scalabilité, l'autre aux problématiques de perte de données. Pourquoi les utiliser aujourd'hui et comment les mettre en oeuvre, avec les concepts clés et les pièges à éviter.

Le contract testing

le « Contract Testing » ou comment assurer la pérennité et la non régression dans les communications inter services / équipes que ce soit en REST ou sur un bus d'évènements, avec une présentation de l'outil PACT.

Experiences

Electre

Architecte, Lead Développeur, coach (freelance) • Jan, 2019 — Auj

Conception et développement from-scratch d'une plateforme de donnée bibliographique. Cette solution référence toutes les données concernant les oeuvres (livre, jeux-vidéo, musique, film) parues en france. Elle intègre des fonctionnalités telles qu'une recherche avancée, la création de paniers et de commande, un mécanisme de veille bibliographique. Dans le cadre de ce projet, Electre a pu réintégrer la conception logicielle en interne, jusqu'à lors en sous traitance.

Tâches :

  • Accompagner Electre dans la création d'une équipe de développement (organisation + sourcing)
  • Explorer et identifier les besoins au plus proche du métier
  • Coaching sur la conception produit, l'analyse du besoin, la priorisation et la spécification
  • Animation des différentes cérémonies agiles, XP et ateliers UX
  • Former les développeurs juniors sur les bonnes pratiques de développement et de qualité
  • Encadrer le flux de développement suivant la méthodologie Kanban
  • Définition et création de la stack technique back-end et front-end
  • Identification des différents domaines métiers selon les pratiques DDD
  • Design des domaines dans une architecture modulaire, séparant problématique technique et complexité métier
  • Création d'un framework DDD permettant de manipuler les différents concepts tactiques et de documenter le domaine
  • Évolution d'une librairie Clojure d'automatisation de test de scénarios issue du BDD
  • Création d'un moteur de recherche Solr basé sur Lucene
  • Mise en production et support

Environnement : DDD, BDD, TDD, Clojure, ClojureScript, Re-frame, React, Redux, Shadow-cljs, GitlabCI, Kubernetes, Docker, Google Cloud Platform, Postgres, BigQuery, PubSub, Kafka, Dataflow, Solr, EFK

Oui.sncf

Architecte (freelance) • Nov, 2018 — Mar, 2019

Evolution d'une solution de contrôle des titres de transport (train, RER, intercité) de tous les usagers en france. Aggrégant les données du SI OUI.sncf et SNCF, ce système est principalement consommé par une application mobile pour les agents de contrôle SNCF ainsi que par les portes de contrôle placées en gare.

Tâches :

  • Cartographier le système ainsi que ces acteurs
  • Résourdre les problématiques de charges et de cohérence à terme
  • Rationaliser les évènements du domaine
  • Amélioration de la stack existante
  • Animation d'atelier de design

Environnement : DDD, Event Driven Architecture, Scala, Akka, Elasticsearch, Kafka, KSQL

Société Générale

Lead Développeur (freelance) • Jan, 2018 — Oct, 2018

Au sein d'un incubateur, accompagner une ligne métier dans le développement d'un outil digital permettant de dynamiser les présentations d'impact financier auprès des grands comptes de la SGCIB. Cet outil vise à optimiser le procéssus de création de ces présentations et à moderniser la relation entre la société générale et ses clients.

Tâches :

  • Accompagner la ligne métier dans une transofmation digitale
  • Explorer et identifier les besoins au plus proche du métier
  • Création d'une équipe autonome et multi compétente, aka pizza team
  • Animation des différentes cérémonies agiles et ateliers UX
  • Encadrer le flux de développement suivant la méthodologie Kanban
  • Définition et création de la stack technique back-end et front-end
  • Identification des différents domaines métiers selon les pratiques DDD
  • Design des domaines dans une architecture modulaire et héxagonale, séparant problématique technique et complexité métier
  • Mise en place de l'infrastructure serveur
  • Configuration d'outils d'intégration et de déploiement continue avec GoCD
  • Mise en place de la stack de monitoring ELK
  • Développement d'un modèle financier et veille sur la manière de le documenter (living documentation)

Environnement : DDD, BDD, TDD, Scala, Scalatra, Scalatest, React, Redux, Webpack, Jest, Postgres, GoCD, Linux

Société Générale

Lead Développeur (consultant Arolla) • Avr, 2016 — Dec, 2017

Refonte d'une plateforme de financement structuré en microservice, dans une organisation divisée en plusieurs features teams. Cette plateforme permet structurer le financement de projet pour les grands comptes de la SGCIB. Elle gère le cycle de vie du crédit, de la prospection jusqu'à la signature définitive du projet.

Tâches :

  • Coaching d'une feature dans les pratiques crafts telles que le BDD, TDD et DDD
  • Développement des nouveaux domaines métiers en microservices
  • Configuration de l'annuaire de service Consul
  • Support au business analyst sur la rédaction des user stories
  • Exploration des besoins
  • Mise en place de la stack de monitoring ELK
  • Encadrement du flux de travail selon le framework scrum puis transition au développement en flux via un kanban
  • Animation de kata et mob programming sur divers sujets comme l'event sourcing, cqrs et programmation fonctionnelle
  • Migration de microservices sur docker

Environnement : Architure microservices event driven, CQRS et event sourcing, Behavior Driven Design, TDD, Scrum et Scrumban, JAVA 8, Kotlin, Clojure, Typescript & javascript, Sass, HTML, Spring Boot, Spring Cloud, Service discovery via Consul, Cucumber, Angular 1.x, Mocha, Chai, RabbitMQ, Oracle, ElasticSearch, Kibana, Logstash, PACT, Docker, Puppet

Vidal

Développeur (consultant Arolla) • Jan, 2015 — Avr, 2016

Développement de nouvelles applications web dans le cadre de la refonte de l’écosystème back-office de VIDAL.
Notamment une application permettant l’intégration électronique de document (GED) au sein de Vidal et la gestion du flux de travail autour de ses documents.

Tâches :

  • Veille au respect et animations des pratiques SCRUM (Sprint Planning, DSM, Demo, Retro, Dojo, code & design review)
  • Support au PO et recueil des nouveaux besoins directement auprès des utilisateurs
  • Développement de l’application ainsi que d’autres outils périphériques à l’application, tous référencées par un annuaire de service (ETCD)
  • Détermination de la stratégie de test avec la mise en place des tests d’intégration
  • Sensibilisation de l’équipe à la pratique du TDD et au refactoring continu
  • Identification et référencement de la dette technique des équipes back-office ainsi que la mise en place d’une stratégie de réduction de la dette
  • Déploiement sur des plateformes de test via Docker
  • Mise en production

Environnement : Java-EE 8/7, REST, Jersey1/2, Spring, Hibernate, Mongo, SQL, Rest-Assured, Junit, Mockito, TDD (Pair-Programming), Angular.JS, CoffeeScript, Bootstrap, Eclipse/IntelliJ, Logback, Git, Maven, Tomcat, Docker, Activiti, Jsoup, RxJava/Js

Orange

Lead Développeur (interne) • Nov, 2013 — Dec, 2014

Mise en place d’une architecture REST qui permet à Orange d’avoir des services uniques de prise de commande d’offre quadri-play (internet, téléphone, télé et mobile). Ce projet vise à centraliser les fonctions métiers d’Orange et permet de développer des IHM dîtes « fines », sans logique métier.

Tâches :

  • Veille au respect et animations des pratiques SCRUM (Sprint Planning, DSM, Demo, Retro, Dojo, code & design review)
  • Conception de l’architecture REST avec Jersey2
  • Définition des contrats d’interfaces et mise en place d’une documentation intégrée en ligne de l’api REST
  • Identification et développement des ressources aux normes RESTful
  • Mise en place d’une couche de persistance via Couchbase
  • Détermination de la stratégie de test et automatisation (tests de non régression SoapUI, tests de charge Gatling, framework de test). Sensibilisation de l’équipe à la pratique du TDD (jUnit, Mockito).
  • Développement d’une IHM de démo/simulation en Angular.JS mettant en œuvre les ressources REST
  • Développement d’une IHM de démo/simulation en Angular.JS mettant en œuvre les ressources REST

Environnement : Java-EE, REST, Spring (Security), Jersey2, Swagger, Couchbase, SoapUI, Gatling, Rest-Assured, Junit, Mockito, TDD (Pair-Programming), BDD, Angular.JS, IntelliJ, Logback, SVN, GIT

Orange

Développeur (interne) • Sept, 2009 — Aout, 2013

Participation à l’effort de développement pour Soft Commande Unique, une application de prise de commande unique en interne au sein d’Orange.
Il s’agit d’une application de prise de commande d’offre quadri-play (internet, téléphone, télévision et mobile).
Application multicanale utilisée par tous les vendeurs d’Orange et ses partenaires, en boutique ou par téléphone.

Tâches :

  • Back-end (couche métier et applicative) avec la définition de la logique applicative, des domaines métiers et d’une couche d’infrastructure permettant d’interagir avec le SI d’Orange. L’ensemble étant développé autant que possible en TDD.
  • Front-end (couche de présentation) guidant les vendeurs dans leur parcours de prise de commande. Développé avec le framework GWT.
  • Application du pattern CQRS et Conception selon DDD
  • Conception selon DDD
  • Support aux équipes fonctionnelles (PO et proxy-PO) à la définition des user stories
  • Développement d’outils divers améliorant le processus de validation des stories (référentiel de mock, outils de visualisation des logs)
  • Respect des engagements de qualité de code (métriques SONAR)

Environnement : Java-EE, GWT, Spring, Hibernate, CXF, HTML, CSS, Eclipse, Intellij, Maven, Tomcat, SVN, Scrum, Junit, Mockito, EasyMock, TDD (Pair-Programming), Logback, Javascript

LCL

Développeur (stage) • Juil, 2009 — Sept, 2009

Veille technologique sur les différentes techniques d’identification biométrique et réalisation de prototype
Etude sur l’intégration d’outils biométriques dans les processus contractuels du LCL.

Tâches :

  • Veille et rédaction d’un livre blanc sur les techniques d’identification biométrique et leur mise en pratique
  • Test des différentes tablettes graphiques du marché
  • Développement d’un prototype mettant en œuvre la signature biométrique sur tablette et envoie des informations au système de gestion électronique de document

Environnement : Eclipse, C++, Wacom, Word

Noxent

Développeur (stage) • Avr, 2008 — Juin, 2008

Développement d’applications web pour une société de service

Tâches :

  • Rédaction de spécification fonctionnelle
  • Développement d’un agenda électronique en interne permettant de saisir les rendez-vous client
  • Développement d’un outil en ligne permettant de saisir des notifications récurrentes

Environnement : PHP, MySQL, NetBeans, HTML, CSS, Javascript, Jquery

Formations

Xebia Consulting

Certification Scrum Master • 2012

Formation ScrumMaster certifiante, animé par par Petra Skapa

Université Sorbonne, Paris 1

Master MIAGE Informatique en apprentissage • 2011

Méthodes Informatique Appliquées à la Gestion des entreprise

Université Sorbonne, Paris 1

Master Eco & Gestion en apprentissage • 2011

Spécialisation en management des systèmes d’information et de connaissance

Université Sorbonne, Paris 1

Licence MIAGE Informatique • 2009

Lycée Félix Le Dantec, Lannion (22)

BAC STI électronique • 2006