Voici mon CV complet. Des CVs par techno sont disponibles pour Java, Golang, Python et XML/XSLT.
Je suis un développeur pragmatique qui rejette tout dogmatisme et n’envisage pas l’échec comme une option. Mon expérience, tant sur le plan technique qu’humain, me permet de sécuriser les projets sur lesquels je travaille.
Michel Casabianca
110 cours Saint Louis
Bat B App 44
33300 Bordeaux
06.86.99.63.89
casa@sweetohm.net
https://sweetohm.net
https://github.com/c4s4
http://linkedin.com/in/casabianca
Ma première tâche a consisté à réécrire deux applications hautement critiques. Elles encaissent une charge importante mais étaient extrêmement fragiles : documentation incomplète et obsolète, pas de tests (ni unitaires, ni d’intégration), complexité inutile et non maîtrisée.
J’ai commencé par écrire un jeu de tests d’intégrations de manière à comprendre le fonctionnement et l’interface de ces applications avec le monde extérieur. J’ai assuré une couverture d’environ 80% afin de pouvoir réécrire ces applications avec un degré de confiance suffisant.
J’ai ensuite réécrit ces applications pour le simplifier et en améliorer les performances. J’ai pu obtenir un gain de x2 et x7 respectivement. Ce qui était assez inattendu dans la mesure où j’ai utilisé le même langage de programmation, le GO.
Pour finir, j’ai optimisé les performances en profilant le code avec Pprof. J’ai été conduit à remplacer le bibliothèque JSON par défaut du GO par une version plus performante. En effet, l’application est amenée à parser et générer de gros volumes de données au format JSON.
Lors de l’écriture des tests d’intégration, j’ai été amené à développer un outil de test d’intégration en réutilisant les composants que j’avais développé par ailleurs lors de ma contribution au projet open source Venom.
D’autre part, j’ai été amené à développer des fonctionnalités pour le projet open source Swagin. En particulier un limiteur capable de changer le nombre de requêtes simultanées du serveur en fonction de la mémoire disponible.
Par la suite j’ai développé de nouvelles fonctionnalités pour ces applications, dont un système de géolocalisation basé sur le traitement des fichiers RIR.
Ma dernière tâche a consisté à porter en Rust une base de données en lecture seule, HiloDB, dont un prototype avait été développé en JavaScript. Cette base permet de stocker des données sensibles de manière sécurisée et de les interroger sans révéler leur contenu. J’y ai ajouté une implémentation avec l’algorithme CVM.
En tant que Lead Backend Developer, je développe des microservices en Go avec les frameworks Gin + Gorm + SwaGin. J’oriente les choix techniques en réalisant des POCs en concertation avec l’équipe. J’ai aussi contribué à des projets Open Source afin de corriger et améliorer les outils suivants :
J’ai aussi assuré des présentations sur des sujets techniques tels que Git, Docker Compose, Gobinsec, Message Broker, Document Databases, SwaGin, Go Generics, NeON. J’ai aussi soumis à l’équipe des challenges de code et publié des articles sur le blog d’Intercloud (à l’adresse https://blog.intercloud.com).
Développement et maintenance d’une application web d’annotation d’images médicales, avec web services Python Flask avec SQLAlchemy, interface JavaScript et Cornerstone.
Développement d’une application Androïd Kotlin d’échographie cardiaque guidée par un algorithme maison de machine learning.
Développement d’une application Django pour l’administration des patients, examens et opérateurs de l’application Androïd et consultation des échographies par les cardiologues. La synchronisation avec l’app est réalisée avec un webservice REST en Go. Développement d’un viewer web d’échographies cardiaques avec la bibliothèque Cornerstone.
Rationalisation de la plateforme (mise derrière un reverse proxy pour se débarrasser d’une iFrame) avec Docker Compose, rapatriement de code C++ dans le webservice Python. Automatisation des déploiements, avec backup automatisés de la BDD et possibilité de rollback. Mise en place d’une machine de staging.
Sensibilisation de l’équipe aux problématiques de sécurité, mise en place d’une charte et implémentation des bonne pratiques.
Formation Git sur les branches et publication d’un aide mémoire.
J’ai été recruté pour faire évoluer le backend historique en Perl vers de nouvelles technologies telles que Python ou Golang et mettre en place de bonnes pratiques de développement logiciel telles que tests unitaires et d’intégration, documentation, etc.
J’ai assuré la maintenance du backend en Perl et développé un webservice haute performance de traçage des codes dépréciés, en Go.
Pendant cette courte mission, j’ai développé des outils d’import et d’export de fichiers CSV vers le serveur Django. J’ai grandement amélioré les performances de la solution existante en écrivant des requêtes SQL complexes et en implémentant une stratégie de cache dans le serveur.
J’ai été Lead Developer Backend chez mieuxplacer.com pendant un an et demi. J’y ai eu en charge le développement et la maintenance du backend Python/Django :
Rationalisation de l’infrastructure sur AWS, avec mise en place de machines Debian et d’un serveur de développement dans nos locaux.
Fin 2015, j’ai quitté le groupe Orange pour repasser en Freelance :
Au sein de l’équipe Vodoo (2008-2009), j’ai travaillé sur un projet de vidéo à la demande au sein d’une vaste équipe localisée à Bordeaux, Paris et Lille. Travail sur du logiciel Java (côté serveur) et JavaScript (côté box TV).
J’ai été ensuite volontaire pour évaluer et mettre en œuvre Talend au sein d’un projet de batchs de statistiques, 1013 et 3900 (en 2009). Le projet a été terminé avec des batchs en Python et SQL. Interface utilisateur avec graphes en Flash.
Nous avons ensuite mis à profit notre expérience Python dans un projet de chat vidéo bancaire, VisioCC. Mise en œuvre de Django pour le backend d’administration et les webservices appelés par le chat vidéo en Flash.
J’ai ensuite intégré l’équipe Telefact (2010-2013) pour développer un backend de configuration avec Django et mettre l’applicatif Java au standard PCIDSS (sécurité bancaire).
J’ai fait un bref passage dans l’équipe MonSVI (début 2014) pour mettre en place des batchs de statistique en Python et SQL.
J’ai par la suite intégré début 2014 l’équipe xMS pour réfactorer le frontal de rupture de protocole sgs-enabler. Il avait été développé en Java et NIO et a été réécrit en Go. Gain de fiabilité et de performances énorme. Cette mission a donné lieu à un retour d’expérience sur Go (présenté à BDX.IO, aux DevDays et aux Midi Techniques Orange), disponible ici https://sweetohm.net/slides/go-retour-experience/.
Pour finir, j’ai rejoint mi-2014 l’équipe Cloud pour développer des outils (en Python essentiellement) de gestion du parc des machines virtuelles.
A l’occasion de ces missions, j’ai été amené à développer des outils utilisés au sein d’OAB et diffusés sous licence Open Source :
Pour finir, j’ai eu l’occasion d’animer au sein d’OAB de nombreux ateliers et formations sur des thèmes techniques tels que Python, Django, YAML, Go et Raspberry Pi.
Après mon départ d’In-Fusio, suite à un plan social, je me suis mis à mon compte en tant que développeur indépendant. A cette occasion, j’ai mené à bien les missions suivantes :
Dans le département R&D chez In-Fusio, société Bordelaise de services de jeu sur téléphone mobile ayant développé des technologies côté téléphone (ExEn et EGE) et côté serveur (Gamezilla). La plateforme Gamezilla gère les interactions avec les joueurs, téléchargements et SMS, depuis 2001 avec une disponibilité supérieure à 99 %. Gamezilla a géré plus de 20 millions de joueurs ayant effectué 30 millions de téléchargements et 220 millions d’interactions dans 45 pays.
Développement de près de la moitié des modules de la plateforme Gamezilla, des applications web pour l’essentiel (Servlets, JSP et PHP, mais aussi Python et Ruby).
Élaboration de l’architecture de Gamezilla, tout d’abord en tant qu’expert (en l’absence d’architecte logiciel), puis au poste d’architecte. Travail sur les performance ayant permis un gain d’un facteur 10, mise en place d’un processus de développement comportant une gestion des dépendances, un nightly build ainsi qu’une suite d’outils de développement, gestion centralisée de la documentation (à l’aide d’un Wiki).
Activités de veille technologique sur les serveurs d’application Java (choix de BEA Weblogic), JMX (management d’applications Java), Maven (build d’applications Java) et JSR 124 (Java Vending Machines).
Formations en interne données aux membres des équipes sur les bases de Java et la programmation objet ainsi que sur XML et XSLT.
Chef de projet en intérim pendant 6 mois pour l’équipe GameZilla (6 développeurs).
Travaux d’édition pour les Éditions O’Reilly :
Série d’articles pour Oracle Magazine :
Développement Java pour les Éditions O’Reilly et SdV Plurimédia :
Écriture et traduction d’articles sur XML pour Quelm.
Enseignement des Sciences Physiques et Chimie au lycée technique Le Corbusier à Strasbourg.
Passionné d’informatique, je développe de nombreux projets sous licence Open Source, que l’on peut trouver sur mon compte https://github.com/c4s4. En particulier :
Je maintiens un site personnel https://sweetohm.net qui contient les textes de mes conférences, des articles, des applets Java de jeux et autres curiosités informatiques.
D’autre part, j’interviens régulièrement dans des conférences sur des sujets techniques :
Pour finir, quelques activités personnelles dans le domaine de l’informatique :