En charge de l’outillage et du cycle de développement logiciel pour une équipe de
développeurs C cross-platform.
J’ai réalisé (et intégré) l’ensemble des outils permettant à l’équipe de développement
de produire un code de qualité, d’être productive et de livrer des applicatifs fiables.
Cibles: Windows desktop, macOS, iOS, android, linux. + historiquement : WinCE, Windows
Mobile, symbian. + à venir : tvOS, watchOS, linux/ARM (ex : Raspberry Pi).
Principales réalisations :
• Conception et développement d’un transpileur (traducteur) Pascal vers C pour tirer parti
d’une base de code historique.
• Conception et développement des chaînes de build (cross-compilation depuis Linux via
des containers dockers dédiés) pour les cibles sus-citées.
• Développement des couches OSAL (OS Abstraction Layer) pour les cibles sus-citées.
• Déploiement de l’infrastructure de build et de test (machines physiques, devices mobiles,
machines virtuelles, containers).
• Conception et développement de générateurs de code :
- pour générer des « wrappers » permettant à nos libs écrites en C d’être utilisées dans
d’autres langages : Java, Python, PHP, javascript (NodeJs), Pascal, etc.
- pour générer la couche de validation XML à partir d’une description de haut niveau
(DSL – Domain Specific Language)
- pour générer des squelettes de code source (permettant de « bootstraper » les
développeurs sur certaines tâches)
• Conception et développement d’un analyseur statique de code (pour le C) :
- Détection d’anomalies très en amont du cycle de développement
- Vérification du maintien des règles de développement et bonnes pratiques en vigueur
• Intégration et déploiement d’outils (principalement open source) : bug tracker, git, docker
registry, serveur d’intégration continue.
• Mise au point et maintenance de la machine virtuelle utilisée quotidiennement par les
développeurs C et intégrant tous les outils.
J’ai aussi :
• Animé des ateliers pour promouvoir des bonnes pratiques orientées qualité.
• Effectué la maintenance corrective et évolutive de tous ces outils sur la durée.
Stack technique / outils / mot-clés :
Groovy, Gradle, docker, Jenkins, Ansible, Git, Gitblit (sim. Gitlab), Vert.x, gcc, clang/llvm,
PHP (cli), Kotlin, ANTLR 4, Bash, Eclipse, IntelliJ, AST, VMware, KVM.