Software Engineer / Data Engineer - Freelance
ECARIS
Job Description
Contexte de la mission
Le consultant interviendra au sein de l'équipe en charge de la consolidation des données de gestion énergétique et apportera son expertise sur deux axes majeurs : le développement et le traitement de séries temporelles d'une part, les calculs de valorisation énergétique d'autre part. Sur le premier axe, il concevra et optimisera des applications Python dédiées à l'agrégation et au traitement de séries temporelles, en tenant compte des problématiques de gestion des fuseaux horaires et des changements horaires. Sur le second axe, il développera des algorithmes permettant de modéliser et de valoriser la flexibilité des centrales électriques, en Python et en .NET.
Les besoins pourraient évoluer au cours de la mission, ce qui exige une forte capacité d'adaptation et d'apprentissage de la part du consultant. À la suite d'un premier retour d'expérience sur ce périmètre, le client souhaite désormais un profil confirmé, disposant déjà d'un recul significatif sur le langage Python et ayant dépassé le seul cadre du développement de fonctions isolées, avec une bonne compréhension des enjeux métier associés au traitement de données. La gestion de l'authentification applicative reste pilotée en interne par l'équipe cliente et ne constitue donc pas un point d'entrée déterminant dans l'évaluation du profil.
Objectifs de mission
La mission vise à renforcer durablement les capacités de développement logiciel et de traitement de données de l'équipe cliente, avec les objectifs suivants :
- concevoir et optimiser des applications Python dédiées à l'agrégation et au traitement de séries
- prendre en compte les problématiques de gestion des fuseaux horaires et des changements horaires dans les traitements développés
- développer des algorithmes de modélisation et de valorisation de la flexibilité des centrales électriques, en Python et en .NET
- s'adapter à l'évolution des besoins au cours de la mission, en faisant preuve d'autonomie et de capacité d'apprentissage
Ces objectifs pourront être précisés et complétés en fonction de l'avancement du projet et des priorités du client.
Périmètre de la mission
Le périmètre d'intervention du consultant couvre notamment :
- la conception, le développement et l'optimisation d'applications Python de traitement de séries
- la manipulation de grands volumes de données à l'aide de librairies telles que pandas ou polars
- l'interfaçage avec des systèmes tiers via des protocoles réseau standards (HTTP, FTP notamment)
- la maîtrise et l'interrogation de bases de données via SQL
- le développement d'algorithmes de valorisation énergétique en Python et en .NET
- une contribution ponctuelle sur les aspects infrastructure et environnement AWS, selon les besoins du projet
Le périmètre pourra être ajusté en cours de mission selon l'évolution des priorités du client.
Responsabilité du Consultant
Le consultant sera responsable des livrables suivants dans le respect des standards de qualité et d'architecture logicielle du client :
- la qualité, la robustesse et la maintenabilité du code produit, dans le respect des principes d'architecture logicielle en vigueur (Domain-Driven Design, architecture hexagonale)
- la fiabilité des traitements de séries temporelles, notamment sur les problématiques de fuseaux horaires
- la bonne compréhension et la restitution des enjeux métier liés au traitement de données énergétiques
- la communication régulière avec l'équipe cliente sur l'avancement des travaux et les risques techniques identifiés
Le consultant travaillera en étroite collaboration avec les équipes internes du client, dans une logique d'autonomie encadrée.
Livrables attendus
Les principaux livrables attendus de la mission sont :
- des applications et modules Python de traitement et d'agrégation de séries temporelles, documentés
- des algorithmes de valorisation de la flexibilité des centrales électriques, implémentés en Python et
- une documentation technique permettant la prise en main et la maintenance des développements réalisés
- un reporting régulier de l'avancement auprès de l'équipe cliente
La nature exacte et la cadence des livrables seront précisés avec l'équipe cliente au démarrage de la mission.
Profil du consultant recherché
Le client recherche un consultant confirmé, capable de prendre du recul sur les problématiques techniques et métier, et non un profil junior se limitant au développement de fonctions isolées. Une bonne compréhension du secteur de l'énergie est appréciée mais non exigée : une forte capacité à monter rapidement en compétence sur un domaine métier nouveau constitue une alternative satisfaisante.
Formation recherchée
- Diplôme d'une grande école d'ingénieurs (Centrale, Mines, Polytechnique, etc.) ou d'une université de renom spécialisée en informatique
- Une formation avec de solides bases mathématiques est appréciée, notamment pour appréhender les différentes approches de modélisation des séries temporelles
Expérience requise
- 5 ans d'expérience minimum en développement logiciel, avec une pratique confirmée et significative
- Expérience dans des domaines métiers complexes (énergie, finance, assurance) appréciée
- Maîtrise des design patterns et des principes d'architecture logicielle (Domain-Driven Design, architecture hexagonale)
- Connaissance des outils de gestion de versions et des méthodologies agiles
Compétences techniques
- Expertise avancée en Python, incluant la maîtrise des protocoles réseau standards (HTTP, FTP)
- Connaissance du langage .NET appréciée, sans être indispensable
- Manipulation de grandes volumétries de données via des librairies telles que pandas ou polars
- Maîtrise de SQL et des outils d'analyse de données
- Bases en séries temporelles et en modélisation mathématique associée
- Aisance avec les bases de données et les environnements d'infrastructure de type AWS/Terraform, même sans expertise poussée
- Participation à des projets open source ou personnels significatifs appréciée
Compétences / Qualités personnelles
- Excellentes capacités d'autonomie et de communication pour s'intégrer efficacement dans un environnement technique exigeant
- Rigueur et méthode, notamment dans l'identification et la gestion des risques techniques
- Capacité de recul et de prise de hauteur sur les problématiques techniques, au-delà du seul développement de fonctions
- Fortes capacités d'adaptation et d'apprentissage rapide, y compris sur des sujets métier nouveaux
- Français courant (langue de travail sur la mission)