Je suis un jeune chercheur en ingénierie logicielle, intéressé par l'analyse des architectures logicielles et l'évolution des logiciels. Ma recherche est appliquée aux architectures logicielles pour la robotique.
Je suis actuellement enseignant-chercheur à l'école des Mines de Douai (site de l'équipe), où je travaille sur le génie logiciel adapté aux systèmes robotiques. Avant cette situation, j'était doctorant dans l'équipe-projet RMod(INRIA, Lille) où j'ai travaillé sous la supervision de Pr. Stéphane Ducasse. Ensuite, j'ai réalisé un post-doc avec Pr. Xavier Blanc (Sphere) au LaBRI, Bordeaux.
J'ai obtenu durant les 3 ans de mon doctorat un poste de moniteur à l'université de Lille 1, où j'ai enseigné le réseau et la programmation Java. Durant mon postdoc, j'ai enseigné les méthodes agiles (particulièrement la méthode SCRUM) et le réseau. Arrivé à l'école des Mines, j'ai monté un cours de "Programmation visuelle".
J'ai écrit mon premier article pour LinuxMag en Janvier 2010, à propos de l'utilisation des outils de profiling pour améliorer le temps d'exécution des applications dans Pharo. Actuellement, j'ai rédigé 3 articles pour LinuxMag.
J'ai également co-écrit 2 chapitres dans un livre collaboratif à propos de la réingénierie logicielle (disponible prochainement). Et je suis co-auteur d'un nouveau livre décrivant l'environnement Pharo, titré "More about Pharo". Il sera disponible prochainement.

Ma thèse concerne le domaine de la réingénierie de logiciels: Comment supporter l'évolution et la maintenance de grosses applications d'entreprises ? Le thème est: "Package Dependencies Analysis and Remediation in Object-Oriented Systems".
J'ai travaillé sur des approches aidant les ingénieurs à détecter les problèmes dans une architecture logicielle complexe. Ces approches montrent les dépendances non-souhaitées et aide les ingénieurs à les corriger. Nous avons appliqué ces méthodes sur des logiciels comme l'environnement de développement Pharo.
J'ai travaillé également sur un méta-modèle d'aide à la décision pour la réingénierie. Cette approche permet d'évaluer l'impact de modification sur une architecture avant d'appliquer ces changements sur le code source. Ce travail est utilisé par d'autres équipes de recherche (pdf).
Ma recherche appliquée: toutes les approches développées sont testées et validées sur des vrais systèmes logiciels. Elles sont testées par des développeurs de différents niveaux d'expertise pour obtenir du retour d'information sur leur utilisation. Ces recherches nécessitent la maitrise de la recherché empirique (empirical software engineering).