Recrutement

Stage - Architecture d'un compilateur pour le temps réel

Stage de fin d’étude: 4-6 mois

 

Poste à Grenoble

Gratification: 1400e

 

Stage avec possibilité de pré-embauche

Contexte du stage

Nous sommes une entreprise experte en développement de systèmes critiques, dont la raison d’être est d’amener l’industrie du logiciel vers le zéro défaut. 

Dans le cadre du développement de notre nouveau produit IReflex, nous avons conçu le langage Reflex, permettant de modéliser des systèmes temps-réels avec un modèle d’abstraction d’un automate industriel (PLC). 

Le programme Reflex peut être exécuté indifféremment sur un automate industriel, être entièrement simulé sur ordinateur ou être généré dans un langage impératif.

On aime la technique, mais on sait que ce sont les pratiques qu’on met en place qui font la différence entre un échec et une réussite sur un projet logiciel. Et comme on veut que le stage soit une réussite, on va mettre en place ce qu’on veut faire bien. 

Avec un vocabulaire accessible : 

– On réalise les fonctionnalités au fur et à mesure par petites étapes – On fait des tests automatisés pendant le développement pour vérifier que l’outil marche 

– On bosse ensemble pour partager la connaissance

 

 

Plus concrètement:

– On fait du développement Agile itératif/incrémental (un backlog de user stories et une organisation type Kanban)

– On fait du Behavior Driven Development sur les tests à haut niveau, et des tests unitaires en dessous. On vise le bon compromis entre taux de couverture et maintenabilité des tests (ça risque de tourner autour de 95%)

– On organise du pairing autant que possible, avec le tuteur ou d’autres collègues pour partager la connaissance, pour faire de la revue de code, etc. Un créneau quotidien minimum est mis en place pour t’éviter la frustration d’un blocage.

– Continuous testing/continuous integration.

 

Que vas tu faire ?

Les objectifs du stage: 

1. La ou le stagiaire passe un super stage 

2. Que cette personne ait envie de poursuivre l’aventure du développement logiciel agile chez Sogilis 

3. L’outil est assez mature pour être présenté à la communauté  

Au cours de ce stage, tu participeras à l’architecture d’un compilateur pour un langage dont la sémantique est prévue pour modéliser des problèmes temps-réel. 

Le langage Rust sera utilisé pour le développement de ce compilateur

Lors du stage, en fonction de votre sensibilité et de vos compétences, vous travaillerez sur l’analyse syntaxique ou le parcours d’arbre pour la génération de code sur différentes cibles. 

Pour qui ?

Ce stage est un stage de pré-embauche donc on vise le long terme. Ce qui nous semble essentiel pour que le stage se passe bien : 

– Chercher un stage de fin d’études (pour être dispo à l’embauche après, sinon ça marche pas :p) 

– Avoir envie d’apprendre 

– Avoir envie de travailler en équipe et communiquer 

– Être autonome dans sa zone de confort mais être capable de solliciter de l’aide face à un blocage 

– Être capable d’écrire du code et de la documentation en anglais technique