Développeur C++ Sénior (Montreal)

Développeur C++ Sénior (Montreal)

21 Aug
|
CGI
|
Montreal

21 Aug

CGI

Montreal

Description de poste

Vous aimez pousser la performance d’un système jusqu’à ses limites? Multithreading, faible latence, optimisation mémoire, parallélisation et calcul intensif font partie de votre terrain de jeu?

CGI recherche un(e) Développeur(se) C++ sénior pour contribuer à la modernisation d’une plateforme stratégique de calcul et de simulation à grande échelle.

Votre prochain défi chez CGI

Dans le cadre d’un important programme d’amélioration de la performance et d’augmentation de la capacité de calcul de Limsel Prévisionnel, notre équipe travaille à faire évoluer en profondeur l’architecture actuelle.

L’ambition est claire : augmenter massivement la capacité de traitement, réduire les temps d’exécution et permettre l’exécution parallèle de milliers de calculs et de simulations.

Votre rôle sera au cœur de cette transformation : optimiser les moteurs existants, développer de nouvelles composantes C++ haute performance et contribuer à une architecture distribuée capable de passer à l’échelle.

Mode de travail : Hybride, 3 jours en présentiel

Lieu : Montréal, centre-ville

Fonctions et responsabilités

Ce que vous ferez

Vous participerez à la conception, au développement et à l’optimisation de composantes C++ critiques destinées à des environnements de calcul intensif.

Au quotidien, vous serez amené(e) à :

- Faire évoluer l’architecture des moteurs de calcul et de simulation afin d’en accroître significativement la performance;
- Développer et optimiser des composantes critiques en C++17+;
- Concevoir des mécanismes de parallélisation massive permettant l’exécution simultanée de milliers de calculs et simulations;
- Optimiser l’utilisation des CPU, de la mémoire et des caches afin de réduire la latence;
- Concevoir des mécanismes de multithreading, communication interprocessus et traitement distribué;
- Participer à la transformation de composantes statiques vers des librairies dynamiques afin d’améliorer les temps de compilation et de déploiement;
- Intégrer les composantes C++ aux services d’orchestration Java;
- Réaliser des analyses de performance, du profilage et de l’optimisation de code;
- Développer et maintenir les tests automatisés, d’intégration, de performance et de charge;
- Produire la documentation technique et contribuer activement à la qualité de la solution;
- Collaborer avec des équipes multidisciplinaires dans un environnement Agile / SAFe.

Qualités requises pour réussir dans ce rôle Le profil que nous recherchons

Vous possédez 8 années ou plus d’expérience en développement logiciel C++, idéalement dans des environnements où la performance, la concurrence et la capacité de traitement sont critiques.

Vos incontournables

- Excellente maîtrise de C++, idéalement C++17 ou supérieur;
- Maîtrise des concepts avancés du langage et de la gestion de mémoire;
- Solide expérience en optimisation de performance et réduction de la latence;
- Programmation parallèle, concurrente et multithread;
- Expérience avec les systèmes distribués haute performance;
- Maîtrise des patrons Master/Worker, Thread Pools et Worker Threads;
- Solide expérience en programmation système sous Linux / Red Hat;
- Expérience avec :
- Pthreads;
- IPC;




- Sockets;
- Mémoire partagée;
- Mutex;
- Bibliothèques partagées;
- Excellente compréhension des concepts de concurrence, synchronisation et gestion de mémoire;
- Expérience avec les protocoles de communication et la messagerie distribuée;
- Connaissance de ZeroMQ – ROUTER/DEALER, Pull Model, Proxy – ou d’une technologie équivalente;
- Expérience avec l’encodage binaire et l’optimisation des échanges, notamment FlatBuffers ou équivalent;
- Connaissance de Redis et des concepts de cache distribué;
- Maîtrise des principes SOLID, Clean Code, Clean Architecture et Design Patterns;
- Expérience en analyse de performance, profilage et optimisation de code;
- Expérience dans un environnement Agile – Scrum ou Secure.

Vous voulez aller encore plus loin? Votre profil se démarquera si vous possédez une expertise en optimisation multicœur et architecture processeur, notamment :
- Architectures NUMA et vNUMA;
- Core Pinning;
- Optimisation de la localité des caches L1 / L2 / L3;
- Topologie processeur;
- Optimisation de l’utilisation CPU et mémoire.

Des technologies qui pourraient faire partie de votre environnement Selon votre expertise, vous pourriez également travailler avec :
- Optimisation mathématique
- Recherche opérationnelle
- Programmation linéaire
- HPC
- ZeroMQ
- Redis
- Apache ZooKeeper
- IPC
- Sockets
- Mémoire partagée
- ELK
- Prometheus
- Grafana
- OpenShift
- Docker
- Helm
- Argo CD
- TeamCity
- Ansible
- Vault
- CyberArk
- SonarQube

Ce qui fera votre succès Nous recherchons avant tout une personne qui aime comprendre ce qui limite la performance d’un système… puis trouver comment repousser cette limite.

Vous vous démarquez par :

- Une forte capacitée d’analyse et de résolution de problèmes complexes;
- Un véritable réflexe d’optimisation et un souci constant de la performance;
- De l’autonomie et un bon sens de l’initiative;
- La capacité à évoluer dans des environnements techniques complexes;
- Une excellente collaboration avec des équipes multidisciplinaires;
- Une grande rigueur et un fort souci de la qualité;
- La capacité à vulgariser des concepts techniques complexes;
- L’aisance nécessaire pour contribuer aux discussions et décisions d’architecture.

Un atout majeur Vous avez déjà participé à la modernisation d’une plateforme de calcul intensif, de simulation, de traitement distribué ou d’un système critique à très haute performance et haute disponibilité ?

Vous travaillerez sur des problématiques concrètes de latence, concurrence, parallélisation, architecture multicœur, mémoire, caches processeur et distribution des traitements.

Votre code pourra avoir un impact direct sur la capacité de la plateforme à exécuter des milliers de calculs et simulations en parallèle.

- C++17+
- HPC
- Multithreading
- ZeroMQ
- Linux
- NUMA
- Low Latency
- Distributed Systems





Envie de travailler sur des défis où chaque milliseconde compte ? Joignez-vous à CGI et contribuez à bâtir la prochaine génération d’une plateforme de calcul haute performance.

CGI offre une estimation raisonnable de la fourchette salariale pour ce poste. Le calcul de cette fourchette dépend de divers facteurs, notamment le niveau de compétence, le marché géographique, l’expérience, la formation ainsi que les licences et certifications professionnelles. Les décisions en matière de rémunération dépendent des particularités de chaque cas. Une estimation raisonnable de cette fourchette salariale se situe entre 70 000$ à 135 000$. Ce poste est vacant.

Ensemble, en tant que propriétaires, mettons notre savoir-faire à l’œuvre.

La vie chez CGI est ancrée dans l’actionnariat, le travail d’équipe, le respect et un sentiment d’appartenance. Chez nous, vous pourrez exploiter votre plein potentiel parce que…

Nous vous invitons à devenir propriétaire dès le jour 1 alors que nous travaillons ensemble à faire de notre rêve une réalité. C’est pourquoi nous nous désignons comme associés de CGI, plutôt que comme employés. Nous tirons profit des retombées de notre succès collectif et contribuons activement à l’orientation et à la stratégie de notre entreprise.

Votre travail crée de la valeur. Vous élaborerez des solutions novatrices et développerez des relations durables avec vos collègues et clients, tout en ayant accès à des capacités mondiales pour concrétiser vos idées, saisir de nouvelles opportunités, et bénéficier d’une expertise sectorielle et technologique de pointe.

Vous ferez évoluer votre carrière en vous joignant à une entreprise bâtie pour croître et durer. Vous serez soutenus par des leaders qui ont votre santé et bien-être à cœur et qui vous permettront de saisir des occasions afin de parfaire vos compétences et élargir les horizons.

Chez CGI, nous valorisons la richesse que la diversité apporte et nous nous engageons à favoriser un environnement de travail où chacun s’épanouit. Nous collaborons avec nos clients pour bâtir des communautés plus inclusives et permettre à tous les associés de CGI de réussir. En tant qu’employeur prônant l’égalité des chances, il est important pour nous que vous puissiez donner le meilleur de vous-même durant le processus de recrutement.

Si vous avez besoin d’un accommodement particulier, veuillez en informer votre recruteur.

Ce même engagement envers l’équité s’étend à notre utilisation des technologies. Afin de soutenir notre équipe de recrutement, des outils d’IA peuvent être utilisés pour aider à l’évaluation des candidatures, sans jamais remplacer le jugement humain. Toutes les décisions d’embauche demeurent entièrement entre les mains de nos professionnels du recrutement.

Pour en savoir plus sur l'accessibilité chez CGI, contactez-nous par courriel. Veuillez noter que ce courriel est strictement réservé aux demandes d'accessibilité et ne peut être utilisé pour vérifier l'état d’une candidature.

Joignez-vous à nous, l’une des plus importantes entreprises de conseil en technologie de l’information (TI) et en management au monde.

📌 Développeur C++ Sénior (Montreal)
🏢 CGI
📍 Montreal

Reply to this offer

Impress this employer describing Your skills and abilities, fill out the form below and leave Your personal touch in the presentation letter.

Subscribe to this job alert:

Get the latest job offers by email for: développeur c++ sénior (montreal) / montreal

Subscribe to this job alert:

Get the latest job offers by email for: développeur c++ sénior (montreal) / montreal