Pharo Virtual Machine Engineer / Isolation (M/F)

Contract type : Fixed-term contract

Level of qualifications required : PhD or equivalent

Other valued qualifications : Ingénieur

Fonction : Temporary scientific engineer

Level of experience : From 5 to 12 years

About the research centre or Inria department

The Inria Centre at the University of Lille was set up in 2008 and employs 360 people, including 305 scientists in 16 research teams. Recognised for its strong involvement in the socio-economic development of the Hauts-De-France region, the Inria centre at the University of Lille maintains close relations with large companies and SMEs. By fostering synergies between researchers and industry, Inria contributes to the transfer of skills and expertise in the field of digital technologies and provides access to the best European and international research for the benefit of innovation and businesses, particularly in the region.

For more than 10 years, the Inria centre at the University of Lille has been located at the heart of Lille's university and scientific ecosystem, as well as at the heart of Frenchtech, with a technology showroom based on avenue de Bretagne in Lille, on the EuraTechnologies site of economic excellence dedicated to information and communication technologies (ICT).

Context

The goal is to develop techniques for optimizing the Pharo runtime and virtual machine in order to significantly improve the performance of a sandbox environment for the isolated execution of Smalltalk/Pharo code, while preserving the language’s dynamic, reflexive, and interactive properties.

Assignment

Responsibilities:

 

With the assistance of researchers and engineers specializing in programming languages, runtimes, and virtual machines, the successful candidate will be responsible for designing, implementing, and evaluating optimizations that make execution within the Pharo Sandbox as comparable as possible to native execution outside the Sandbox.

 

In particular, they will study the interactions between:

  • the Sandbox mechanism;
  • the Pharo runtime;
  • the interpreter and bytecode;
  • the JIT compiler;
  • stack and context management mechanisms;
  • memory allocation and the garbage collector;
  • reflection and reification mechanisms.

A significant part of the work will involve measuring before optimizing: identifying the main costs of the Sandbox, proposing optimization hypotheses, implementing them, and then validating them experimentally.

 

Responsibilities:

The successful candidate will be responsible for designing and implementing the experiments necessary to optimize the Pharo Sandbox and will take the initiative to identify new optimization opportunities at the runtime and VM levels.

Main activities

Main Responsibilities:

  • Analyze and characterize the costs of Sandbox execution.
  • Design optimizations at the runtime, interpreter, and JIT compiler levels.
  • Develop and integrate prototypes into the Pharo VM.
  • Design and run reproducible benchmarks to measure the gains achieved.
  • Document, present, and disseminate the results in the form of software and scientific contributions.

 

The successful candidate will collaborate with researchers and developers on the Pharo project, as well as with contributors to the Pharo VM—who develop and maintain the language, its runtime environment, and its virtual machine—to design and evaluate new optimization techniques for the Sandbox and the runtime. They may also collaborate with researchers working on:

  • dynamic languages;
  • virtual machines;
  • JIT compilation;
  • reflexive programming;
  • secure execution environments;
  • interactive development tools.

Skills

Technical Skills and Required Qualifications:

  • Programming: Proficiency in a programming language; experience with Smalltalk/Pharo is a significant asset.
  • Dynamic Languages and Environments: Interest in and understanding of the execution mechanisms of dynamic languages.
  • Runtime / Virtual Machine: Knowledge of runtime architecture, interpretation, bytecode, or virtual machines.
  • Optimization: Ability to analyze program performance, build benchmarks, and identify the main execution costs.
  • System development: Proficiency in C/C++ is appreciated for working at the VM level.
  • Compilation / JIT: Knowledge of compilation principles and just-in-time (JIT) compilation is appreciated.
  • Experimental Methodology: Ability to design reproducible experiments, analyze results, and compare different approaches.
  • Development Tools: Proficiency in standard software development, version control (Git), and testing tools.

 

Languages:

  • French: Fluent or strong professional communication skills.
  • English: Good professional proficiency, particularly for reading scientific literature and technical documentation, and for communicating with an international community.

 

Interpersonal Skills:

  • Intellectual curiosity and a passion for exploring complex technical topics.
  • Ability to work independently while regularly consulting with team members.
  • A passion for collaborative work and the ability to share knowledge and findings.
  • Ability to present and explain technical findings to audiences with varying levels of expertise.
  • A critical mindset and the ability to question existing technical choices.
  • Perseverance when faced with problems that are difficult to reproduce or diagnose.
  • Rigor in conducting experiments and analyzing results.

 

Additional skills that are a plus:

  • Experience with Pharo or Smalltalk.
  • Experience in developing or optimizing a virtual machine, runtime, or compiler.
  • Knowledge of JIT, garbage collection, stack management, bytecode, or dynamic dispatch.
  • Experience with experimental research and/or scientific publishing.
  • Contributions to open-source projects, ideally in the field of programming languages or runtime environments.
  • Experience with profiling and benchmarking tools.
  • Interest in interactive and reflexive development environments.

Benefits package

  • Subsidized catering
  • Public transport partially reimbursed
  • Leave: 7 weeks‘ annual leave + 10 days’ RTT (full-time basis) + possibility of exceptional leave (e.g. sick children, moving house)
  • Possibility of teleworking and flexible working hours
  • Professional equipment available (videoconferencing, loan of IT equipment, etc.)
  • Social, cultural and sporting benefits (Association de gestion des œuvres sociales d'Inria)
  • Access to professional training

Remuneration

Remuneration according to profile