Ingénieur Machine Virtuelle Pharo - Isolation H/F - INRIA
- CDD
- Télétravail accepté
- INRIA
Les missions du poste
A propos d'Inria
Inria, l'institut national de recherche dans les sciences et technologies du numérique, est en appui de l'État pour les stratégies nationales de recherche et d'innovation du numérique en tant qu'Agence de programmes. Inria mène plus de 300 projets de recherche et d'innovation avec ses 3500 scientifiques, ingénieurs et personnels d'appui, en partenariat avec les universités et l'écosystème numérique (entreprises, entrepreneurs, acteurs publics). Ensemble, nous explorons des domaines clés comme l'intelligence artificielle, la cybersécurité, l'informatique quantique, le Cloud, la transformation numérique de la santé, les jumeaux numériques ou encore les technologies numériques pour la défense. Nous construisons des solutions concrètes telles que des logiciels, des startups technologiques, des partenariats avec les entreprises du tissu national et des formations de pointe. Notre objectif : l'impact scientifique, technologique et industriel au service de la souveraineté numérique de la France.
Ingénieur Machine Virtuelle Pharo / Isolation (H/F)
Type de contrat : CDD
Niveau de diplôme exigé : Thèse ou équivalent
Autre diplôme apprécié : Ingénieur
Fonction : Ingénieur scientifique contractuel
Niveau d'expérience souhaité : De 5 à 12 ans
A propos du centre ou de la direction fonctionnelle
Créé en 2008, le centre Inria de l'Université de Lille emploie 360 personnes, dont 305 chercheurs répartis dans 16 équipes de recherche. Reconnu pour son engagement fort dans le développement socio-économique de la région Hauts-de-France, le centre Inria de l'Université de Lille entretient des relations étroites avec les grandes entreprises et les PME. En favorisant les synergies entre les chercheurs et l'industrie, Inria contribue au transfert de compétences et d'expertise dans le domaine des technologies numériques, et donne accès au meilleur de la recherche européenne et internationale au service de l'innovation et des entreprises, notamment dans la région.
Depuis plus de 10 ans, le centre Inria de l'Université de Lille est au coeur de l'écosystème universitaire et scientifique lillois, ainsi qu'au coeur de la Frenchtech, avec un showroom technologique situé avenue de Bretagne à Lille, sur le site d'excellence économique EuraTechnologies dédié aux technologies de l'information et de la communication (TIC).
Contexte et atouts du poste
L'objectif est de:développer des techniques d'optimisation du runtime et de la machine virtuelle Pharo permettant d'améliorer significativement les performances d'un environnement Sandbox pour l'exécution isolée de code Smalltalk/Pharo, tout en préservant les propriétés dynamiques, réflexives et interactives du langage.
Mission confiée
Missions :
Avec l'aide dechercheurs et ingénieurs spécialisés en langages de programmation, runtime et machine virtuelle, la personne recrutée sera amenée àconcevoir, implémenter et évaluer des optimisations permettant de rendre l'exécution dans le Sandbox Pharo comparable, autant que possible, à une exécution native hors Sandbox.
Elle étudiera notamment les interactions entre :
- le mécanisme de Sandbox ;
- le runtime Pharo ;
- l'interpréteur et le bytecode ;
- le compilateur JIT ;
- les mécanismes de gestion de stack et de contextes ;
- l'allocation mémoire et le garbage collector ;
- les mécanismes de réflexion et de réification.
Une partie importante du travail consistera àmesurer avant d'optimiser: identifier les principaux coûts du Sandbox, proposer des hypothèses d'optimisation, les implémenter puis les valider expérimentalement.
Responsabilités :
La personne recrutée a la charge deconcevoir et implémenter les expérimentations nécessaires à l'optimisation du Sandbox Pharoet prendra des initiatives pouridentifier de nouvelles opportunités d'optimisation au niveau du runtime et de la VM.Principales activités
Principales activités:
- Analyser et caractériser les coûts de l'exécution Sandbox.
- Concevoir des optimisations au niveau du runtime, de l'interpréteur et du compilateur JIT.
- Développer et intégrer des prototypes dans la VM Pharo.
- Concevoir et exécuter des benchmarks reproductibles pour mesurer les gains obtenus.
- Documenter, présenter et diffuser les résultats sous forme de contributions logicielles et scientifiques.
La personne recrutée sera en lien avecles chercheurs et développeurs du projet Pharo ainsi qu'avec les contributeurs de la VM Pharo, quidéveloppent et maintiennent le langage, son environnement d'exécution et sa machine virtuelle, pourconcevoir et évaluer de nouvelles techniques d'optimisation du Sandbox et du runtime.
Elle pourra également collaborer avec des chercheurs travaillant sur :
- les langages dynamiques ;
- les machines virtuelles ;
- la compilation JIT ;
- la programmation réflexive ;
- les environnements d'exécution sécurisés ;
- les outils de développement interactifs.
Compétences
Compétences techniques et niveau requis :
Programmation : bonne maîtrise d'un langage de programmation ; une expérience de Smalltalk/Pharo constitue un réel atout.
Langages et environnements dynamiques : intérêt et compréhension des mécanismes d'exécution des langages dynamiques.
Runtime / machine virtuelle : connaissances en architecture de runtime, interprétation, bytecode ou machines virtuelles.
Optimisation : capacité à analyser les performances d'un programme, construire des benchmarks et identifier les principaux coûts d'exécution.
Développement système : maîtrise de C/C++ appréciée pour intervenir au niveau de la VM.
Compilation / JIT : connaissances des principes de compilation et de compilation à la volée appréciées.
Méthode expérimentale : capacité à concevoir des expérimentations reproductibles, analyser des résultats et comparer différentes approches.
Outils de développement : maîtrise des outils classiques de développement logiciel, de versionnement (Git) et de tests.
Langues :
Français : courant ou bonne capacité de communication professionnelle.
Anglais :bon niveau professionnel, notamment pour lire la littérature scientifique, la documentation technique et communiquer avec une communauté internationale.
Compétences relationnelles :
Curiosité intellectuelle et goût pour l'exploration de sujets techniques complexes.
Capacité à travailler de manière autonome tout en sollicitant régulièrement les membres de l'équipe.
Goût du travail collaboratif et capacité à partager ses connaissances et ses résultats.
Capacité à présenter et vulgariser des résultats techniques auprès de publics ayant des niveaux d'expertise différents.
Esprit critique et capacité à questionner les choix techniques existants.
Persévérance face à des problèmes difficiles à reproduire ou à diagnostiquer.
Rigueur dans la conduite des expérimentations et dans l'analyse des résultats.
Compétences additionnelles appréciées :
Expérience avec Pharo ou Smalltalk.
Expérience dans le développement ou l'optimisation d'une machine virtuelle, d'un runtime ou d'un compilateur.
Connaissances en JIT, garbage collection, gestion de stack, bytecode ou dispatch dynamique.
Expérience de travaux de recherche expérimentale et/ou de publication scientifique.
Contribution à des projets open source, idéalement dans le domaine des langages ou des environnements d'exécution.
Expérience avec des outils de profiling et de benchmark.
Intérêt pour les environnements de développement interactifs et réflexifs.
Avantages
- Restauration subventionnée
- Transports publics remboursés partiellement
- Congés: 7 semaines de congés annuels + 10 jours de RTT (base temps plein) + possibilité d'autorisations d'absence exceptionnelle (ex : enfants malades, déménagement)
- Possibilité de télétravail et aménagement du temps de travail
- Équipements professionnels à disposition (visioconférence, prêts de matériels informatiques, etc.)
- Prestations sociales, culturelles et sportives (Association de gestion des oeuvres sociales d'Inria)
- Accès à la formation professionnelle
- Sécurité sociale
Rémunération
Rémunération selon profil
Compétences requises
- Smalltalk
- C++
- Programmation
- Anglais
- Méthode du juste-à-temps
- Développement logiciel
- Git
- Français