Mon Curriculum vitae

J’aime penser qu’il y a de la place pour des développeurs expérimentés, personnes de confiance qui savent partager leur vision, transmettre leurs idées et soutenir les meilleures idées des autres membres de leur équipe.

J’aime travailler au sein d’une équipe, développer du logiciel qui fonctionne, accompagner le client dans ses choix pour qu’il obtienne le produit qui lui sied le mieux.

J’aime avoir de l’espace pour expérimenter de nouvelles technologies, de nouveaux outils, de nouvelles méthodes pour trouver les meilleures solutions aux problèmes que je rencontre, trouver sans cesse de nouvelles pistes d’amélioration. J’aime terminer une journée en ayant appris quelque chose sur moi, sur mon entourage professionnel, en m’étant perfectionné dans une de mes compétences ou bien en ayant ajouté une nouvelle corde à mon arc.

Enfin, j’ai fait miens depuis longtemps les valeurs et principes de l’agilité et pense qu’il s’agit là du meilleur moyen pour garantir la réussite des nombreux projets informatiques. Je trouve que cette approche fondée sur l’humain (des logiciels développés par des hommes pour être utilisés par des hommes) correspond en tout point à mes valeurs personnelles, et travailler de la sorte contribue fortement à mon bonheur personnel.

Travail en équipe, amélioration continue, remise en questions, curiosité, efficacité, joie de vivre.

En bref

  • Agiliste : Xtreme Programming, Scrum, TDD, Tests d’Acceptance, travailler en équipe, relever des défis
  • Développeur : Java, Python, Ruby, Erlang/Elixir, Scala, Javascript

Lectures marquantes

(sans ordre particulier)

  • Continuous Delivery, Jez Humble et David Farley
  • Release It!, Michael T. Nygard
  • TDD by example, Kent Beck
  • Clean Code, Robert C. Martin
  • Working Effectively with Legacy Code, Michael Feathers
  • Effective Java, Joshua Bloch
  • Java Concurrency in Practice, Brian Goetz
  • Domain-Driven Design, Eric Evans
  • Becoming a Technical Leader, Jerry Weinberg
  • Quality Software Management, Jerry Weinberg
  • Nature of Order, Christopher Alexander

Expérience professionelle : les grandes lignes

  • depuis Juillet 2016 : CTO, Deepki (deepki.com)
  • Septembre 2013 - Juin 2016 : Lead développeur / coach agile, Target2sell (target2sell.com)
  • Septembre 2007 - Septembre 2013 : Développeur, Orange - Multimédia Business Services (orange-business.com)
  • Sept. 2003 - Juin 2007 : Ingénieur d’études, Atos Origin (atos.net)
  • Février - Juillet 2003 : Stage ingénieur de six mois, France Télécom (orange.com)

Expérience professionelle chez Deepki

Deepki est une startup fondée en 2014 par Vincent Bryant et Emmanuel Blanchet. Deepki digitalise la gestion des grands parcs immobiliers. Grâce à ses applications qui allient data-analytics et expertise immobilière, Deepki aide ses clients à dématérialiser et fluidifier les processus de gestion de leur patrimoine immobilier et à détecter les économies de charges et d’énergie.

L’un des objectifs de Deepki et donc de son équipe technique est d’utiliser les technologies de pointe pour répondre à des besoins opérationnels notamment pour massifier la transition énergétique.

J’ai rejoint Deepki en juillet 2016 en tant que CTO. Depuis, ma mission a consisté à structurer nos équipes de développement, les faire grandir, développer chaque individu dans l’équipe. Mon autre mission consiste aussi à projeter la vision technique, à anticiper les futurs challenges que va rencontrer Deepki dans sa croissance.

Je crois aux équipes auto-organisées, responsables et autonomes. J’ai souvent constaté dans mon parcours la puissance de l’intelligence collective pour réaliser de grandes choses pour nos clients et pour progresser individuellement sur ses compétences. Mon objectif est de construire cette culture au sein de l’équipe technique de Deepki de manière durable.

J’ai de la chance d’etre entouré par une équipe compétente, motivée au sein de laquelle je passe d’excellents moments.

Expérience professionelle chez Target2sell

Target2sell est une statup dans le secteur du e-commerce. Target2sell vend un moteur de recommandations personnalisées en temps réel. À mon arrivée, nous étions en tout et pour tout 4 personnes. Depuis l’entreprise a grandi et notre porte-feuille clients aussi, la scalabilité est vite devenue un soucis de tous les instants. Dans ce cadre, le nombre de taches et de responsabilités exercées a été très grand, c’est difficile d’en faire le tri.

  • Pour la partie technique :
    • complète automatisation de l’infrastructure (ansible)
    • refonte du build et automatisation du processus de livraison : nous sommes passés d’une laborieuse mise en production par quinzaine à plusieurs par jour sans interruption de service (la mise en production est devenue un complet non-événement)
    • architecture évolutive : un compromis entre le budget trés serré et les besoins immenses de scalabitié et d’évolutivité. Le trafic double tous les trois mois depuis 3 ans
    • introduction de nombreuses technologies innovantes (redis, Cassandra) et amélioration de l’utilisation des technologies existantes (MongoDB, RabbitMQ)
    • beaucoup de code (nouvelles fonctions, nombreuses optimisations, corrections de bugs de concurrence vicieux)
    • migration de la base de code à java 7, puis java 8
  • Pour la partie coaching :
    • animation des rituels
    • standardisation des process agiles (daily meeting, bascule de sprint, rétrospectives)
    • coaching “par l’exemple” sur les pratiques d’ingéniérie issues de l’Extreme Programming : TDD (test first), intégration continue, tests d’acceptance/intégration (test firt aussi), conventions de code, planning collaboratif

Environnement et technologies : java, javascript, MongoDB, redis, Cassandra, RabbitMQ, nginx, ansible, linux

Expérience professionelle au sein de Orange - Multimédia Business Services

Dans un environnement sain et protégé, soutenu par la Direction des Projets, j’ai pu travailler toutes ces années dans de véritables équipes agiles en appliquant les pratiques XP. J’ai pu être un acteur actif de la communauté agile de cette entreprise et m’y épanouir de maniere considérable.

Décembre 2011 - Septembre 2013 : Neko : Solution de chat multiclient d’intégration facile dans le site des clients

  • Mon premier projet from scratch !
  • Création de l’architecture (qui répond bien aux changements fonctionnels comme de scalabilité)
  • Coté serveur : python + redis + MongoDB et ejabberd (XMPP)
  • Coté client : IHM d’administration et de supervision (temps réel) ; client XMPP en javascript
  • Fonctionnalité avancées : partage de documents sans plugin navigateur, transfert de chat, conversation a plusieurs, lecture discrète
  • Envoi de statistiques quotidien et module de facturation (map-reduce)
  • bencheur maison en python (fabric + twisted + supervisor)

Environnement et technologies : python, javascript, Linux, git, MongoDB, Redis, ejabberd, puppet, XTreme Programming, TDD

Decembre 2008 - Decembre 2011 : AVSP : Audio-Video Service Plateforme, vidéo sur mobile d’Orange, coté serveur

  • Service grand public 24/7, fortement médiatisé (pas le droit à l’erreur). Grandes exigences de performances : 98% des requètes servies en moins d’une seconde, 99,85% de disponibilité. Migrations de gros volumes de données dans des bases de près de 500Go
  • Remaniement complet d’architecture : mise en place d’un bus de données pour découpler les frontaux des bases de données
  • Standardisation des outils de développement : mise en place d’une environnement chroot
  • Passage à git
  • Refonte du build (maven vers buildr) : simplification, efficacité, rapidité, prise en main par l’équipe du build
  • Nombreuses évolutions du service malgré des demandes souvent contradictoires ou très incomplètes
  • Mise en place de benchs en continu
  • Mise en place de l’agilité (avec l’appui fort de la direction)
  • Nombreuses sessions de design en équipe pour imaginer l’avenir de ce service, du code jusqu’a la base de données sans jamais oublier l’utilisateur final
  • Nombreuses taches de programmation standard en TDD (écrans dans des IHM Web, découplage de modules, web-services XML) avec un soucis permanent de réduction de la dette technique pour faciliter le travail de maintenance
  • Ecriture d’un bencheur maison en ruby (jeté pour cause de très mauvaises performances)

Environnement et technologies : Java J2EE (avec quantité de frameworks), Linux, XTreme Programming, TDD, buildr, git, Fitnesse, RabbitMQ, jQuery

Septembre 2007 - Decembre 2008 : Contact-Direct : Centre de téléphonie virtuelle pour les clients Business d’Orange

  • Remaniement d’architecture : passage d’un mode 100% noyau centrique à un mode client/serveur VXML
  • Refonte du build (maven vers buildr) : simplification, efficacité, rapidité, prise en main par l’équipe du build
  • Impitoyable destructeur de code mort
  • Réduction de la dette technique pour faciliter le travail de maintenance et baisser le coût des évolutions suivantes
  • Ecriture d’un bencheur maison en erlang

Environnement et technologies : Java J2EE, Struts, Spring, Eclipse, Linux, XTreme Programming, TDD, buildr, Subversion, Fitnesse

Expérience professionelle chez Atos Origin

Mai 2006 - Juin 2007 : Projets iSA et B2C : Mission chez Sogecap.

Découverte de l’Xtreme Programming, du TDD

  • revamping d’écrans AS400 en J2EE
  • écriture d’un module financier

Environnement et technologies : Java J2EE, Struts, Eclipse, XTreme Programming, TDD, Websphere, jBoss, Maven, Subversion, Fitnesse

Janvier - Mai 2006 : Projet SUREN2 : Mission au forfait pour la Banque de France.

Le projet SUREN2 est la refonte de la gestion des dossiers de surendettement de la Banque de France :

  • Conception de la navigation de nouveaux écrans ; développement des JSP pour ces nouveaux écrans
  • Correction des anomalies internes, externes et client
  • Révision de tous les écrans pour amélioration de l’ergonomie générale lors du changement de résolution

Environnement et technologies : Java J2EE, Struts, Eclipse, JBoss, Tomcat, JUnit, XML, Ant, HTML, Javascript, CSS, CVS

Avril - Décembre 2005 : Projet ORPER : Mission au forfait puis chez le client pour la MGEN via le G.I.E. interne à la MGEN (Effigie).

Le projet ORPER est la refonte du Système d’Information de la MGEN :

  • Refonte complète d’écrans
  • Suivi des mises à jour des spécifications détaillées, force de proposition pour des améliorations fonctionnelles
  • Déployement et livraison de l’application dans le SI de la MGEN (manuellement, puis par scripts Ant sou mon impulsion) sous environnement Websphere
  • Gestion de la configuration sous CVS avant livraison
  • Correction d’anomalies
  • Participation aux campagnes de tests en renforcement des équipes d’intégration

Environnement et technologies : Java J2EE, Struts, IBM WSAD, Websphere, Ant, CVS

Avril - Mai 2005 : Projet GP2 : Mission au forfait pour Michelin.

Le projet GP2 de gestion de production de pneus :

  • Amélioration de l’interface utlisateur et de l’ergonomie de l’application
  • Amélioration des performances générales

Environnement et technologies : Java , Swing, Java Web Start, API JGantt, CVS.

Septembre 2003 - Avril 2005 : Projet SansomFE : Mission chez le client pour France Télécom.

Le projet SAMSON FE est un projet de supervision métier du processus de facturation entreprise :

  • Conception développement et tests de l’application de supervision de la chaine de valorisation des détails de communication de la facturation Enteprise, depuis l’expression du besoin jusqu’au livrable à l’aide du progiciel Business Bridge de la Société SYSTAR
  • Extension des possibilités du produit en lui ajoutant de nombreux traitements externes en Perl et en AWK afin d’améliorer considérablement les perfomances
  • Projet sous charte projet à jalons (Agathone) France Télécom
  • Formation de l’équipe sur les spécificités du produit développé (SansomFE) et sur les points difficiles de Business Bridge pour assurer le transfert de compétences

Environnement et technologies : BAM, Business Bridge de Systar, Perl, AWK, UNIX, HTML, CSS

Stage ingénieur (2003)

Dans le Service National de Production Informatique (SNPI), j’ai développé des applications de supervision métier à l’aide de l’outil de BAM (Business Activity Monitoring) Business Bridge de Systar (systar.com).

Compétences dans le domaine de l’informatique

  • Systèmes d’exploitation :
    • UNIX : Linux, Mac OS X, Solaris, FreeBSD
    • Linux : Ubuntu, Debian, Mandrake/Mandriva, Gentoo
    • docker
    • AWS (Amazon Web Services)
  • Langages de programmation :
    • Java (JEE) / maven / buildr / gradle
    • Python
    • Erlang / Elixir
    • Ruby / Rake
    • Scala
    • Javascript
    • Perl
    • Programmation shell Unix (bash, grep, awk etc)
    • SQL
  • Méthodes de développement et/ou de conception :
    • Extreme Programming
    • TDD : Test-Driven Development (développement tiré par les tests)
    • Conception émergente (“Set based design”)
    • UML
  • Bases de données :
    • Redis
    • MongoDB
    • InfluxDB
    • Cassandra
    • MySQL
  • Bus de données :
    • RabbitMQ
    • rq
    • SQS
    • Kafka
  • Devops :
    • ansible
    • terraform
    • nginx, apache
  • Environnements de développement :
    • vim, Eclipse, IntelliJ Idea, Sublime Text
    • Gestion de version : Git, Subversion, CVS

Langues étrangères

  • Français : Langue maternelle
  • Anglais : Très bon niveau lu, écrit, parlé
  • Allemand : Niveau moyen, mais bonne compréhension orale