Contexte et atouts du poste
Au sein de l'équipe Simbiotx, nous construisons des jumeaux humains virtuels afin de faire progresser la compréhension des maladies et la planification des traitements. Notre logiciel peut simuler l'ensemble de la circulation sanguine. Notre prochaine étape consiste à en faire un logiciel utilisable par de nombreux types d'utilisateurs, rapide à personnaliser pour chaque patient et flexible pour prendre en charge davantage de cas d'utilisation.
En particulier, nous avons développé des modèles 0D basés sur la physique de l'ensemble du système cardiovasculaire, y compris les poumons, le cœur et d'autres organes et composants tels que les shunts artificiels, en fonction de la question biomédicale en jeu [Audebert]. Ces modèles sont généralement personnalisés pour chaque patient, avec une estimation automatique des paramètres [Pant] à partir des données. Le code doit fonctionner rapidement pour l'analyse de sensibilité [Sala] et la quantification de l'incertitude.
Ces modèles ont été principalement utilisés par les chercheurs et les chirurgiens pour prédire les variables physiologiques après la palliation d'une cardiopathie congénitale, le traitement de l'hypertension pulmonaire et la chirurgie du foie (résection, nouveau type de chirurgie,...). Afin de consolider ces différents modèles et d'améliorer les possibilités de développement, la modularité et la facilité d'utilisation par une diversité d'utilisateurs, nous avons décidé de remanier le logiciel principal. Ce logiciel est une partie importante du projet européen ERC MoDeLLiver pour être en mesure de fournir aux cliniques, en collaboration avec plusieurs hôpitaux.
Mission confiée
Nous recherchons un stagiaire ingénieur logiciel pour développer une interface graphique pour notre logiciel de modélisation cardiovasculaire. Votre mission consistera à choisir une stack technique, concevoir, puis implémenter l'interface graphique.
Notre logiciel (actuellement en développement) est composé d'un moteur de calcul en C++, et d'une surcouche proposant des abstractions de plus haut niveau en Python. La couche graphique devra s'interfacer avec le code Python. Par ailleurs aucun choix de technologie n'est arrêté.
Notre logiciel s'adresse à deux audiences pour lesquels nous avons deux workflows bien distincts:
1. Les chercheurs/modélisateurs représentent un modèle d'abord en agençant des éléments de base sous forme de circuit électrique, de manière similaire à de nombreuses solutions commerciales, puis en configurant ce circuit en associant des équations et des paramètres aux différents éléments. Les propriétés mathématiques des modèles sont également analysées et représentées graphiquement, généralement sous forme de graphes 2D et de heatmaps;
2. Les professionnels de santé utilisent de tels modèles préalablement définis pour simuler différentes interventions cliniques. L'interface graphique devra leur permettre d'extraire des résultats d'une simulation (de simples tableaux de valeurs, par exemple du CSV) les variables d'intérêt, et de comparer rapidement les résultats de plusieurs simulations représentant des interventions différentes. L'interface devra être suffisamment personnalisable pour que les cliniciens puissent l'ajuster à leurs besoins selon leur spécialité.
Vous serez intégré à une équipe de recherche en biomécanique - la majorité de vos collègues seront des chercheurs, pas des spécialistes en logiciel. Aucune connaissance particulière en mathématiques, physiologie, ou biomécanique n'est requise, mais un intérêt pour ces disciplines sera perçu positivement.
Vous serez accompagné par l'ingénieur en charge du développement du logiciel de modélisation susmentionné. Les choix techniques et la conception de l'interface seront faits en collaboration, mais vous serez essentiellement seul en charge de l'implémentation.
Dans le cas où l'interface serait finie plus tôt que prévu, vous serez amené à travailler sur d'autres composants dudit logiciel.
Principales activités
Activités :
3. Concevoir une interface graphique en collaboration avec les futurs utilisateurs;
4. Choisir une stack technique, et l'implémenter - il est à noter que cette interface graphique n'a a priori pas vocation à être activement maintenue sur le long terme, aussi, la simplicité technique et la robustesse seront privilégiées par rapport à la sophistication de l'interface. L'utilisation de solutions tierces, sous réserve de licence open source permissive, est fortement encouragée - notre code sera open source et nous n'avons pas d'intérêt à réécrire du code déjà disponible;
5. Les attentes en termes de qualité technique sont élevées - l'interface sera codée avec soin et testée rigoureusement;
6. Les choix techniques et, si besoin, les parties complexes de l'interface graphique seront documentés;
7. Le développement intégrera constamment les retours des utilisateurs;
8. Si l'interface graphique devait être terminée avant la fin du stage, vous serez amené à contribuer à d'autres éléments de notre logiciel de modélisation, en C++ et/ou Python.
Compétences
9. Etudiant en master ou école d'ingénieurs en informatique ou assimilé.
10. Spécialisation ou a minima intérêt dans l'UX/UI ou le développement front-end.
11. Minimum d'aisance en anglais oral (une bonne partie de notre équipe ne parle pas français).
12. Une expérience en C++ et Python sera un plus.
Avantages
13. Transports publics remboursés partiellement
14. 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)
15. Possibilité de télétravail et aménagement du temps de travail
16. Équipements professionnels à disposition (visioconférence, prêts de matériels informatiques, etc.)
17. Prestations sociales, culturelles et sportives (Association de gestion des œuvres sociales d'Inria)
18. Accès à la formation professionnelle
19. Sécurité sociale
En cliquant sur "JE DÉPOSE MON CV", vous acceptez nos CGU et déclarez avoir pris connaissance de la politique de protection des données du site jobijoba.com.