Développeur · Software Craftmanship · philosophe Agile et DevOps

Passionné d’informatique je crée d’abord des outils numériques pour aider des personnes à faire leur travail. Je m’intéresse à l’agilité et au DevOps pour améliorer les conditions de travail, fluidifier la productivité et plus généralement au Software Craftmanship pour la qualité ou littéralement : le goût des choses bien faites. J’ajouterai un petit penchant pour l’administration de système et la sécurité, sans quoi "ça ne serait pas drôle".

Concrètement j’ai commencé comme développeur Java, puis par attrait à l’automatisation et à l’opérationnel j’ai évolué dans le release management (CI/CD & co) avec des accents sur la qualité par les tests et l’organisation par des worflows. Sans compter une ribambelle d’outils pour aider mes plus proches clients : mes amis dev et ops. Parfois et avec plaisir je joue aussi le rôle de formateur enjoué.

Enfin je m’intéresse aussi aujourd’hui aux différents points d’amélioration autour du GreenIT. Via le FinOps et plus généralement sur le questionnement des usages et des besoins réel auquel il faut répondre. (Non un serveur applicatif n’a pas ça place pour un site statique, et oui on peut éteindre un environnement lorsqu’il n’est pas utilisé :))

Bien sur je sais prendre de la hauteur et imaginer ou superviser ce délicieux bazar ou cette belle cathédrale. Mais ce que j’aime avant tout : c’est mettre les mains dans le cambouis.

Mes outils au quotidien sont zsh, tmux, vim, Intellij, git, docker et différents compilateurs / interpréteurs qui m’aide à parler binaire plus ou moins couramment.


15 ans d’expérience professionnel

Développeur Backend Java
  • Juin 2021 à aujourd’hui

  • QIMA

Dans le cadre du dévelopment de la platforme SAAS B2B QIMAone, j’ai essentiellement contribué au dévelopment backend pour maintenir et ajouter les fonctionnalités nécessaires pour nos clients. J’ai également contribué au dévelopment de l’api public de la plateforme. Par ailleur, j’ai aussi découvert la partie infrastructure de notre platform via terraform, kustomise et ArgoCD. Enfin, en parallèle j’ai accompagné l’équipe No-Code qui a été mise en place pour aider nos clients dans leur intégration à QIMAone.

Tools

Java 17, Maven, SpringBoot, Cucumber, bash, Gateling, git, CircleCI, docker, kubernetes, GCP, vim, Intellij Idea, NoCode (Make, Parabola)

Développeur et DevOps sénior - développeur node.js - gestion CI/CD - gestion infrastructure
  • Décembre 2019 à Juin 2021

  • Symbol-IT - Adéo (Inhabitant Social Platform)

Dans un contexte de migration du système d’information gérant le référentiel client d’Adéo. Je contribue au développement, à la sécurisation et au maintien en condition opérationnelle d’un composant applicatif ayant pour but de facilité la transition d’application cliente legacy - donc peu maintenue - vers le nouveau système applicatif. Je contribue également aux analyses et aux améliorations des projets voisins.

De façon plus détaillé, l’ancien applicatif est un ensemble d’application java en SpringBoot sur des bases Oracle ou Postgres avec du Elastic Search et du ActiveMQ le tout sur Rancher v1. Tandis que le nouvel écosystème repose sur des apis en node.js (express et adonis), MongoDB, Kafka, le tout sur Kubernetes via Openshift.

En plus de développer l’applicatif, je m’assure en coordination avec l’équipe sécurité à ce que le code et les environnements soient sain. Qu’ils supportent une forte charge via des tests de performances. Et toujours à simplifier les outils de travail et de déploiement.

Tools

Node.js, npm, bash, k6, git, circle.ci, gitlab, datadog, dynatrace, docker, kubernetes, openshift, vim, Intellij Idea

Formateur Algorithmie et Java
  • Mai 2019 à Aout 2019

  • Symbol-IT - Foreach

Dans le cadre de la première formation de Foreach Academy pour une session de 3 mois d’accompagnement à la reconversion professionnelle. J’ai donné des cours d’algorithmie et enseigner les fondamentaux de la programmation avec le langage Java.

Tools

Java, Scratch, Git, Maven, asciidoctor

Développeur et DevOps - gestion CI/CD - accompagnement des Ops - automatisation des processus
  • Octobre 2016 à Janvier 2020

  • Symbol-IT - Kiabi.com

Dans une équipe dédiée à la CI/CD je suis chargé de créer et maintenir l’outillage et de faciliter l’organisation, le process de build et de mise en production. Mon objectif est de fluidifier le travail des dev et des ops tout en optimisant la qualité du delivery.

Cela se traduit par la mise en place et la maintenance d’outils comme Jenkins (CI), Nexus (Registry), Rundeck (Robot) et XLDeploy (CD). Et la création de workflow de build, de contrôle, de déploiement, etc.

Tools

Groovy, Python, Bash, Java 8, Postgres, Maven, vim, Intellij Idea, Jenkins, Rundeck, Nexus, XLDeploy, Sonar, Docker, Git, RPM

Référent technique - exploitation - DevOps (Facilitateur)
  • Juillet 2016 à Septembre 2016

  • Symbol-IT - Décathlon

Continuer sur le Pôle Exploitation (idem ci-dessous) en finalisant les processus d’automatisation encours et préparer la passation des connaissances des systèmes mise en place.

Tools

Groovy, Java 6 à 8, Oracle 10g, Postgres 9.2, Maven 3, Gradle, Intellij Idea, Jenkins, Elastic search, Logstash, Kibana, Git, Docker, RPM

Référent technique - exploitation et fiabilisation des applications
  • Septembre 2014 à Juillet 2016

  • Salto-Consulting - Décathlon

Dans le périmètre applicatif de l’offre, la communication produit et un référentiel de donnée, je travaille au sein de l’équipe d’exploitation (3 personnes).

Le premier objectif est d’apporté une démarche DevOps à l’équipe. Ayant de bonne connaissance de l’infrastructure technique et de l’expérience de développement, je facilite le dialogue entre les opérationnels qui gèrent les plateformes applicatives et les équipes de développement qui ont besoin d’Intégration Continue et d’environnement de test avec tous les liens entre les différentes briques du SI (flux JMS, MQ, Web Service, etc.).

Dans l’équipe nous mettons également en place et maintenons des outils facilitant le développement et la maintenance de nos applications via des outils personnalisés d’aide au développement respectant notre workflow ainsi que des solutions pour surveiller les données en base via un usage personnalisé de Jenkins, ou encore avec des "tours de contrôles" Talend.

J’apporte également du conseil sur la conception des solutions, des choix techniques ou simplement de l’aide et de l’accompagnement aux développeurs. Ponctuellement j’apporte également des solutions d’automatisation de tache simple à appliquer en masse, via des scripts bash, groovy ou encore en Go.

Enfin l’équipe gère tout le processus de génération des livrables et de mise à disposition de ceux-ci aux opérationnels pour l’appliquer en production dans les meilleures conditions. Mon objectif personnel étant d’automatiser toute la chaîne de développement jusqu’en production, en s’adaptant à l’infrastructure existante.

Tools

Groovy, Java 6 à 8, Oracle 10g, Postgres 9.2, Maven 3, Gradle, Intellij Idea, Jenkins, Elastic search, Logstash, Kibana, Git, Docker, RPM

Développeur JEE - Stabilisation, évolution et maintenance d’une application JEE dite "Legacy"
  • Octobre 2013 à Septembre 2014

  • 11 mois

  • Salto-Consulting - Décathlon

Stabilisation de l’application First notamment en mettant en place un processus de gestion des transactions plus fiable "à la Spring" et un découpage en couche de l’existant (service métier / accès au données). L’application avait alors près d’un million de ligne de code. Puis poursuite de la mission en maintenance évolutive avec une nouvelle organisation des équipes (quelques idées de scrum et kanban sont appliquées). Avec un rôle de développeur senior dans l’équipe je contribue à partager mes connaissances et traiter les sujets plus complexe.

Enfin je prends en plus un rôle de référent technique et m’anime plus sur l’amélioration de l’existant et des outils permettant d’extraire des métriques technique et fonctionnelle afin de guidé l’avenir de l’application.

Tools

Struts 2, Java 5, Oracle 10g, Maven 3, Continum, Intellij Idea, Jenkins, Kibana, Logstash, Elastic search, Eclipse Birt

Développeur JEE - Stabilisation d’une application existante et extraction de métriques technique et fonctionnelle
  • Juin à Septembre 2013

  • 4 mois

  • Salto-Consulting - Décathlon

Stabilisation de l’application SPID gérant toutes les informations produits. Il s’agit d’un PIM (Product Information Management) basé sur Alfresco 3.4. Ma contribution à essentiellement portée sur la gestion des fichiers multimédia (récupération depuis un SI externe, et optimisation de l’intégration dans l’outil). Puis sur l’extraction de métrique technique et fonctionnelle (temps de réponse, quantité de produit, etc.) afficher sur un écran de contrôle en utilisant Graphite. En fin de mission, la partie IHM de l’application a été migré sur AngularJS.

Tools

AngularJS 1.2, GWT 2.4, Java 6-7, Spring 3.0, Postgres 9.2, Maven 3, STS, bash 4, rsync, Graphite 0.9.10

Développeur JEE - Refonte d’une application existante sur un socle JEE
  • Février à Mai 2013

  • 3 mois

  • Salto-Consulting - Lyréco

Refonte de l’application existante Contrat en Oracle Forms vers une application JEE, tous en conservant le schéma de base de données existant, et les procédures stockées

Tools

JQuery 1.8, Bootstrap 1.4, Datatable, Java 6, Spring 3.1, Oracle, Maven 2, STS

Développeur JEE - Développement de la partie flux d’une application internationnale
  • Décembre 2012 à Janvier 2013

  • 6 semaines

  • Salto-Consulting - Décathlon

Mise en place de flux JMS entre différentes applications vers PQZD, puis en interne à l’application déployé sur différent site.

Tools

Java 6, Spring 3.1, Apache Camel 2.10, Hibernate 3, Oracle, Maven 3, Intellij IDEA, Continuum

Développeur JEE - Développement d’un "proxy" de flux applicatif.
  • Novembre-Décembre 2012

  • 1 mois

  • Salto-Consulting - Adéo

Développement d’un mécanisme de proxy de flux JMS afin de palier à des problèmes de performance. L’application a été concu selon la nouvelle organisation des projets multi-module. J’ai également contribué sur la partie packaging de l’application en rpm pour faciliter les déploiements.

Tools

Java 6, Spring 3, Spring Intégration 2.1, Hibernate 3, Oracle, Maven 2, Intellij IDEA, Jenkins

Développeur JEE - Développement d’une application back-office exposant des Web-Services.
  • Novembre 2012

  • 2 semaines

  • Salto-Consulting - Adéo

Création d’une application technique exposant des services web pour gérer un service de liste de course cross-canal.

Tools

Java 6, Spring 3, Apache CXF 2.2.6, Hibernate 3, Oracle, Maven 2, Intellij IDEA, Jenkins

Développeur JEE - Développement de flux applicatif.
  • Octobre 2012

  • 1 mois

  • Salto-Consulting - Adéo

Création d’une application technique devant s’abonner à un flux JMS de commande et devis pour alimenter la base d’une application existante. Les contraintes étant de gérer la volumétrie et s’adapter à l’applicatif existant.

Tools

Java 6, Spring 3, Spring Intégration 2.1, Hibernate 3, Oracle, Maven 2, Spring STS, Jenkins

Administrateur système - Mise en place de sauvegardes des serveurs internes.
  • Septembre 2012

  • 3 semaines

  • Salto-Consulting

Pour des besoins internes, j’ai mis en place une architecture interne de sauvegarde des machines virtuelles ou non en local et sur site distant. Le tout en utilisant des scripts bash, rsync, svn et git.

Tools

bash, rsync, git, svn

Développeur JEE - Développement spécialisé sur un projet B2B pour le compte d’EDF.
  • Juin 2012 à Août 2012

  • 2 mois et demi

  • Capgemini - EDF

Dans le cadre de la mise en place de plusieurs batchs architecturés autour de Spring Batch, j’ai créé un archetype maven définissant le socle commun de tous les batchs nécessaires au projet SGE-L, ainsi que le développement et la conception de plusieurs d’entre eux.

J’ai également formé des collaborateurs au framework Spring Batch et au spécificité du socle construit pour EDF. A savoir essentiellement : lancement d’un batch dans un environnment dédié via un script ksh et communication avec un cluster de weblogic via EJB.

Tools

Java 6, Spring (MVC, core) 3.1, Spring Batch 2.1, EJB 3, Weblogic 10.3, Oracle 10g, Maven 3, Spring STS, Jenkins, Sonar

Développeur JEE - Développement dans la cellule Agile de Kits – Service informatique du groupe Kingfisher.
  • Octobre 2010 à Juin 2012

  • 1 an et demi

  • Capgemini - Kingfisher Kits

Dans une équipe Agile en utilisant Scrum, je participe au recueil des besoins du client, propose des solutions techniques et fonctionnelles. Conçois des applications JEE et les maintiens en production. Nous participons donc à l’ensemble du cycle de vie des projets en collaboration directe avec les clients.

Nous faisons évoluer notre socle technique : initialement sous Spring 2.5 et Struts en Java 1.4, puis sous Spring MVC avec l’utilisation de Jquery en JEE6. Et en ce moment la mise en place de Bootstrap.

Nous procédons par itérations d’environ 10 jours, pour des projets très variés allant d’une semaine à 6 mois.

Tools

Jquery, Bootstrap, Tiles, Java 1.4 et 6, Spring (MVC, context, core, data-jpa) 2.5 à 3.1, Spring Batch 2.1, Hibernate 3, Oracle 10g et 9i, Tomcat 6 et 7, Hudson, Maven 2 et 3, Eclipse, Spring STS, Memory Analyser, Topcased, Jira

Développeur JEE - Support, maintenance et développement de l’outil back-office d’un site e-commerce.
  • Février 2010 à Septembre 2010

  • 6 mois

  • Capgemini - Décathlon - Oxylane

Maintenance évolutive de l’application Sirius, ERP - CRM Open Source utilisée pour gérer les différents entrepôts (à échelle européenne) gérant les commandes jusqu’à la livraison (liaison SI externe).

Tools

Apache Ofbiz, Oracle, Jira, Eclipse, Memory Analyser

Développeur JEE - Développement d’une application interne stratégique.
  • Janvier 2010

  • 1 mois

  • Capgemini - Adéo

Dans le cadre d’un pic d’activité, j’ai rejoint l’équipe de développement pour la réalisation de l’application.

Tools

Java 5, GWT 2, Spring 2.5, Hibernate 3, PostgresSQL 8.4, JBoss, Maven 2

Développeur JEE - Développement de plusieurs applications en agence et en clientèle
  • Février 2008 à Décembre 2009

  • 2 ans

  • Capgemini - SNCF Fret

J’ai commencé cette mission en développant des évolutions pour une application cœur de métier (SI DEF), avec de fortes contraintes de performances et d’interface utilisateur.

Puis je suis parti en clientèle pour une nouvelle application (Fleet) sur laquelle j’ai fait des ateliers pour définir le besoin du client, ce qui m’a permis d’écrire les spécifications. En plus du développement et des tests.

Après, je suis revenu faire de la maintenance évolutive sur une application existante (Base-Mission).

Ensuite pour une nouvelle application (Référentiel), nous avons utilisé des nouvelles techno (JPA 1 via Toplink, Flex 3 et Spring 2.5) pour améliorer l’expérience utilisateur, et améliorer la qualité des développements.

Enfin sur un projet existant (BOC) j’ai encadré des collaborateurs Marocains, écrit des conceptions techniques (j’étais le référent technique) en plus du développement et des tests.

Tools

Struts 1 et 2, Tiles, Flex 3, Java 1.4 et 5, EJB 2, Spring 2 à 2.5, Hibernate 3, Toplink, Oracle 9i et 10g, Tomcat 5, Weblogic 8, Maven 2, Eclipse

Développeur JEE - Maintenance, évolution et création de plusieurs applications
  • Juin 2007 à Janvier 2008

  • 6 mois

  • Capgemini - TMA mutualisé

Dans le cadre d’une TMA, j’ai entre autre travaillé pour Europipe, Dalkia, Labco. Je participais à la maintenance évolutive. J’ai découvert différentes infrastructures (interaction avec un EAI, cohabitation avec de l’oracle application…​), quelques bonnes pratiques et la rédaction de cahiers de tests.

Tools

Struts, JSF 1, Java 1.4 et 5, Spring 2, Oracle 9i, Tomcat 4.1, Jboss 4.2, Maven 1

Administrateur système - P.O.C mise en place d’un outils de gestion de signature numérique (PKI).
  • Avril à Juin 2006

  • 3 mois

  • Unilog - Stage

Dans le cadre d’une étude de faisabilité, j’ai étudié la mise en place d’une PKI (Public Key Infrastructure) via le choix parmis plusieures solution open source, puis la mise en pratique via la solution OpenCA avec Apache et OpenLDAP

Tools

Perl, PHP, OpenSSL, OpenCA, OpenLDAP, Apache

Diplôme et Formation

  • Juin 2019 - 1 jours : DevFest Lille - conférence de développeur

  • Février 2019 - 5 jours : Hacking & Sécurité : Avancé v6 via Sysdream

  • Septembre 2018 - 1 jours : Sfeir School Speaker

  • Juin 2018 - 1 jours : DevFest Lille - conférence de développeur

  • Avril 2018 - 3 jours : Breizhcamp - conférence de développeur

  • Avril 2017 - 3 jours : Breizhcamp - conférence de développeur

  • Octobre 2015 - 1 jours : Agile Tour Lille - conférence de développeur

  • Avril 2015 - 3 jours : DevoxxFR 2015 - conférence de développeur java

  • Février 2011 - 2 jours : Formation Flex 4

  • Octobre 2009 - 5 jours : Formation J2EE Expert

  • Septembre 2007 - 5 jours : Formation J2EE

  • 2007 : DUT informatique option Génie Logiciel à l’université Paris XIII

  • 2002 : Obtention du BAC S option Sciences de l’ingénieur, spécialité physique-chimie

Langues

  • Anglais : Technique lu et écrit

  • Français : langue maternelle

Loisirs

Passionné par mon métier je participe autant que possible aux meetup : Chti-JUG, GDG, ChtiJS et autre joyeuseté. Je m’intéresse fortement à l’écologie et au GreenIT. Et consacre un maximum de temps à ma famille et mes amis.


Ce curriculum vitae à été écrit avec vim en asciidoctor. Les versions sont gérées avec Git.