Développeur Logiciel Senior - Vortex Studio /Senior Software Developer-Vortex Studio
- Temps complet
Description de l'entreprise
Nous sommes l'entreprise à l'origine des simulateurs terrestres et maritimes les plus fiables du secteur.
CM Labs développe des solutions basées sur la simulation pour aider les clients à concevoir des équipements avancés et à se préparer pour des opérations qualifiées. Grâce à sa plate-forme Vortex Studio, CM Labs offre des capacités pour les simulateurs de formation, la répétition de mission, les jeux sérieux, le prototypage virtuel et les tests.
Aujourd'hui, CM Labs est le principal fournisseur de formation pour la simulation dans les secteurs de la construction et du port
Avec plus de 1 000 simulateurs dans 30 pays utilisant la technologie de simulation de CM Labs, nos marchés sont mondiaux. Parmi nos clients figurent Honda, Hitachi, Liebherr, NASA et Volvo.
Company Description
We are the company behind the most trusted land and sea simulators in the industry.
CM Labs builds simulation-based solutions to help clients design advanced equipment and prepare for skilled operations. Through its Vortex Studio platform, CM Labs provides capabilities for training simulators, mission rehearsal, serious games, virtual prototyping, and testing. Today, CM Labs is the leading vendor for simulation-based training in the construction and port industries.
With over 1,000 simulators in 30 countries using CM Labs’ simulation technology, our markets are global. Our customers include Honda, Hitachi, Liebherr, NASA, and Volvo.
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
Informations complémentaires
Ce que nous offrons
- La chance d'avoir un impact sur le monde réel en travaillant sur des projets innovants et stimulants et en créant une technologie de pointe;
- Horaire de travail flexible;
- Conciliation travail - vie personnelle.
- Semaine payée (semaine de vacances supplémentaire) entre Noël et le Nouvel An.
- Rabais d'entreprise (transport, gymnase, pistes de ski, événements spéciaux)
*Seuls les candidats sélectionnés seront contactés.
What We Offer
- The chance to have an impact on the real world by working on innovative and challenging projects and creating cutting edge technology;
- Flexible work schedule
- Work-life balance
- Paid week off (additional vacation week) between Christmas and New Years;
- Company discounts (Transport, Gym, Ski hills, special events)
Only selected candidates will be contacted.
The masculine gender is used in this text without discrimination, to facilitate reading.