Xavier, tu es ingénieur en développement embarqué, quel est ton parcours ?

J’ai réalisé mes études à l’UCBL (Université Claude Bernard Lyon 1) et à l’INSA en double cursus Master image et Master de recherche. Ces deux formations m’ont permis d’acquérir un profil scientifique de recherche et de gestion de projet mais également un profil technique sur le traitement d’images.

À l’obtention de ma thèse en 2014, je suis devenu Agicien !

 

Cela fait donc 5 ans que tu es parmi nous, quel est ton parcours dans notre société ?

J’ai travaillé pour plusieurs clients dans les secteurs de l’industrie et du médical. J’ai commencé par une mission de développement d’un logiciel de supervision en QT où je travaillais en mode bus communication. Je faisais du pilotage de moteur sécurité au regard de capteurs pour pouvoir développer un nouveau module permettant de décharger du courrier. Ensuite, j’ai développé un projet de maintenance d’un système end point security pendant 3 mois. Pour résumer, je devais être capable de prévoir et d’éviter tous types d’actions malveillantes d’un utilisateur.

Mon second projet client a duré 2 ans. Celui-ci consistait à développer un logiciel embarqué sur une pompe volumétrique et un pousse seringue. C’était très challengeant car beaucoup de normes devaient être respectées et je devais aussi gérer la sécurité du logiciel afin que l’on puisse, à terme, rajouter du code et du matériel sans que des accidents ne se reproduisent.

Enfin, aujourd’hui et depuis presque 2 ans, je travaille pour un client fabricant des machines qui contrôlent la qualité des verres sortant des verreries.

 

En quoi consiste ce projet ?

D’abord, j’ai commencé par travailler sur une nouvelle détection qui consistait à s’assurer de l’uniformité des verres. Chaque bouteille/pot devait avoir exactement la même hauteur. Cette détection n’existait pas avant, j’ai donc fait tout le développement : analyse d’image, algorithme, conception, spécification, test, intégration machine etc.

Aujourd’hui, je fais plutôt de l’architecture de système pour améliorer la maintenabilité ainsi que la réutilisabilité des outils et des algorithmes qui sont dans les machines. C’est ce que l’on peut appeler un framework (un cadre sur lequel les développeurs se basent pour ne pas avoir à tout refaire à chaque fois). Moi, je crée la bibliothèque, j’améliore et consolide le framework.

Bientôt je vais également faire un travail important de re-factorisation qui consistera à réfléchir à l’architecture du logiciel.

 

Comment résumerais-tu ton métier au quotidien ?

Je fais de l’intégration continue. Cela signifie que je dois surveiller l’ensemble du code produit et vérifier que celui-ci respecte un certain nombre de test. Je dois également m’assurer de la qualité logicielle et réaliser le chiffrage de mes tâches avec la méthode scrum.

Une grande partie de mon travail en ce moment est la fabrication d’un outil pour aider les personnes à analyser les logs qui sortent des machines et visualiser l’ensemble des traces sur la machine. Cet outil permet de tout centraliser. Ce type de développement spécifique dure 1 mois, 2 mois ou 3 mois. Dans l’ensemble, mes missions sont assez hétérogènes.

 

Quelles sont les technologies que tu utilises ?

Principalement du C, C++, mais en fonction de mes missions, j’utilise aussi du C# qui me permet de faire du GUI (interface graphique) ou encore du .NET sur Windows. En ce moment, je travaille sur une technologie nommée WTF avec une méthodologie MVVM.

 

Qu’est-ce qui te plait le plus dans ton métier ?

La capacité à faire de l’architecture et la liberté. Les technologies ne nous sont pas imposées, nous les choisissons en fonction du besoin. Il faut donc analyser le besoin pour trouver la technologie la plus adaptée.

Ce qui m’intéresse aussi, c’est de voir comment cohabite le soft avec l’électronique et la mécanique.

 

Qu’est-ce qui te plait le moins ?

Le fait de travailler seul. C’est un vrai challenge car personne ne relit mon code. J’essaie donc, notamment, d’améliorer ma capacité à hiérarchiser et à chiffrer mes projets.

 

Tu n’as jamais travaillé au sein de nos locaux, quel est ton lien avec Agixis ?

Mon lien, c’est les soirées d’agence, les coding-game, les rendez-vous réguliers avec mon manager, les newsletters, les vidéos ou encore les communications via slack. C’est aussi mon lien avec les Agiciens, Patrick et Corentin, qui travaillent pour le même client que moi.

 

Qu’est-ce qui te plait chez Agixis ?

La proximité avec le dirigeant, Matthieu, qui participe à chaque évènement et discute avec les équipes. Celle avec mon manager, Hervé. Je ne suis jamais délaissé ! D’ailleurs, je n’ai jamais été en inter-contrat et j’ai toujours eu des missions intéressantes me correspondant.

 

Qu’as-tu appris chez nous ?

L’aspect professionnel et toute la partie réalité terrain : qu’est-ce qu’un historique, comment développer à partir d’un code déjà existant ou encore comment gérer l’inertie (on code moins vite au sein d’une entreprise que lorsque l’on est seul).

Le fait d’être confronter à du code que je n’ai pas moi-même écrit a amélioré ma compréhension du langage et m’a permis d’apprendre plusieurs manières de faire. Ainsi, je suis monté en compétences sur les langages C#, C/C++.

 

Aujourd’hui, tu fais également de plus en plus d’architecture n’est-ce pas ?

Oui c’est exact. J’ai toujours eu envie de structurer mon code donc cela est venu assez naturellement.

Il est essentiel pour moi de prendre du temps à structurer et à rédiger des documents pour expliquer son code. Cette documentation est importante pour les développeurs suivants. Il faut savoir où trouver les documentations et comprendre comment elles sont liées entre elles. Dans la méthode agile, la documentation fait autant partie de la production que le code.

 

Pour toi, quelles sont les qualités d’un bon développeur ?

Un bon développeur doit être capable de fournir un logiciel de qualité. Cela se transcrit par le fait que l’élément produit correspond à l’élément attendu : on ne doit pas faire de sur-qualité et on ne doit pas non plus faire de sous-qualité.

Pour moi, un bon développeur est donc quelqu’un capable de tirer le plus droit possible sur l’attendu ! Pour cela, il faut être apte à choisir la façon la plus simple pour répondre aux problématiques et utiliser l’outil le plus efficace.

 

Agixis en 3 mots ?

Engagement, dynamisme et professionnalisme !!