Ingénieur Logiciel - Backend C++ (H/F)
Role details
Job location
Tech stack
Job description
Le candidat idéal doit posséder une solide expertise du développement en C++ moderne, des frameworks web tels que Crow, Drogon ou oat++, ainsi qu'une expérience de la création d'applications sécurisées, évolutives et de niveau entreprise, dans le respect des meilleures pratiques du secteur.
Le candidat collaborera avec des équipes pluridisciplinaires pour développer des services backend, mettre en ?uvre des mécanismes d'authentification et d'autorisation, réaliser l'intégration avec des plateformes d'entreprise et contribuer aux initiatives CI/CD et DevOps., ? Concevoir, développer et maintenir des applications backend en C++ moderne (C++17/C++20 de préférence). ? Développer des API RESTful et des services web à haute performance à l'aide de frameworks tels que Crow, Drogon ou oat++. ? Développer des applications évolutives suivant les architectures Monolithe Modulaire et Microservices. ? Concevoir un code propre, maintenable et réutilisable, respectant les principes de la Programmation Orientée Objet (POO) et les principes de conception SOLID. ? Mettre en ?uvre une authentification et une autorisation sécurisées à l'aide d'Azure Active Directory (Azure AD) et de JWT. ? Développer et maintenir des composants middleware pour la journalisation, l'authentification, la validation et la gestion des exceptions. ? Travailler avec des frameworks ORM intégrés pour l'interaction avec la base de données et son optimisation. ? Développer des applications prenant en charge les protocoles HTTP/1.1, HTTP/2, HTTPS et WebSocket. ? Collaborer avec les architectes et les ingénieurs seniors à la conception de solutions logicielles évolutives et sécurisées. ? Participer aux revues de code, au débogage, à l'optimisation des performances et à la résolution des incidents en production. ? Créer des tests unitaires et des tests d'intégration, et garantir une qualité de code élevée grâce aux tests automatisés. ? Configurer et maintenir des pipelines CI/CD pour l'automatisation de la compilation, des tests, du déploiement et de la gestion des versions. ? Collaborer efficacement avec les équipes QA, DevOps, les Product Owners et les autres équipes de développement tout au long du cycle de vie du développement logiciel. ? Préparer et maintenir la documentation technique, les documents de conception et les spécifications d'API.
Requirements
Expérience requise : 3 à 8 ans, Anglais courant requis., Langages : C++ moderne (C++17/C++20) ;
bonne maîtrise de la STL, des templates, des smart pointers, du multithreading et de la gestion de la mémoire. Frameworks web : un ou plusieurs parmi Crow, Drogon, oat++. Technologies web : API REST, HTTP/1.1, HTTP/2, HTTPS, WebSockets, sérialisation/désérialisation JSON. Sécurité : authentification Azure Active Directory (Azure AD), JWT, OAuth 2.0 / OpenID Connect (de préférence), contrôle d'accès basé sur les rôles (RBAC). Développement backend : frameworks ORM intégrés, développement de middleware, gestion des exceptions, frameworks de journalisation, gestion de la configuration, injection de dépendances (de préférence). Architecture : Microservices, Monolithe Modulaire, architecture en couches, conception API-first, patrons de conception (Mediator, Factory, Repository, Strategy, Singleton, etc.). Ingénierie logicielle : POO, principes SOLID, Clean Code, refactorisation, optimisation des performances, gestion de la mémoire, concurrence et multithreading. DevOps & CI/CD : Git, Azure DevOps / GitHub Actions / Jenkins, configuration de pipelines CI/CD, automatisation de la compilation, gestion des versions, intégration des tests automatisés.
Qualifications souhaitées Plateformes cloud (Microsoft Azure), Azure App Services et Azure SQL, Docker et Kubernetes, passerelles d'API et reverse proxies, outils de supervision et de journalisation, méthodologies Agile/Scrum.
Formation Licence ou Master en informatique, technologies de l'information, ingénierie logicielle ou discipline connexe.
Expérience 3 à 8 ans d'expérience opérationnelle en développement backend C++ ; expérience avérée de la livraison d'applications de niveau entreprise à l'aide de frameworks C++ modernes.
Compétences comportementales Excellente communication orale et écrite ; solides capacités d'analyse et de résolution de problèmes ; autonomie et esprit d'équipe ; sens des responsabilités et du détail ; aisance en environnement Agile au rythme soutenu ; volonté d'apprentissage continu.
Compétences appréciées (Nice-to-Have) gRPC ; courtiers de messages (Kafka, RabbitMQ) ; Redis / mécanismes de cache ; frameworks de tests unitaires (Google Test, Catch2) ; intégration de services d'IA/ML ; normes de codage sécurisé et bonnes pratiques de sécurité applicative.