Archonis
Hadrien

Bonjour, je m'appelle Hadrien, développeur freelance backend et architecte logiciel. Lorsque je développe, j'accorde un soin particulier à la qualité du code, ce qui lui apporte certaines propriétés telles que la modularité et la maintenabilité. Vous envisagez de faire appel à mes services? Pour vous donner une idée de mes compétences, voici quelques exemples de projets que j'ai menés, et la touche personnelle que j'y ai apporté.

CADLM

La société CADLM

J'ai travaillé de nombreuses années auprès de CADLM, une société dont le coeur de métier est de faire de l'optimisation avec du calcul de structures. Cette société a la particularité d'être positionnée sur le marché du machine learning depuis plus de 30 ans. Editeur de logiciels, la société développe et mène des études aussi bien en interne que pour le compte de ses nombreux clients. Les projets qui suivent sont ceux que j'ai menés en tant que salarié de CADLM.

Ariane Group Moteur Vulcain Spectrogramme

Analyse spectrographique de moteurs de fusée

Les moteurs de fusée nécessitent la mise au point de mécanismes devant résister à des contraintes extrêmes. De ce fait, le positionnement de capteurs à des fins diagnostiques est particulièrement coûteux. Pour pallier à cet inconvénient, Ariane Group utilise des sondes accélérométriques qui peuvent être placées à l'extérieur de la chambre de combustion. Le régime vibratoire renseigne alors sur l'état des turbopompes.

Je suis intervenu dans ce projet sur le développement du logiciel d'analyse spectrographique. Bien que cela ne faisait pas partie de la demande, j'ai intégré au logiciel un navigateur de spectrogrammes très avancé. Non seulement cela a aidé à la bonne compréhension des phénomènes et donc accéléré la mise au point de l'algorithme d'extraction des raies spectrales, mais en plus ce navigateur s'est montré être un excellent support pour les présentations, ou encore pour la formation des novices. De plus, ma polyvalence s'est montrée très utile lors de l'implémentation de l'algorithme d'extraction des raies spectrales : en effet, les spectrogrammes étant des signaux bi-dimensionnels, l'algorithme mis au point est un hybride entre traitement du signal et traitement d'images.

LangagesLibrairieDomaines d'application
C++
Python
Quasar
QtAérospatial
Régimes vibratoires
MMT Prise de vue aérienne

Projet Man-Machine Teaming

La DGA investit auprès de nombreuses sociétés afin de faire émerger de nouvelles technologies de pointe dans l'aviation militaire. CADLM a été sélectionné pour la mise au point d'algorithmes de compression intélligente de prises de vues aériennes.

Nous étions plusieurs développeurs et chacun devait mettre en place de multiples algorithmes de compression afin d'offir une base de comparaison variée, à la demande du client. Au cours de ce projet, j'ai assez rapidement pris le rôle de référent en matière de compression d'images. De plus, la structuration de mon travail a été progressivement étendue à l'ensemble du groupe, afin de faire tourner tous les algorithmes sur un banc de test unique. À la fin du projet, mon algorithme a été sélectionné aussi bien pour son taux de compression que pour son adaptabilité.

LangagesLibrairiesDomaines d'application
C++
Quasar
Défense
Images SAR
Compression d'images
Quasar Langage de scripting

Quasar2

Ce projet est mon chef-d'oeuvre. Développé en interne, il s'agit d'un langage de programmation à part entière, optimisé pour servir de lien entre les logiciels de simulation de nos clients et les algorithmes d'optimisation de CADLM.

La première version de Quasar était née d'un heureux accident. Initialement conçue comme une simple pile de résolution d'expressions numérique, les demandes de nouvelles fonctionnalités se sont multipliées frénétiquement. Comme le coût temporel des fonctionnalités suivait une croissance exponentielle, j'ai lancé le projet Quasar2. Avec la bonne architecture en tête, il m'aura suffit de seulement 3 mois pour sortir la première release. Pile d'appel de fonctions, référencement intelligent, surcharge d'opérateurs, polymorphisme, bibliothèques... L'interpréteur intègre tout ce qui se fait de mieux en matière de langage de programmation. Devant Matlab ou Python, CADLM fonde désormais tous ses projets sur ce moteur.

LangageLibrairiesDomaines d'application
C++Interpréteur de langage
Calcul matriciel
Optimisation
Affichage de courbes

Supernova

Lorsqu'on réalise une optimisation de structure, de très nombreux paramètres viennent influencer une fonction de coût. Travailler sur ce type de fonctions est particulièrement difficile dans la mesure où notre perception de l'espace est limitée. Supernova est un afficheur de courbes graphiques optimisé pour l'affichage de données n-dimensionnelles (comprendre : n très élevé). Dans ce projet, j'ai conçu une architecture particulièrement polyvalente, faisant de Supernova un puissant navigateur de données.

LangageLibrairiesDomaines d'application
C++Qt
OpenGL
Graphes interactifs
Calcul n-dimensionnel
Vedecom Conduite autonome

Algorithme de fusion de données pour véhicule autonome

L'institut VEDECOM met en place un environnement de tests pour la mise au point de véhicules autonome. Afin d'offrir des situations les plus authentiques et exhaustives possible, VEDECOM fait rouler des véhicules équipés de capteurs et acquiert des péta-octets de données. Mon rôle dans ce projet a été de regrouper les données capteurs afin de reconstituer la scène réelle. La grande difficulté dans cette tâche est de regrouper les données provenant de sources diverses présentant des incohérences. J'ai cependant accompli cette tâche avec succès là où mes prédecesseurs avaient échoué. Qui plus est, avec un temps d'exécution rapide.

LangagesLibrairiesDomaine d'application
C++
Matlab
Qt
OpenGL
Véhicules autonomes

Eugen Systems

Eugen Systems

Mon cursus ingénieur s'est clôturé par un projet de fin d'études en entreprise, chez Eugen Systems. Il s'agit d'un studio de développement de jeux vidéos situé à Paris. Le studio se spécialise dans le développement de jeux de stratégie temps réel, l'idéal pour moi qui apprécie l'optimisation du code. Le projet suivant a été réalisé en tant que stagiaire chez Eugen Systems.

A10 Warthog Trajectoire de vol Modèle physique

Moteur de mouvement des unités aériennes

Lors de mon arrivée en stage le studio venait de sortir son dernier jeu, Wargame, et commençait le développement de son extension. Au début, je suis intervenu sur quelques fonctionnalités du moteur de jeu.

Après avoir fait mes preuves, on m'a confié l'implémentation de la totalité du moteur de mouvement des avions. Celui-ci est consitué de trois parties : le moteur physique, qui suit les commandes d'un pilote asservi, lui-même suivant une trajectoire géométrique calculée à partir des points de passage. L'avantage quand on implémente une fonctionnalité en partant de zéro, c'est qu'on a la possibilité de mettre en place l'architecture de son choix. Sur ce projet, j'ai tout misé sur la modularité.

Le modèle physique est conçu pour s'assembler tel un jeu de construction. Et ses propriétés permettent au pilote asservi d'en déduire directement ses coefficients. Cela permet de faire ressortir la personnalité des appareils sans avoir à régler de coefficients empiriques. De plus, le même modèle pourrait tout à fait s'étendre à n'importe quel autre véhicule, comme des navires, des hélicoptères, etc.

LangageLibrairiesDomaines d'application
C++Modélisation physique
Asservissements