
Chef de Projet ou Expert en Ingénierie Logicielle H/F - CNRS
- Villetaneuse - 93
- CDD
- CNRS
Les missions du poste
Conduire la maîtrise d'oeuvre de projets logiciels sur une ou plusieurs phases du cycle de vie : analyse, conception, développement, test, intégration, et déploiement dans le respect du cahier de charges, des normes et des règles de sécurité.
Travailler dans un réseau d'ingénieurs en soutien de chercheurs localisés sur des sites différents.
Activités
- Piloter des projets logiciels sur tout ou une partie de leur cycle de vie,
- Analyser les besoins et participer à la réalisation du cahier de charges fonctionnel du projet,
- Assurer la conception de la solution au moyen d'expertises approfondies,
- Réaliser le développement des logiciels,
- Concevoir, spécifier et exécuter des tests en regard des exigences et des spécifications fonctionnelles et en suivant une stratégie de tests définie,
- Assurer une veille technologique en relation avec le domaine d'application et les experts du domaine,
- Assurer le déploiement dans un objectif de diffusion et de valorisation, notamment auprès de la communauté internationale ou des partenaires industriels,
- Déployer, configurer et maintenir des serveurs, notamment pour l'intégration continue, pour la compilation, les tests, le packaging et le déploiement automatique,
- Assurer une assistance fonctionnelle et/ou technique aux exploitants et aux utilisateurs,
- Rédiger et mettre à niveau les documentations techniques et fonctionnelles.
Compétences
* Connaissances :
- Conduite de projet et génie logiciel,
- Outils de développement logiciels (utilisation collaborative de git, CI/CD/ Docker...),
- Langage de programmation fonctionnelle (de préférence Ocaml),
- Langage de script (Perl, Python),
- Méthodologie de tests,
- Programmation système (notamment parallèle/multi-thread) et réseaux IP (en C/C++),
- Administration système GNU/Linux,
- Anglais niveau B2.
* Savoir-faire
- Piloter un projet,
- Effectuer une analyse des besoins,
- Respecter les dispositions de qualités et les normes de programmation,
- Élaborer et mettre en oeuvre un plan de tests,
- Packager une application,
- Rédiger et mettre à jour la documentation fonctionnelle et technique.
* Savoirs-être
- Travailler en équipe et en réseau,
- Faire preuve de méthode et de rigueur,
- Être créatif et avoir un bon sens relationnel,
- Faire preuve de pédagogie avec les utilisateurs.
- Compétences managériales
Contexte de travail
La personne recrutée sera mutualisée entre trois laboratoires d'informatique en Île de France : IRIF (https://www.irif.fr/), LIPN (https://lipn.univ-paris13.fr/) et LMF (https://lmf.cnrs.fr/). Ses missions seront réalisées sous la responsabilité d'un IR CNRS du LIPN, chef de projets logiciels. Le lieu de travail pourra toutefois être n'importe lequel des trois laboratoires en accord avec la personne recrutée et en fonction des besoins des projets. De plus, le télétravail peut être envisagé selon la réglementation en place au CNRS.
Chaque laboratoire concerné développe des logiciels directement issus ou comme support de ses recherches. Les projets listés ci-dessous sont des exemples de projets dont la personne recrutée pourra être en charge et des missions y associés :
- CDuce (https://www.cduce.org/) : CDuce est un langage fonctionnel avec polymorphisme et surcharge. Les missions incluent la consolidation des fonctionnalités nouvelles issues de la recherche (enregistrement, raffinement de types...) ainsi que des tâches de maintenance (maintien de la compatibilité avec OCaml, release...).
- Usuba (https://usubalang.github.io/usuba/) : Usuba est un langage de programmation dédié à la cryptographie symétrique haute-performance. Son compilateur est implémenté en OCaml. Les missions incluent le déploiement d'un système d'intégration continue et des refactorisations de code.
- Cubicle (https://cubicle.lri.fr/) : Cubicle est un model-checker permettant de vérifier des propriétés de sûreté de systèmes manipulant des tableaux. Les missions incluent le portage à OCaml 5.0 Multicore, l'interface graphique, la compilation sous Windows.
- SPEN (https://www.irif.fr/~sighirea/spen/) : SPEN est un solveur pour la logique de séparation. Il est utilisé pour la vérification de programmes avec un tas mutable (C, Java, etc). Il est développé en C et en OCaml. SPEN participe à la compétition des solveurs pour la logique de séparation, SL-COMP. Les missions incluent la mise à jour du code sur les plateformes de la compétition SL-COMP, l'intégration du parseur de la compétition et du typeur OCaml pour SMTLIB2.
- IMITATOR (https://www.imitator.fr/) : Model checker pour la vérification de systèmes temporisés paramétrés. Il est codé en OCaml. Les missions incluent une extension de la syntaxe, et une amélioration du système multi-coeur avec les nouvelles fonctionnalités apportées par Ocaml 5.
- PMC-SOG (https://lipn.univ-paris13.fr/pmc-sog/) : Model checker parallèle pour la vérification de systèmes concurrents en utilisant le graphe d'observation symbolique. Il est codé en C++ et utilise le mécanisme des threads fourni par C++20. Les missions incluent la parallélisation de tests de vacuité et l'implémentation de la réduction basée sur les ordres partiels.