Summary:

Under the direction of the Director of Engineering, the Software Engineer will work as part of a multidisciplinary team for the development and production of custom display and related products. The software engineer will participate directly in designs during development phases as well as other related activities such as prototype monitoring, verification testing, burn-in, test stations / fixtures, qualification testing, documentation, etc.  The Software Engineer is expected to deliver validated, documented, and production-ready software solutions with strong ownership and execution discipline. The software engineer will also participate in the development of processes, testing strategies and new technologies. The new technologies need to be in line with the roadmap produced by the business unit.  The software engineer will also provide technical support for the introduction of new products into manufacturing and ongoing production.

Job duties:

  • Design and document embedded software for the display products business unit
  • Design and implement custom BSPs (Board Support Packages), drivers and integrated applications, with clear architecture definition and maintainability considerations
  • Develop appropriate design verification and validation approaches in Python
  • Perform verification activities including unit, integration, and regression testing
  • Generate or modify existing code for test stations / fixtures and generate all related documentation
  • Develop or modify C/C++ code for microcontroller-based onboard systems and circuits
  • Optimize and integrate image processing and generation algorithms within embedded display environments
  • Create technical documentation and user manuals including software design descriptions and validation reports
  • Prepare and implement technical change notices (ECO) related to software
  • Support, troubleshooting and resolution of technical problems with customer return units (RMA) including structured root-cause analysis
  • Perform analyses, validations/verifications and follow-up tests on prototypes
  • Work in collaboration with a team of multidisciplinary professionals
  • Provide support for new product introduction (NPI) and ongoing production
  • Participate in R&D development projects
  • Create and maintain software development SOPs, coding guidelines, and release documentation to ensure long-term sustainability

Additional Responsibilities for Senior Engineers

  • Define integrated software architectures with documented design rationale
  • Evaluate the workload/scope definition of the work and participate in technical proposals to clients
  • Technical support for marketing (technical solutions, discussions with external customers, demonstration units, etc.)
  • Monitoring of new technologies
  • Participate in improving development processes
  • Mentor junior engineers and ensure knowledge transfer within the team
  • Support compliance discussions related to DO-178 development awareness, where applicable

Qualifications required:

Skills, Education and Experience Requirements:

  • Bachelor’s degree in electrical or software engineering;
  • Minimum of two (2) years of experience for the junior engineer position
  • Minimum of ten (10) years of experience for the senior engineer position
  • Experience in Python/C/C++ language programming;
  • Experience in analyzing security and reliability requirements;
  • Skilled in using basic electronic test equipment such as power supplies, multimeters, oscilloscopes, function generators, etc.
  • Familiar with operating systems and embedded software development
  • Experience with Windows and Linux operating systems
  • Knowledge of digital video standards (HDMI, DisplayPort, SDI, etc.)
  • Advanced written/verbal communication skills; computer skills (Windows, Microsoft Office)
  • Experience with real-time and safety-critical applications (an asset)
  • Familiar with Avionics certification process such as DO-178 (an asset)
  • Experience working within AS9100 / ISO 9001 environments (an asset)

Behavior and attitude requirements:

  • Demonstrate good ability to work in a team environment
  • Positive and Professional attitude
  • Results-oriented, ability to work under pressure

Other requirements:

  • May be required to travel occasionally.
  • On-site presence required to support hardware integration, lab validation, and production activities

Résumé :

Sous la direction du directeur de l’ingénierie, l’ingénieur logiciel travaillera au sein d’une équipe multidisciplinaire pour le développement et la production de produits d’affichage personnalisés et de produits connexes. L’ingénieur logiciel participera directement aux conceptions pendant les phases de développement ainsi que d’autres activités connexes telles que les suivis de prototypes, les tests de vérification, le déverminage, les stations de test, les tests de qualification, la documentation, etc.… L’ingénieur logiciel est responsable de livrer des solutions logicielles validées, documentées et prêtes pour la production, avec un fort sens des responsabilités et de la rigueur technique. L’ingénieur logiciel participera également à l’élaboration de processus de développement, de stratégies de test et de nouvelles technologies.  Les nouvelles technologies doivent être alignées avec la feuille de route produite par l’unité d’affaires.  L’ingénieur logiciel fournira également du support technique pour l’introduction de nouveaux produits en fabrication et de la production en cours.

Fonctions du poste :

  • Concevoir et documenter les logiciels embarqués pour l’unité d’affaire des produits d’affichage
  • Concevoir et mettre en marche des BSP (Board Support Package), des pilotes (drivers) et des applications intégrées personnalisés, en définissant clairement l’architecture logicielle et en assurant la maintenabilité du code
  • Développer des approches appropriées de vérification et de validation de la conception en Python
  • Effectuer les activités de vérification incluant les tests unitaires, d’intégration et de régression
  • Générer ou modifier le code existant pour les stations de test, et produire toute la documentation associée
  • Développer ou modifier le code C/C++ pour les systèmes et circuits embarqués basés sur des microcontrôleurs
  • Optimiser et intégrer des algorithmes de traitement et de génération d’images dans des environnements d’affichage embarqués
  • Créer de la documentation technique et des manuels d’utilisation incluant les descriptions de conception logicielle et les rapports de validation
  • Préparer et implémenter les avis de changement technique (ECO) en lien avec les logiciels
  • Assurer la prise en charge, déverminage et résolution de problèmes techniques des unités de retour-client (RMA) incluant l’analyse structurée des causes racines
  • Effectuer des analyses, des validations/vérifications et des tests de suivi sur les prototypes
  • Travailler en collaboration avec une équipe de professionnels multidisciplinaires
  • Fournir un soutien à l’introduction de nouveaux produits (NPI) et à la production en cours
  • Participer à des projets de développement de la R & D
  • Développer et maintenir des procédures, des lignes directrices de codage et des processus de gestion des versions afin d’assurer la pérennité des solutions logicielles

Responsabilités supplémentaires pour ingénieurs senior

  • Définir des architectures logicielles intégrées
  • Évaluer la charge/définition du travail et participer aux propositions techniques aux clients
  • Assistance technique au marketing (solution technique, discussions avec des clients externes, unités de démonstration, etc.)
  • Veille des Nouvelles technologies
  • Participer à l’amélioration des processus de développement
  • Encadrer les ingénieurs juniors et assurer le transfert des connaissances au sein de l’équipe
  • Contribuer aux discussions relatives aux exigences de conformité (ex. DO-178) lorsque applicable

Qualifications requises :

Exigences en matière de compétences, d’études et d’expérience :

  • Baccalauréat en génie électrique ou logiciel ;
  • Minimum de deux (2) ans d’expérience pour le poste d’ingénieur junior
  • Minimum de dix (10) ans d’expérience pour le poste d’ingénieur senior
  • Expérience en programmation des langages Python/C/C++;
  • Expérience dans l’analyse des exigences en matière de sécurité et de fiabilité ;
  • Habiletés pour utiliser de l’équipement de test électronique de base tel que des blocs d’alimentation, des multimètres, des oscilloscopes, des générateurs de fonctions, etc.
  • Connaissance des systèmes d’exploitation et du développement logiciel embarqué
  • L’expérience avec les systèmes Windows et Linux
  • Connaissance des normes vidéo numériques (HDMI, DisplayPort, SDI, etc.)
  • Habiletés avancées en communication écrite/verbale ; compétences informatiques (Windows, Microsoft Office)
  • Expérience avec des applications en temps réel et critiques pour la sécurité (un atout)
  • Connaissance des processus de certification avionique tels que DO-178 (un atout)
  • Expérience dans un environnement certifié AS9100 / ISO 9001 (un atout)

Exigences en matière de comportement et d’attitude :

  •  
  • Démontrer une bonne capacité à travailler en équipe
  • Attitude positive et professionnelle
  • Être axé sur les résultats et capacité de travailler sous pression

Autres exigences :

  • Peut avoir à voyager occasionnellement.
  • Présence sur site requise pour soutenir l’intégration matérielle, les validations en laboratoire et le support à la production

Benefits:

Cevians offers a variety of health and benefit programs, including Medical, Dental, Vision, PTO, and Paid Holidays. Benefits are effective on the 1st day of the month following the date of hire.

How to Apply:

To apply for this position, please email your resume to Emily Kale, HR Generalist, at ekale@cevians.com.

CEVIANS is an Equal Opportunity/Affirmative Action Employer