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
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.
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
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