Suivez

la liste

Le Centre Borelli est une unité mixte de recherche (UMR 9010) réunissant dans une démarche de modélisation interdisciplinaire, des collectifs de recherche en mathématiques et informatique, en neurosciences et biologie, en sciences humaines et sociales. Les chercheurs du Centre Borelli sont très investis dans le transfert industriel, le domaine biomédical et les transformations de la société.
La spécificité du Centre Borelli est de développer des connaissances fondamentales en neurosciences et en mathématiques, des méthodes scientifiques dans la modélisation, la simulation et le traitement de données complexes, des démarches cliniques et des outils logiciels. L’effort de recherche est caractérisé par une approche interdisciplinaire et globalisante comprenant un socle théorique, une intimité avec la réalité des phénomènes étudiés (observations in situ, expertise transdisciplinaire), une concrétisation des réalisations au travers des technologies numériques (codes numériques industriels, plateformes Internet, applications mobiles) et une démarche respectant les canons de la science reproductible.

Contexte du projet

Le Centre Borelli (ENS Paris-Saclay) cherche à industrialiser et packager un outil scientifique open source développé pendant une thèse : VisionToolkit. Ce projet implémente des méthodes avancées d’oculométrie, de gaze tracking, et de quantification du mouvement des yeux.

Missions principales : l'objectif est de transformer une implémentation académique en un package Python robuste, maintenable et documenté, conforme aux standards industriels (structure claire, tests, CI/CD, documentation, règles pour contributeurs).

Etapes clés ou rétroplanning :

  1. Audit et refactorisation du code existant
    • Analyser l’architecture actuelle et identifier les points d’amélioration.
    • Rationaliser et organiser le code pour le rendre lisible, modulaire et maintenable.
    • Appliquer les bonnes pratiques (PEP 8, typage, gestion des dépendances, etc.).
  2. Création d’un package Python standard
    • Structurer le projet selon les conventions (ex: src/, tests/, docs/).
    • Intégrer des outils de build (setuptools, uv, etc).
    • Automatiser la génération de la documentation (Sphinx, MkDocs).
  3. Tests et intégration continue (CI/CD)
    • Écrire des tests unitaires et d’intégration (pytest).
    • Mettre en place une CI/CD (GitHub Actions) pour les tests, le packaging et le déploiement.
    • Assurer la couverture de code et la qualité (linting, formatage).
  4. Documentation et exemples
    • Rédiger une documentation technique (API, installation, usage).
    • Créer des exemples concrets (notebooks Jupyter, scripts) pour illustrer les fonctionnalités.
    • Documenter les processus pour les contributeurs open source (CONTRIBUTING.md, CODE_OF_CONDUCT).
  5. Collaboration avec l’équipe
    • Travailler en étroite collaboration avec le doctorant auteur du code pour valider les choix techniques, sous la coordination d’un architecte logiciel et de chercheurs du laboratoire
    • Participer aux réunions de suivi et restitution de la progression des jalons et étapes clés avec l’équipe du Centre Borelli.

Profil recherché

Compétences techniques

  • Python avancé : Maîtrise des librairies scientifiques (NumPy, Scipy, PyTorch) et des outils de packaging.
  • Expérience en industrialisation : Refactorisation, tests, CI/CD, gestion de dépendances.
  • Connaissance des outils : Git, pytest, Sphinx/MkDocs, GitHub Actions, et idéalement uv.
  • Bonus : Expérience avec des projets open source ou des librairies scientifiques.

Compétences transverses

  • Rigueur scientifique : Capacité à comprendre et formaliser des algorithmes complexes (oculométrie, traitement du signal).
  • Esprit collaboratif : Aisance pour travailler avec des chercheurs et des développeurs.
  • Autonomie et proactivité : Capacité à proposer des solutions techniques adaptées.

Formation et expérience

  • Formation d’ingénieur ou équivalent en informatique/scientifique.
  • 2 à 5 ans d’expérience en développement Python, idéalement dans un contexte scientifique ou industriel.
  • Expérience en travail d’équipe sur des projets utilisés en production.

Modalités pratiques

  • Rémunération : Selon expérience et diplômes
  • Durée : Mission de 6 mois.
  • Lieu : Principalement au Centre Borelli (ENS Paris-Saclay) à Gif sur Yvette
  • Début : Dès que possible.

Pour postuler

Envoyer un CV + lettre de motivation (ou profil LinkedIn/GitHub) à laurent.oudre@ens-paris-saclay.fr, en précisant :

  • Votre expérience en industrialisation de code scientifique.
  • Des exemples de projets similaires (packages Python, contributions open source).
  • Votre disponibilité.