Ingénieur logiciel embarqué C/C++ - Drivers temps réels
Role details
Job location
Tech stack
Job description
Nos systèmes aident les industries à :
- Donner aux ingénieurs et opérateurs une meilleure visibilité et une prise de décision plus rapide,
- Prolonger la durée de vie des machines et assurer des processus plus sûrs et plus automatisés,
- Renforcer la résilience grâce à la transparence et aux décisions fondées sur les données,
- Réduire la consommation d'énergie et les pertes de matière.
Notre Culture
La collaboration, l'amélioration continue et la curiosité technique définissent notre culture. A taille humaine, nous combinons l'agilité d'une start-up avec la stabilité d'un partenaire industriel établi.
Chez ADDI-DATA, vous trouverez :
- Une équipe passionnée d'ingénieurs et d'innovateurs,
- Une communication ouverte,
- La liberté de prendre des initiatives et d'assumer des responsabilités,
- Un fort accent sur l'apprentissage, l'excellence et l'impact., En tant qu'Ingénieur Logiciel Embarqué, vous serez responsable de la conception, du développement et de l'amélioration continue de nos pilotes (drivers) temps réel et de la logique FPGA. Votre mission : assurer une interface fluide entre le matériel d'acquisition et les systèmes hôtes, tout en garantissant performance, robustesse et fiabilité.
Vous serez amené(e) à :
- Développer et maintenir des pilotes temps réel en C/C++ pour connecter le matériel d'acquisition aux systèmes hôtes,
- Intégrer les architectures logicielles et matérielles (microcontrôleurs, cartes d'acquisition, FPGA) afin de livrer des solutions complètes,
- Créer des outils de configuration et de visualisation bas niveau pour les tests, le débogage et le diagnostic des pilotes,
- Optimiser la performance temps réel en respectant strictement les contraintes de latence, de déterminisme et de robustesse,
- Développer des outils de test et de validation pour garantir la fiabilité des pilotes et de la chaîne d'acquisition complète,
- Documenter les architectures, API et interfaces matériel/logiciel pour assurer la maintenabilité et le partage des connaissances,
- Collaborer étroitement avec les équipes hardware, agir comme référent technique, encadrer les plus jeunes ingénieurs et proposer des améliorations aux outils et processus.
Votre rôle va au-delà du développement : vous contribuerez à l'amélioration continue, agirez comme expert technique, et influencerez les pratiques d'ingénierie à l'échelle de l'équipe.
Requirements
Formation et expérience
- Diplôme d'ingénieur ou master
- Minimum 3 ans d'expérience professionnelle, hors stages et apprentissage.
Compétences clés
- C, C++ (embarqué, bas niveau)
- Développement de pilotes : DMA, interruptions, mappage mémoire, programmation registre
- Développement de pilotes sous Windows et Linux (modules noyau, device drivers)
- Bus de communication : UART, SPI, I²C, PCIe, Ethernet
- Méthodologies de test : unitaire, fonctionnel, performance, sécurité
- Pipelines CI/CD et Git (configuration, stratégies de branches, revues de code)
- Solide compréhension des interactions matériel/logiciel (contraintes temps réel, synchronisation, timing)
Compétences supplémentaires
- Python (automatisation de tests, outils, prototypage)
- VHDL (conception et vérification FPGA)
- Protocoles industriels : Modbus, EtherCAT, Profinet, etc.
- Outils de débogage et de profilage : JTAG, oscilloscopes, profileurs de performance
Langues
-
Anglais courant (obligatoire), * Quel est votre niveau en Anglais ?
-
Quelles sont vos compétences en bus de communication : UART, SPI, I²C, PCIe, Ethernet?
-
Quelles sont vos compétences en méthodologies de test : unitaire, fonctionnel, performance, sécurité?
-
Quelles sont vos compétences en outils de débogage et de profilage : JTAG, oscilloscopes, profileurs de performance?
-
Quelle est votre niveau de compréhension du VHDL (conception et vérification FPGA)?
-
Quelle est votre niveau compréhension des interactions matériel/logiciel (contraintes temps réel, synchronisation, timing)?
Expérience:
- Développement de pilotes sous Windows et Linux : 3 ans (Optionnel)
- Pipelines CI/CD et Git : 5 ans (Optionnel)
- Développement logiciel (embarqué, bas niveau): 5 ans (Requis)