Stage ingénieur — Service de planification industrielle sous contraintes

Télétravail total Stage (6 mois)

À propos de Omundu SAS

Omundu est une startup deeptech fondée en 2025 à Lyon. Notre mission : développer Unity Forge, une IA spécialiséecapable d’assister les opérateurs de maintenance industrielle en situation réelle — loin des approches généralistes qui hallucinent ou manquent de contexte terrain.

Unity Forge lit et comprend la documentation technique, croise texte, images et schémas, et guide pas à pas l’opérateur pour réduire les pannes et relancer les machines plus rapidement.

Notre approche s’appuie sur une souveraineté technologique assumée : chaque client garde la maîtrise de ses données, et notre IA est adaptée à son environnement, jamais mutualisée.

Nous collaborons avec Antemeta et Bamboo pour construire des infrastructures cloud et edge sobres, fiables et opérationnelles.

Omundu, c’est une équipe à taille humaine, exigeante et bienveillante, menée par des fondateurs cumulant 20 ans d’expérience industrielle. Rejoindre Omundu, c’est travailler au croisement de l’IA générative, du DevOps/MLOps et des usages industriels concrets, avec un accompagnement solide pour monter en compétence.

Le poste

Contexte

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.

Objectif du stage

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.

Missions

En lien avec l’équipe de développement :

  1. 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.

  2. 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.

  3. 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.

  4. 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é.

  5. 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.

  6. 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.

Livrables attendus

  • 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.

Profil recherché

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.

Compétences attendues

  • 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.

Compétences appréciées

  • 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.

Qualités recherchées

  • Autonomie, rigueur, pragmatisme, sens de l’intégration et de la livraison, capacité à travailler sur un produit existant, envie de comprendre le métier.

Stack technique

Python · OR-Tools (optionnel) / CP-SAT · FastAPI · PyTest · PostgreSQL · Git · Documentation technique

Détails sur le poste
Télétravail total
Stage (6 mois) - Temps plein
Tech
Propulsé parTaleez