About this role
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.
Tired of cold applications?
Sign up with Clera and we'll reach out the moment a role actually fits you — no more spraying applications into the void.
Know someone who'd be great for this?