Software engineering / Modular code for surgical planning

Contract type : Fixed-term contract

Renewable contract : Yes

Level of qualifications required : Graduate degree or equivalent

Fonction : Temporary scientific engineer

About the research centre or Inria department

The Inria Saclay-Île-de-France Research Centre was established in 2008. It has developed as part of the Saclay site in partnership with Paris-Saclay University and with the Institut Polytechnique de Paris since 2021.

The centre has 39 project teams , 27 of which operate jointly with Paris-Saclay University and the Institut Polytechnique de Paris. Its activities occupy over 600 scientists and research and innovation support staff, including 54 different nationalities.

Context

In the Simbiotx team, we build virtual human twins for advancing disease understanding and treatment planning. Our software can simulate the entire blood circulation. Our next step is to build it into a package that is usable for many user types, fast to personalize it for each patient, and flexible to support more use cases.

In particular we have been developing 0D physics-based models of the entire cardiovascular system, including the lungs, heart, and other organs and components such as artificial shunts, depending on the biomedical question at hand [Audebert]. These models are typically personalized for each patient, with automatic parameter estimation [Pant] from data. The code needs to run fast for sensitivity analysis [Sala] and uncertainty quantification.

These models have been primarily run by researchers and surgeons to predict physiological variables following congenital heart disease palliation, pulmonary hypertension treatment, and liver surgery (resection, novel surgery type,…). To consolidate these different models, and improve development possibilities, modularity, and ease of use by a diversity of users, we have decided to refactor the main software. This software is an important part of the European project ERC MoDeLLiver to be able to deliver to the clinics, in collaboration with several hospitals.

Assignment

We are seeking a talented software engineer to develop the new generation of our cardiovascular modeling software. Your mission will involve laying out the foundational elements and collaboratively develop a new version of this software.

Previously coded in C, we plan to transition to C++. The new code design will be developed with the following goals:

  • Modularity - create an architecture that allows for faster, more intuitive, and easier modeling. The individual model components should be provided as elementary bricks that are independent from one another, making it easier for them to interact.
  • Flexibility - provide options for interacting with other softwares and models.
  • Extensible - enable more efficient development of new components (e.g., new organs, basic components, or functions). In particular, the design should allow natural extension to GUI.
  • Performance - the code should still remain reasonably fast, in particular for real-time surgery later on. 

If you are a passionate software engineer looking to gain experience by joining an exciting and highly promising project, contact us! You will actively participate in redefining the architecture, redesigning the building blocks, developing, managing, and maintaining our cutting-edge software that has consistently delivered precise results and holds numerous other promising applications.

Main activities

Activities : 

  • Collaboratively decide on and justify a new architecture, then implement it in C++.
  • Develop new features, functions, and physics-based components.
  • Maintain and enhance the CI/CD pipeline, including GitLab Runners, Container Registry and Docker images.
  • Software testing – unit tests; integration tests; e2e tests.
  • Writing documentation.
  • Contributing to scientific publications arising from the project.
  • Technology watch, particularly in the field of computational fluid dynamics and cardiovascular 0D models: state of the art, development and/or deployment of proofs of concept (PoC), etc.
  • Creation of training materials for developers/users within the team.
  • Advice and expertise in technological development for team members and their collaborators.

Skills

  • Solid knowledge and experience in software development:
    • Extensive experience in software development, particularly with C and modern C++
    • In-depth knowledge and experience with design patterns
    • Proficiency with software development tools and practices including: CI/CD pipelines, Documentation, Software testing, Docker, Runners, versioning
    • Knowledge in Debian GNU/Linux system administration
  • Experience in physics-based system modeling
  • Deep knowledge and understanding of differential algebraic equations analysis and numerical methods
  • Knowledge of the scientific method associated with experimentation (reproductible science, state-of-the-art science and technology, contributing to scientific publication on methodologies and performance measurement)
  • Professional level of English required

Benefits package

  • Subsidized meals
  • Partial reimbursement of public transport costs
  • Leave: 7 weeks of annual leave + 10 extra days off due to RTT (statutory reduction in working hours) + possibility of exceptional leave (sick children, moving home, etc.)
  • Possibility of teleworking and flexible organization of working hours
  • Professional equipment available (videoconferencing, loan of computer equipment, etc.)
  • Social, cultural and sports events and activities
  • Access to vocational training
  • Social security coverage

Remuneration

According to profile