Objectif du poste
Le projet consiste au développement d'un logiciel embarqué de sécurité critique pour une station télé-opérée (deFNder). Le développeur sera responsable de la conception, de l'implémentation et de la mise en œuvre des fonctions du logiciel.
Rôles et responsabilités
- Soutien à la planification : supporter le coordinateur projet et le coordinateur d'équipe dans la planification des objectifs, des activités, l'identification des points bloquants et risques;
- Exécution des activités : concevoir le design détaillé par la spécification de requis sur les composants et le design de classes C++, développer des modèles comportementaux en SCADE Suite et/ou SCADE Display, implémenter les fonctions en C++ pour satisfaire le design et les LLR, écrire des spécifications de test cases en regard d'exigences, exécuter des tests;
- Soutien à d'autres rôles : capturer des besoins et rédiger des exigences de haut niveau du software, concevoir d'API et de design logiciel haut niveau;
Compétences et qualifications requises
- Master ou bachelier en électronique/informatique avec expérience dans le développement de logiciel embarqué safety critical;
- Maitrise du langage C/C++ et de l'environnement Linux obligatoire ainsi que des concepts de cycle en V, gestion des exigences, des problèmes et des changements;
- Connaissance du model-based design (Scade, Simulink), du Python et possibilité de développer sous microcontrôleurs sont des atouts;
- 4 ans d'expérience minimum;
- Expérience et bonne maîtrise du C++ (ou très bonne maîtrise du C ainsi qu'au moins un autre langage orienté objet);
- Maîtrise de sujets connexes aux développements software Linux-based (bash, git, make/cmake, toolchains, VM, distributions, scheduling, gestion de la mémoire, I/O, ...);
- Connaissances sur les principes de programmation évènementielle;
- Connaissances sur les principes de programmation et le fonctionnement des couches réseau (Ethernet, TCP/IP/UDP/RTP/IPsec, STANAG 4586, DDS, etc...);
- Expérience avec du software embarqué et/ou temps réel ;
- Ecriture et gestion des exigences;
- Intérêt pour la conception d'architecture et design logiciel ;
- Maîtrise d'au moins un langage de script (Python, Perl, Tcl ou similaire);
- Expérience avec au moins un outil de gestion de problèmes et changements (Redmine, Mantis, Bugzilla ou similaire);
- Optionnellement, expérience avec Qt, Yocto, OpenGL;