Stage — Rust & Sécurité Embarquée
Witekio Lyon, Auvergne-Rhône-Alpes, France
Software Development · 51-200 employees
About the role
The intern will rewrite an existing C daemon and NestJS/TypeScript API into Rust to create a reusable reference architecture for embedded systems. Responsibilities include implementing secure communication, managing hardware sensors, and ensuring system-level security through process isolation.
What they look for
Requirements
The candidate should have a strong interest in embedded software development and cybersecurity principles. Proficiency in Rust or C and an understanding of Linux system architecture are essential for this project.
Benefits
Full description
Witekio est expert du logiciel embarqué / IoT, avec une approche système globale, intégrant différentes couches logicielles, du hardware jusqu'au cloud. Depuis octobre 2019, Witekio a démarré une nouvelle aventure en rejoignant le groupe Avnet, fournisseur mondial d'électronique & IoT. Dans le cadre d'un plan stratégique visant à renforcer le Centre d'Excellence Embarqué du Groupe Avnet, nous lançons la création et l'expansion de plusieurs équipes tournées vers l'international au sein de Witekio et localisées en France.
Pour en savoir plus sur nos réalisations, retrouvez quelques-uns de nos case studies : https://witekio.com/category/case-studies/
Nos chiffres clés :
- 5 entités : Siège à Lyon et des bureaux à Paris, Bristol, Stuttgart et Seattle
- +110 experts passionnés
- +20 ans d'expérience dans le logiciel embarqué
Contexte :
Witekio conçoit et développe des systèmes embarqués Linux pour ses clients, des équipements qui exposent une API REST locale pour la supervision et l'administration, et qui pilotent un ou plusieurs daemons système chargés des mises à jour firmware, de la configuration des capteurs, de la communication MQTT, etc.
Ce type d'architecture se retrouve régulièrement chez nos clients avec des contraintes fortes en cybersécurité : moindre privilège, séparation des droits, isolation des processus, stockage sécurisé des credentials (PKCS#11 / OP-TEE).
Ce stage s'inscrit dans un projet concret : réécrire en Rust une API NestJS/TypeScript et un daemon C existants. L'objectif est de produire une architecture de référence réutilisable sur les futurs projets clients.
Objectifs :
Construire une plateforme embarquée locale permettant :
- Le pilotage d'un daemon matériel (communication série avec un capteur, acquisition périodique, configuration)
- L'exposition d'une API REST sécurisée pour la supervision et l'administration
- Une gestion fine des droits utilisateurs (rôles Admin / Opérateur / Viewer, JWT, RBAC)
- La sécurité par conception : isolation des processus, least-privilege Linux, stockage sécurisé des secrets
- La communication inter-processus typée (comme JSON-RPC 2.0 sur Unix socket entre API et daemon)
Vos missions :
- Réécriture du daemon en Rust
- Communication série avec un capteur
- Acquisition périodique et publication MQTT
- Gestion de la configuration réseau via D-Bus / systemd-networkd
- Stockage sécurisé des credentials MQTT (PKCS#11 / OP-TEE)
- Déclenchement des mises à jour firmware
- Réécriture de l'API REST en Rust
- Authentification JWT
- RBAC (Admin / Opérateur / Viewer)
- Endpoints REST : données capteur, seuils, configuration MQTT, gestion réseau, utilisateurs, journaux système
- Client JSON-RPC 2.0 ou alternatives vers le daemon
- SSE (Server-Sent Events) pour les notifications temps réel
- Protocole IPC typé
- Définition d'un contrat partagé pour chaque méthode RPC
- Remplacement du JSON non typé circulant sur socket Unix par un protocole compilé et versionné
- Génération de la documentation du protocole (OpenAPI)
- Cybersécurité et isolation système
- Séparation des binaires en deux utilisateurs système distincts (moindre privilège)
- Confinement via unités systemd (capabilities Linux : aucune pour le daemon côté réseau, aucun accès matériel pour l'API)
- Protection du socket Unix par permissions de groupe
- Nginx en reverse-proxy (TLS via PKCS#11 / OP-TEE, rate-limiting)
- Cross-compilation et intégration système
- Build ARM via Yocto
Pourquoi rejoindre Witekio ?
- Une culture technique forte, avec des équipes multidisciplinaires et des projets variés.
- Un environnement collaboratif et bienveillant, où l'on valorise la curiosité, le partage de connaissances et l'autonomie, notamment grâce à des Lunch & Learn.
- Une passion pour l'innovation : on aime les défis technologiques, les produits intelligents et les solutions sur-mesure.
- Dans une volonté de transparence, des Hangouts chaque mois pour partager les informations vis-à-vis de la société.
- Des Witekian Days permettant de se former sur tout type de sujets.
- Des projets concrets et impactants.
Processus de recrutement :
- 1 premier échange téléphonique côté RH
- 1 test technique rapide
- 1 échange technique avec notre équipe
Nous garantissons l'accessibilité de l'ensemble de nos opportunités professionnelles aux personnes en situation de handicap.
Similar roles
-
Software Engineer (Rust)
Rerun Sweden
-
Software Engineer III - RUST
DDN Pune, Maharashtra, India
-
Staff Software Engineer (Rust & Kubernetes) - Anywhere Cloud
Cloudera Budapest, Central Hungary, Hungary
-
C#, Python, Rust, SQL Lead Software Engineer
JPMorgan Chase & Co. Jersey City, New Jersey, United States · $157K–$215K/yr
-
Senior Rust Systems Engineer – Embedded Proxy & Appliance
Jobgether India
-
Senior RUST Systems Engineer - Proxy Appliance
Jobgether India