langages, patterns d'implémentation et d'architecture
applications et données distribuées
sécurité, outillage

Expériences de développement logiciel sur des technologies et au sein d'organisations variées, quelques expériences enrichissantes de lead d'équipe. Interactions directes avec les clients à toutes étapes projet, de la conception à l'exploitation.

Ecrit du code professionnellement depuis 15 ans. Abordé le sujet à la fois par les IHM et les réseaux afin de, tout au long de ses expériences, lire et écrire du code pour beaucoup de couches.

D'abord centré sur le web et les réseaux, les systèmes unix et les scripts d'administration, de PHP/*SQL à Python/Zope et de Javascript à sh en passant par les standards et protocoles du web ; utilisation intensive de Java et Python depuis 2002, de Ruby depuis 2006.

A présent concentré sur les technologies Java, Python et Ruby tout en continuant de pratiquer et découvrir d'autres langages.

Passionné par les architectures distribuées et les problématiques de conception/modélisation qu'elles impliquent, est tombé, professionellement, dans la marmite de ce qu'on appelle NoSQL aujourd'hui dès 2005.

Approche "sécurisée" du développement logiciel, des architectures et de leur exploitation.

Maîtrise de l'utilisation de la cryptographie comme outil au service de la sécurité (X.509, PKIX, SmartCards, Hardware Security Modules, PKCS#11).

Connaissances approfondies des systèmes d'exploitation, particulièrement Linux (Gentoo & Debian).

Depuis Septembre 2011 Conseil, développement et formation CodeArtisans

Création et gestion de la société CodeArtisans SARL.

Missions de conseil en développement, conseil technique avant-vente, développement sur mesure et "commando", configuration et maintenance de services, élaboration et tenue de formations.

Missions principales

Archives de France - Missions d'expertise Unix et de développements d'outils pour le métier de la conservation de données numériques.

NaturalPad - Formations sûr mesure pour l'équipe de développement, conseil technologique régulier.

Adullact Project - Conception et prototypage d'une application Android de parapheur électronique à destination des collectivités.

Montres Corum - Formation et accompagnement des équipes techniques. Développement d'un framework de création de réseau social d'entreprise.

LBSI - Développement d'une application de broadcast video basé sur Android, conseil en architecture cloud.

Cyleone - Etude et prototypage d'une solution de collecte, monitoring temps-réel et analyse de données captées par des drones civils ; du Linux embarqué à une interface HTML5 moderne.

Depuis 2002 Projets libres

Création de QiPki en 2010

Core Developer chez Qi4j depuis 2009

Contributions en documentation et code pour quelques projets, écriture de librairies et programmes complets.

Projets principaux et d'actualité

qipki En cours d'implémentation, une boite à outils cryptographique orientée développeurs.

swing-on-steroids Mini-framework Swing avec Supervising Presenters et Passive Views (aka. MVP), un MessageBus et optionnellement Guice ou Qi4j. Inclut une API de Wizard basée sur un graphe dynamique.

rwallet Coffre fort logiciel en ruby concu pour être utilisé dans des scripts shells.

shiro-ext Extensions pour Apache Shiro pour gérer l'authentification X.509 avec et sans reverse proxy

spicyplates SpicyPlates facilite l'usage de moteurs de templating pour des cas d'usage simples.

staticlet Servlet pour servir des fichiers sur HTTP/1.0 & HTTP/1.1 avec support des GET/HEAD conditionnels, des Ranges et des ETags.

asadmin Librairie et plugin maven pour instrumenter l'administration d'instances de Glassfish V2 et V3

ruby-maven-plugin Plugin maven pour utiliser ruby dans les builds

Janvier 2007 - Septembre 2011 Architecte Logiciel Netheos

Successivement développeur principal, chef de projet puis architecte logiciel sur la ligne produit eKeynox de Netheos, éditeur de logiciels de sécurité.

De début 2011 jusqu'à Septembre 2011, architecte sécurité logicielle au sein du laboratoire de sécurité de Netheos : projets de recherche et missions avec des universitaires et des clients privés.

Netheos / eKeynox

Produit déployé et utilisé par plusieurs entreprise du CAC 40 (énergie, banque ...)

En tant que développeur principal, au sein d'une équipe dune dizaine de personnes, rapport direct à la direction de la société

En tant qu'architecte, rapport direct au directeur technique, collaboration avec les chefs de projets, les développeurs et le support.

Garant des choix technologiques et de la cohérence des solutions mises en oeuvre.

Architecture et implémentation d'un TokenManagementSystem multi-serveurs en JavaEE déployé avec Glassfish 2 puis 3

Le TokenManagementSystem a pour charge la gestion de flottes de périphériques mobiles (USB et mobiles), d'y déployer des applicatifs, des données sécurisées, des politiques de sécurité ainsi que des certificats X.509

Couche de persistence utilisant Oracle JavaDB et Hibernate

Couche métier utilisant des EJB

Couche service exposée au travers d'APIs SOAP et HTTP/JSON (REST)

Console d'administration web fabriquée à l'aide de GWT

Client lourd en Swing avec swing-on-steroids et Guice

Ecriture de tests unitaires, d'intégration et de stress.

Architecture système et réseau assurant haute disponibilité et résilience du service

Configuration et exploitation de l'infrastructure de développement. Intégration Continue avec Jenkins, gestion des sources avec git & gitolite, gestion des binaires avec Nexus, analyse statique de code avec Sonar, suivit de projet avec Redmine.

Automatisation de la chaine de production, du code aux images DVD du produit avec Maven, Ruby et sh.

Netheos Security Lab

Impliqué dans des projets de recherche universitaires en sécurité/cryptographie.

Participation à divers projets hardware et linux embarqué à haut niveau de sécurité.

Conseil en architecture de sécurité sur les systèmes de reporting et facturation TV-DSL & SMS d'un grand opérateur français.

Participation à des projets spécifiques pour le gouvernement français.

Participation à divers projets spécifiques pour des clients privés.

Septembre 2002 - Janvier 2007 Conseil, développement et formation Indépendant

Missions de conseil en développement, conseil technique avant-vente, développement sur mesure et "commando", configuration et maintenance de services, élaboration et tenue de formations.

Missions principales

Libenti, ASCA Formations & EBI Consulting - Formateur professionel sur plusieurs formations au catalogue.

Sanofi-Aventis - 3 mois - Participation à la conception d'un datawarehouse dédié au reporting au sein du service Direction du Planning Stratégique. Création d'outils d'analyse et de publication de données.

Security Advanced Service - 4 mois - Ecriture d'un mini CMS pour gérer le site de la société.

Mars 2005 - Avril 2006 Responsable développement Ogeima

Responsable du développement d'un CMS à client riche.

Gestion d'une équipe de 4 personnes et rapport direct à la direction.

Composante serveur du CMS en PHP sur plateforme LAMP offrant des services web AMF pour clients Flash.

Client riche entièrement en Flash, participation au développement d'un toolkit graphique themable type Flex.

Mars 2003 - Août 2004 Développeur principal DFC Production

En rapport direct avec la direction, collecte des besoins, écriture complète puis exploitation et évolution d'une solution de e-learning pour une auto-école en ligne : permisecole.com

Exploitation du site en production sur plateforme LAMP installée sur serveurs dédiés.

Mise en place de services internes (serveurs de fichiers pour du rendu 3D et échanges multi-sites, backup)

Participation à la création de DVD interactifs ainsi qu'à un livre interactif en ligne.

Ecriture de plugins Autodesk Maya pour l'équipe 3D

Février 2000 - Septembre 2002 Développeur Scaling Software

Participation à la recherche et au développement de solutions à haut niveau de sécurité ayant fait l'objet de plusieurs brevets.

Développement d'interfaces d'administration d'appliances de sécurité (firewall, traceur réseau).

Développement d'un atelier de création de plate-forme de veille multi-clients pour Montpellier Technopole.

Firewall basé sur un noyau linux modifié et des composants matériels pour garantir la non corruption de la configuration.

Développement d'une interface de configuration de netfilter en PHP

Traceur réseau invisible utilisant des composants hardware pour garantir la non corruption des logs.

Participation à plusieurs projets clients dont une plateforme d'audit de sécurité où une interface d'administration web permettait de programmer des tests de vulnérabilités automatisés.

La plate-forme de veille était basée sur Zope/PostgreSQL et utilisait un indexeur Autonomy pour la recherche.

Anglais (bon niveau - lu, parlé, écrit) - Maitrise de l'anglais technique