Obtenez une réponse de cet employeur — un CV et une lettre de motivation adaptés exactement à ce qu’il recherche.
Omundu, basé à Lyon, recherche un stagiaire pour contribuer à l’amélioration d’un moteur de planification dans le secteur de l’électricité. Le stagiaire travaillera sur l’optimisation, la modélisation des règles, et l’intégration backend.
Des compétences solides en Python et un bon niveau en algorithmique sont requis. Le stage inclut des tâches variées, allant des solveurs au développement d’API. Possibilité de développement très enrichissant au sein d’une équipe dynamique.
Le stage s’inscrit dans l’évolution d’un assistant de planification de la maintenance du réseau électrique haute tension, intégré à une application métier.
Le moteur optimise la programmation des interventions (visites hélicoptère, LIDAR, élagage) sous contraintes métier, environnementales et juridiques : fenêtres, zones protégées, cycle triennal, répartition kilométrique, planifications existantes.
Le sujet porte sur l’amélioration d’un service existant, déjà intégré à une application métier : évolution des planificateurs, modélisation de nouvelles contraintes, amélioration des mécanismes de recalcul, exposition des résultats via des API et intégration dans le produit.
Contribuer à l’amélioration d’un moteur de planification industrielle sous contraintes : logique d’optimisation, modélisation des règles métier, intégration backend et qualité logicielle. Le ou la stagiaire interviendra sur un code existant avec solveurs opérationnels, à enrichir et adapter à de nouveaux cas d’usage. Le stage combine optimisation combinatoire, Python, API, tests, documentation et intégration produit.
En lien avec l’équipe de développement :
Faire évoluer les solveurs de planification existants : Adapter et enrichir les solveurs Python existants pour intégrer de nouvelles contraintes métier, types d’opérations et objectifs d’optimisation : modèles, règles de décision, fonctions objectif, analyse des résultats.
Modéliser des contraintes métier complexes : Traduire des règles opérationnelles en contraintes formelles : affectation périodique, cycles de visite, zones spécifiques, périodes figées, contraintes calendaires, priorités, compatibilités, objectifs de répartition.
Améliorer les mécanismes de recalcul de planning : Améliorer le recalcul de plans existants lorsque certaines décisions sont déjà validées ou que des périodes doivent rester figées : stabilité des plans, ajustements incrémentaux, préservation des décisions déjà prises.
Travailler sur la mutualisation entre opérations : Améliorer la planification croisée de plusieurs types d’opérations pour identifier les mutualisations et produire un planning global cohérent, avec arbitrages entre contraintes, qualité opérationnelle, redondances et lisibilité.
Contribuer à l’intégration backend du service d’optimisation : Faire évoluer les API : endpoints, schémas, formats E/S, validation, gestion d’erreurs, contrats d’interface. Transformer les résultats d’optimisation en données exploitables par le produit.
Tester, mesurer et documenter : Tests unitaires et fonctionnels, métriques de qualité des plans, analyse des temps de calcul, documentation des règles et choix techniques. Maintenabilité, clarté et fiabilité au cœur du stage.
des évolutions fonctionnelles sur les solveurs de planification existants ;
de nouveaux modèles de contraintes ou objectifs d’optimisation ;
des mécanismes améliorés de recalcul ou d’ajustement de plans existants ;
des API et schémas de données permettant l’intégration des résultats dans l’application ;
une suite de tests couvrant les principaux cas métier ;
une documentation technique claire sur les règles de planification, les hypothèses de modélisation et les choix d’implémentation ;
des métriques de suivi de la qualité des plans et des temps de calcul.
Master 2 ou dernière année d’école d’ingénieur, profil à la croisée du développement, de l’algorithmique et de l’optimisation.
très bon niveau en Python, code propre et testé, maîtrise de Git ;
bases solides en algorithmique, optimisation combinatoire, programmation par contraintes ou recherche opérationnelle ;
capacité à concevoir des API et à traduire des règles métier complexes en logique technique ; bases en SQL / PostgreSQL.
CP-SAT ou autre solveur d’optimisation ; FastAPI ou équivalent ; PyTest ; expérience backend ou intégration produit ; intérêt pour la planification et l’ordonnancement.
Autonomie, rigueur, pragmatisme, sens de l’intégration et de la livraison, capacité à travailler sur un produit existant, envie de comprendre le métier.
Python · OR-Tools (optionnel) / CP-SAT · FastAPI · PyTest · PostgreSQL · Git · Documentation technique