------------------------------ FRENCH VERSION BELOW ------------------------------
JOB OFFER
A position for a software development engineer specialized in algorithmic design and optimization applied to electroencephalographic tilme series is available in the NERV laboratory (https://team.inria.fr/nerv/) at the Paris Brain Institute.
The project's starting point is the performance of experiments using brain-computer interfaces (BCI) by subjects who, by modulating their brain activity, control an external device. During recording sessions, brain data are acquired by electroencephalography (EEG), then analyzed offline to train AI classification algorithms for optimizing BCI on-line performance.
The position is part of a research project aimed at improving the translation of brain signals into commands. The analysis of EEG data for training machine-learning algorithms is carried out via HappyFeat, a Python software with a Qt interface developed by the team (https://doi.org/10.1016/j.simpa.2023.100610), interfacing with other BCI software (OpenViBE, Timeflux). It simplifies the set-up of BCI experiments, and automates the selection of optimal features for signal classification via graphical statistical analysis tools.
MAIN OBJECTIVES
Design, develop and optimize in C++ complex algorithms used in computational neuroscience and BCI (connected graphs, signal processing, machine learning), with a high performance challenge (multi-threading, GPU). The scope of the position includes :
· Developing C++ algorithms for signal processing (functional connectivity), connected graph processing and classification (Riemannian geometry, foundation models, etc.),
· Validation via unit testing, benchmarking and performance evaluation on simulated and real signals datasets,
· Case-by-case optimization of algorithms for real-time use, notably through multithreading and GPU implementation.
· Participation in an effort to redesign/refactor the software architecture to make it more modular,
· Technical contribution to a campaign of BCI experiments (around sixty sessions): data analysis, support for exploitation of results, technical support
· Writing technical documentation
The engineer will participate in the overall improvement of the software: setting up automated tests, version control via git, continuous integration, improving maintainability and reproducibility.
Good experience in software engineering is essential. Proficiency in Python and C++ is required, as well as experience in algorithm optimization. Knowledge of signal processing
and physiological signals would be a plus.
HIRING CONDITIONS:
· Position available, to be filled as soon as possible
· 18-24 months fixed-term contract ;
· Gross monthly salary: 4500-5000 euros (depending on experience)
Profil recherché
REQUIRED PROFILE5 years' experience in software development. Engineering school or M2 in computer science. TECHNICAL SKILLS:
- Proficiency in C++. Experience with modern standards (14/17 or higher) are a plus.
- Good knowledge of signal processing and/or machine learning.
- Significant experience in real-time algorithm development and optimization (profiling, parallelism).
- Experience in GPU programming (CUDA)
- Excellent collaborative software practices: git, Github, automated testing, continuous integration
- Good knowledge of Python and scientific packages (numpy, scipy, scikit-learn)
- Knowledge of neuroscience, BCI, statistics or graph theory would be a plus.
SOFT SKILLS:
- Ability to work with a multidisciplinary team
- Autonomy, synthesis, initiative
- Interest in the world of research and neuroscience
- Good communication and writing skills in English and French
The Brain Institute is committed to combating all forms of discrimination. We guarantee an inclusive and respectful working environment for all diversities. All our positions are open to individuals with disabilities.To apply, please prepare your cover letter and CV (in a single PDF file) and send it to:
https://offres.institutducerveau-icm.org/fr/jobs/1960-88 ---------------------- FRENCH VERSION ----------------------
L’Institut du Cerveau et de la Moelle épinière est une Fondation privée reconnue d’utilité publique dont l’objet est la recherche fondamentale et clinique sur le système nerveux. Sur un même lieu, 1000 chercheurs, ingénieurs et médecins couvrent l’ensemble des disciplines de la neurologie, dans le but d’accélérer les découvertes sur le fonctionnement du cerveau, et les développements de traitements sur les maladies comme : Alzheimer, Parkinson, Sclérose en plaques, épilepsie, dépression, paraplégies, tétraplégies, etc. Inauguré en septembre 2010, l’Institut connait une croissance importante de son activité qui nécessite l’appui d’un pôle juridique renforcé.
POSTEUn poste d’ingénieur en développement logiciel et optimisation de calcul appliqué aux séries temporelles (électroencéphalographie) est disponible dans le laboratoire NERV (https://team.inria.fr/nerv/) à l’Institut du Cerveau à Paris (Paris Brain Institute).
Le projet a pour point de départ la réalisation d’expériences d’utilisation d’interfaces cerveau-machine (BCI) par des sujets qui, par la modulation de leur activité cérébrale, contrôlent un dispositif externe. Lors des sessions d’enregistrement, les données cérébrales sont acquises par électroencéphalographie (EEG), puis analysées hors-ligne afin d’entrainer des algorithmes IA de classification dans le but d’optimiser les performances en ligne du BCI.
Le poste s’intègre dans le contexte d’un projet de recherche visant à améliorer la traduction de signaux cérébraux en commandes. L’analyse des données EEG pour l’entrainement d’algorithmes de machine-learning est réalisée via HappyFeat, un logiciel Python avec une interface Qt développé par l’équipe (https://doi.org/10.1016/j.simpa.2023.100610), s’interfaçant avec d’autres logiciels BCI (OpenViBE, Timeflux). Il permet de simplifier la mise en place des expériences BCI, et d’automatiser la sélection de caractéristiques optimales pour la classification des signaux via des outils graphiques d’analyse statistique.
MISSIONS PRINCIPALES: Concevoir, intégrer et optimiser en C++ des algorithmes complexes utilisés en neurosciences computationnelles et BCI (graphes connectés, traitement du signal, machine learning), avec un fort enjeu de performance (multi-threading, GPU). Les différents travaux incluent :
· L’intégration (C++) d’algorithmes de traitement du signal (connectivité fonctionnelle), de traitement de graphes connectés, et de classification (géométrie Riemannienne, modèles de fondation…),
· La validation des algorithmes via tests unitaires, benchmarking et évaluation de leurs performances sur signaux simulés et réels,
· L’optimisation au cas par cas des algorithmes pour leur utilisation en temps réel, notamment via l’utilisation de multithreading et d’implémentation sur GPU.
· La participation à un effort de refonte de l’architecture du logiciel pour en accroître la modularité,
· La contribution technique à une campagne d’expériences BCI (environ soixante sessions) : analyse des données, soutien à l’exploitation des résultats, soutien technique.
· La rédaction de documentation technique
L’ingénieur(e) participera à l’amélioration générale du logiciel : mise en place de tests automatisés, contrôle de version via git, intégration continue, maintenabilité et reproductibilité.
Une bonne expérience en ingénierie logicielle est indispensable. Une maîtrise de Python et de C++ sera requise, ainsi qu’une bonne expérience en optimisation d’algorithmes. Une connaissance en traitement du signal et des signaux physiologiques serait un plus.
CONDITIONS DE RECRUTEMENT: · Poste à pourvoir dès que possible ;
· CDD d’une durée de 18 à 24 mois ;
· Salaire brut mensuel : 4500-5000 euros (selon expérience)
PROFIL5 ans d’expérience en développement logiciel. École d’ingénieurs
ou M2 en informatique.Compétences techniques:
- Maîtrise du C++. Les normes modernes (14/17 ou supérieur) sont un plus.
- Bonnes connaissances en traitement du signal et/ou en machine-learning.
- Expérience significative en développement d’algorithmes temps-réel et en optimisation de performances (profilage, parallélisme)
- Expérience en programmation GPU (CUDA)
- Excellentes pratiques logicielles collaboratives : git, Github, tests automatisés, intégration continue
- Bonnes connaissances en Python et packages scientifiques (numpy, scipy, scikit-learn)
- Des connaissances en neurosciences, BCI, statistiques ou théorie des graphes seraient un plus.
Savoir-être:
- Capacité à travailler avec une équipe pluridisciplinaire
- Autonomie, synthèse, initiative
- Intérêt pour le monde de la recherche et les neurosciences
- Bonne communication et rédaction en anglais et français.
L’Institut du cerveau s’engage pour lutter contre toute forme de discrimination. Nous garantissons un environnement de travail inclusif et respectueux de toutes les diversités.Tous nos postes sont ouverts aux personnes en situation de handicap. Pour candidater, merci de préparer votre lettre de motivation et votre CV
(dans un unique fichier PDF):
https://offres.institutducerveau-icm.org/fr/jobs/1960-88