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 cœur de l'écosystème universitaire et scientifique lillois, ainsi qu'au cœur 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 de chercheurs 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 :
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 avec les chercheurs et développeurs du projet Pharo ainsi qu’avec les contributeurs de la VM Pharo, qui développent et maintiennent le langage, son environnement d’exécution et sa machine virtuelle, pour concevoir 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 œuvres sociales d'Inria)
- Accès à la formation professionnelle
- Sécurité sociale
Rémunération
Rémunération selon profil
Informations générales
- Thème/Domaine :
Programmation distribuée et génie logiciel
Ingénierie logicielle (BAP E) - Ville : Villeneuve d'Ascq
- Centre Inria : Centre Inria de l'Université de Lille
- Date de prise de fonction souhaitée : 2026-12-01
- Durée de contrat : 12 mois
- Date limite pour postuler : 2026-09-30
Attention: Les candidatures doivent être déposées en ligne sur le site Inria. Le traitement des candidatures adressées par d'autres canaux n'est pas garanti.
Consignes pour postuler
Veuillez joindre votre CV et votre lettre de motivation
Sécurité défense :
Ce poste est susceptible d’être affecté dans une zone à régime restrictif (ZRR), telle que définie dans le décret n°2011-1425 relatif à la protection du potentiel scientifique et technique de la nation (PPST). L’autorisation d’accès à une zone est délivrée par le chef d’établissement, après avis ministériel favorable, tel que défini dans l’arrêté du 03 juillet 2012, relatif à la PPST. Un avis ministériel défavorable pour un poste affecté dans une ZRR aurait pour conséquence l’annulation du recrutement.
Politique de recrutement :
Dans le cadre de sa politique diversité, tous les postes Inria sont accessibles aux personnes en situation de handicap.
Contacts
- Équipe Inria : EVREF
-
Recruteur :
Polito Guillermo / Guillermo.Polito@inria.fr
L'essentiel pour réussir
Curieux(se) et passionné(e) par les langages de programmation, les environnements d’exécution et les machines virtuelles, vous aimez comprendre ce qui se passe « sous le capot » et n’avez pas peur de descendre plusieurs niveaux d’abstraction pour trouver la cause d’un problème de performance.
Vous appréciez expérimenter, mesurer et remettre en question les solutions existantes. Vous êtes à l’aise avec une démarche de recherche expérimentale : formuler une hypothèse, construire un prototype, mesurer ses effets, analyser les résultats et recommencer.
Une bonne connaissance de Smalltalk/Pharo, des langages dynamiques, des runtimes, de la compilation ou des machines virtuelles constitue un réel atout. Une expérience en C/C++, compilation JIT, optimisation de performances ou architecture de VM sera particulièrement appréciée.
Au-delà des compétences techniques, nous recherchons une personne autonome, curieuse et pragmatique, qui aime travailler à la frontière entre recherche et développement logiciel. Vous appréciez le travail en équipe, savez partager vos résultats et êtes capable de vous approprier rapidement un domaine technique complexe.
Aimer apprendre, expérimenter et comprendre en profondeur sont des qualités essentielles pour réussir cette mission. Une formation ou une expérience en informatique, systèmes, langages de programmation ou domaines proches est attendue ; une expérience de recherche (doctorat ou équivalent) constitue un réel atout.
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.