Chez Thales, leader mondial dans les domaines de haute technologie, j'ai eu l'opportunité d'exercer en tant qu'ingénieur logiciel sur le projet SCORPION. Ce projet d'envergure visait à moderniser l'arsenal de l'armée française par le développement de véhicules blindés équipés de systèmes électroniques sophistiqués
En tant que contributeur à ce projet, j'ai amélioré mes compétences en développement logiciel, en tests d'automatisation et en intégration continue de logiciels dans des systèmes complexes. J'ai également acquis une expérience précieuse en travaillant dans un environnement au rythme rapide et sous haute pression, où j'ai appris à équilibrer le besoin de livraisons en temps opportun avec l'importance de maintenir des solutions logicielles durables et de haute qualité.
J'ai eu l'opportunité d'employer une diversité de technologies, d'outils et de logiciels, qui ont joué un rôle crucial dans l'exécution réussie de mes tâches.
En tant qu'ingénieur logiciel, j'ai été responsable du développement de composants logiciels en C++, nommés « bridges », qui forment un lien essentiel entre l'électronique embarquée du véhicule et son équipement militaire. Ces « bridges » assurent la communication via un bus de messagerie logiciel (Bus DDS) et contrôlent les équipements via des liaisons Série, Ethernet ou CAN, en mettant en œuvre du multithreading et des mécanismes d'interruption.
En tant qu'ingénieur logiciel, j'ai apporté une contribution significative au développement et à l'intégration des logiciels, collaborant étroitement avec les équipes d'opérations et d'IVQ pour garantir une intégration sans heurt et performante.
Tout au long du projet, j'ai été impliqué dans différentes étapes du cycle de vie du développement logiciel, de la conception initiale à la mise en œuvre en passant par les tests et la validation. Ce projet a présenté des défis uniques en raison des exigences rigoureuses des systèmes militaires, notamment une fiabilité élevée, une communication à faible latence et des mesures de sécurité robustes.
Dans mon équipe, j'étais responsable de plusieurs tâches critiques, y compris :
Spécialisé dans le développement de composants logiciels en C++, en se concentrant sur l'efficacité et la performance pour répondre aux exigences spécifiques des systèmes.
Développement d'interfaces de communication pour les ponts et les services, en utilisant un bus de messagerie logiciel avancé dans le véhicule. Chaque message était conçu pour respecter les API respectives.
Mise en œuvre de tests unitaires et fonctionnels rigoureux pour assurer la robustesse et la fiabilité des logiciels développés, garantissant une qualité constante et une conformité aux normes élevées.
Optimisation et amélioration des processus d'intégration continue via Jenkins, contribuant à accélérer le développement et la livraison de solutions logicielles.
Intégration efficace de ces composants dans l'écosystème logiciel du véhicule sur cible Linux, assurant la cohérence et la compatibilité dans l'ensemble du système.
Contribution au projet SCORPION, en assurant une livraison ponctuelle des composants logiciels.
Migration réussie de la chaîne de compilation vers Cmake.
Développement d'une plateforme de test personnalisée pour automatiser et accélérer les phases de test et de validation. La plateforme, simulant une partie de l'environnement réel du véhicule, a été développée en Python et configurée avec CMake.
Automatisation des tâches au sein de l'IDE VsCode, incluant la compilation, les tests et la mise en forme du code, améliorant ainsi l'efficacité et la productivité.
Prise en charge de l'automatisation des processus de compilation et mise en place de pipelines d'intégration continue, favorisant des livraisons plus fréquentes et fiables.
L'un des défis que j'ai rencontrés pendant mon séjour chez Thales était les processus rigides en place qui privilégiaient la livraison sur la durabilité. Cette mentalité a parfois conduit à des solutions à court terme, ce qui a rendu difficile la mise en œuvre d'améliorations durables.
M'adapter à cet environnement m'a obligé à équilibrer le besoin de livraisons en temps voulu avec l'importance de maintenir des solutions logicielles de haute qualité et durables. Cette expérience m'a permis de développer ma résilience et mes compétences en résolution de problèmes, alors que je naviguais dans la dynamique complexe entre les délais de livraison et la durabilité du logiciel.