Description du poste
L’ENTREPRISE
- www.ctcpa.org
Centre technique agroalimentaire, spécialisé dans les technologies de conservation des aliments.
90 salariés – Métiers : Technologie, Microbiologie, Biochimie, Emballages, Formation, Documentation
CONTEXTE DU STAGE
Dans le cadre d’un projet interne, nous développons une plateforme web IoT dédiée à la gestion et au suivi en temps réel d’un parc de capteurs.
Particularité majeure : l’application doit pouvoir fonctionner en mode offline, tout en étant capable d’interagir directement avec des capteurs physiques connectés aux postes utilisateurs.
Cette application combine acquisition temps réel, traitement local, synchronisation cloud et visualisation avancée.
L’objectif du stage est de contribuer au développement de nouvelles fonctionnalités clés — gestion des devices, acquisition temps réel, tableaux de bord, alertes, traçabilité — ainsi qu’à l’amélioration de la fiabilité, des performances et de la robustesse de la plateforme.
MISSIONS
Rattaché au Responsable Infrastructure Informatique et en étroite collaboration avec notre développeur senior, vous aurez à intervenir sur les sujets suivants :
- Implémenter des vues et composants Svelte performants (UI/UX, routing, état).
- Intégrer et utiliser les Service Workers, WebAssembly et WebSocket afin de gérer le mode offline et les flux de données en temps réel.
- Développer des endpoints REST sécurisés (auth, pagination, filtrage)
- Participer au déploiement sur Scaleway (containers/services managés) avec Cloudflare (DNS, CDN, security).
- Contribuer aux pipelines GitHub Actions (build, tests, déploiement).
- Rédiger une documentation technique (API, schémas, procédures) et des tests (unitaires/intégration).
LIEU : Avignon
ENVIRONNEMENT TECHNIQUE :
FRONTEND : Svelte, Typescript, PWA, WASM, Service Worker
BACKEND : C#, ASP.NET Core, API REST (FastEndpoints), MQTT, WebSocket
BDD : PostgreSQL, SQLite
CLOUD : Scaleway, CloudFlare, Container
CI/CD : Github, Github Action, SonarCloud
Type d'emploi : Stage
Durée du contrat : 6 mois
Lieu du poste : En présentiel
Exigences:
• {'label': 'Niveau Licence', 'requirementSeverity': 'PREFERRED'}
• {'label': 'Niveau Bac +2', 'requirementSeverity': 'PREFERRED'}
• {'label': 'Collecte de données', 'requirementSeverity': 'PREFERRED'}
• {'label': 'Recherche', 'requirementSeverity': 'PREFERRED'}
• {'label': 'Expérience en supervision', 'requirementSeverity': 'PREFERRED'}