Company Name:
Company Url:
Short Pitch:
Description:
Headquarter Location:
Tags:


Job Url:

CM Labs




CM Labs is hiring a Remote Développeur Logiciel Senior - Vortex Studio /Senior Software Developer-Vortex Studio

Description du poste

Notre équipe de recherche et développement recherche un développeur senior pour participer au développement de la plateforme logiciel Vortex. La plateforme de Vortex Studio contribue à l'immersion de nos simulateurs de formation pour machines lourdes dans diverses industries, incluant les industries de la construction et portuaires. La plateforme Vortex Studio est aussi utilisée pour l'ingénierie et l’aérospatiale, pour la planification de missions, le prototypage virtuel, la création de contenu numérique interactif pour les véhicules, la conception de machines autonomes et de leurs modules de contrôle.

Votre parcours professionnel correspond au développement logiciel d'applications temps réel, au développement d'engins ou de simulation avec un intérêt pour l'architecture logicielle et son application dans des logiciels commerciaux.

Nous avons plusieurs postes de disponibles en dévelopement logiciel qui regroupent plusieurs champs d'expertise. 

Rôle et responsabilités:

  • Joindre une équipe Agile.
  • Contribuer au développement des applications et des outils de la plateforme Vortex.
  • Collaborer au sein d'un groupe multidisciplinaire de programmeurs, d'ingénieurs mécanique, de concepteurs de niveaux et de spécialistes en assurances qualités.
  • Développer des fonctionnalités dans certains de ces champs de compétence:
  • Créer et améliorer les outils de création de contenu for CM-Labs simulators.
  • Intégration avec d'autres logiciels, tels que Unity Engine.
  • Investiguer et analyser la performance de nos unités de simulations e.g câbles, sol déformable, vehicules, scripts, etc... 
  • Contribuer à résoudre des problèmes rapportés par nos usagers.
  • Communication inter-processus pour simulation distribuée, déboguage à distance et notre plateforme infonuagique.
  • Installation, activation de licences, et déploiements de logiciels et de contenu de simulation.
  • Architecture générale de la plateforme et du SDK.
  • Intégration de composants matériels, tels que des contrôleurs (USB, CANopen) et de plateformes de mouvement (D-Box).
  • Participer au processus de développement
  • Déterminer la portée et estimer les tâches avec l'équipe.
  • Proposer, discuter et réviser des conceptions avec l'équipe.
  • Coacher les développeurs juniors aux bonnes pratiques.
  • Programmer les fonctionnalités et les tests associés
  • Passez en revue vos propres modifications de code et celles d'autres développeurs.
  • Fournir la documentation de l'utilisateur final.

Job Description:

Our software R&D team is looking for a Senior Software Developer to join us. The individual will be responsible for working on the continuous development of our Vortex software platform. The Vortex platform is used to develop simulators for training operators and mission planning in different domains such as heavy equipment for construction, ports, and mining, as well as robots, remotely operated vehicles, submarines, and more. The platform is used for our own immersive training simulators as well as by external customers.

Your professional background is from software development of real-time applications,  games, or simulation engine development, with an interest in software architectural patterns and designs.

We have multiple openings available in software development that regroup several fields of expertise.

Role and Responsibilities:

  • Join a team of agile developers
  • Contribute to the development of Vortex Platform's applications and tools.
  • Collaborate in a cross-functional group of software developers, mechanical engineers, level designers, and QA specialists
  • Implement features related to:
  • Creating and improving tools of content creation for CM-Labs Simulators
  • Integration of 3rd parties software, such as Unity engine.
  • Investigating and analyzing the performance of our simulation units: cables, deformable soil, vehicles, scripts, etc...
  • Contributing to solving user-reported issues.
  • Inter-processes communication for distributed simulation, remote debugging, and with our Cloud platform.
  • Installation, licensing, and deployment of software and content packages.
  • The overall architecture of the platform and SDK.
  • Integration of 3rd parties hardware, such as controls (USB, CANopen) and motion platforms (D-Box).
  • Participate in the whole pipeline of feature development:
  • Scope and estimate tasks with the team.
  • Propose, discuss, and review designs with the team.
  • Coach junior developers to good practices.
  • Code features and related tests.
  • Review your own code changes and those of other developers with pull requests.
  • Provide end-user documentation.

Qualifications

  • BAC en informatique ou en génie logiciel ou expérience équivalente
  • 7+ ans d'expérience dans le développement logiciel C++ pour applications commerciales
  • Expert dans le language C++ et la programmation orientée objet.
  • Connaissance approfondie de la conception d'applications et de l'architecture de logiciels.
  • Compréhension des principes d'assurance qualité des logiciels.
  • Fort sens des responsabilités et de l'engagement.
  • Bonnes compétences en communication écrite et oral.

Atouts

  • Connaissance de langages de scripting en particulier Python.
  • Connaissance du langage de programmation C#.
  • Expérience avec des engins de jeux, Unity en particulier.
  • Expérience dans le développement d'applications sur la platforme Windows.
  • Expérience dans le développement d'applications complexes, tel que des logiciels temps réel, 3D, de jeux vidéos ou de simulation.
  • Expérience dans la conception et l’implémentation d'algorithmes optimisés pour la performance, ou sur des systèmes d’opération temps-réel.
  • Expérience dans la conception et l’implémentation de code "multithread", sur les processus concurrents et les techniques de synchronisation
  • Connaissance de la plateforme logiciel Qt.
  • Expérience avec la méthodologie Agile et Scrum.
  • Expérience en développement cross plateforme, Windows et Linux
  • Bilingue français & anglais

Qualifications

  • Diploma in Computer Science or Software Engineering or equivalent experience.
  • Minimum of 7 years of experience in C++ software development and commercial applications
  • Expert in C++ and object-oriented programming.
  • Expert knowledge of software and application design and architecture.
  • Understanding of software quality assurance principles.
  • Strong sense of responsibility and commitment.
  • Good communication skills.

Assets

  • Knowledge of scripting tools, Python in particular.
  • Knowledge of the C# programming language.
  • Experience with game engines, Unity, a plus.
  • Experience in developing software on the Windows platform.
  • Experience in developing complex software, such as real-time, 3D, video games, or simulation applications.
  • Experience in the design and implementation of efficient algorithms for real-time and time-constrained software systems and in algorithm optimization
  • Experience working with multi-threaded software systems that require concurrency and synchronization primitives (knowledge of multi-processing a plus)
  • Knowledge of the Qt software development framework.
  • Experience with Agile / Scrum methodologies.
  • Experience in cross-platform development an asset (Windows & Linux)
  • Bilingual in French & English

See more jobs at CM Labs

Apply for this job