Contexte
Le pôle IS Data & Middleware est responsable des systèmes qui acheminent et façonnent les données. D'un côté se trouvent les plateformes de données qui alimentent l'analytique. De l'autre se trouve la couche middleware : connecteurs sur mesure, pipelines d'événements et services backend partagés qui distribuent les données aux systèmes de production gérés par d'autres départements, notamment IS Ventes, IS Opérations et IS Systèmes Clients.
Notre architecture repose sur un modèle évènementiel (event-driven). L'Event Data Hub transporte les événements métiers à travers l'entreprise. Autour de lui, nous concevons et exploitons les passerelles de données (data bridges) qui relient les systèmes sources et cibles, ainsi que les composants facilitateurs (enablers) permettant aux autres équipes de publier, consommer et utiliser la donnée de manière fiable.
La plateforme est déjà en production et fonctionne à grande échelle. Notre objectif actuel est d'étendre ses capacités, de connecter des systèmes supplémentaires et de garantir que les flux de données restent fiables, sécurisés et observables.
Missions
- Concevoir, construire et exploiter des passerelles de données et des composants de plateforme, en prenant en charge les fonctionnalités depuis le besoin métier initial jusqu'à la mise en production.
- Collaborer étroitement avec les business analysts, les product owners, les responsables systèmes et les collègues ingénieurs.
- Comprendre non seulement comment les flux de données sont mis en œuvre, mais aussi pourquoi ils existent et la valeur métier qu'ils apportent.
- Développer des services en TypeScript sur Node.js, déployés sur Azure Kubernetes Service via un pipeline CI/CD entièrement automatisé propulsé par GitHub et ArgoCD.
- Pratiquer la livraison continue (continuous delivery), automatiser massivement les tests et assurer l'exploitation des services construits.
Analyse fonctionnelle
- Travailler avec les business analysts, product owners et responsables systèmes pour comprendre le besoin métier sous-jacent à une intégration.
- Analyser les systèmes sources et cibles, définir le cartographiage des données (data mapping), les règles de transformation, les cas limites (edge cases) et les scénarios de gestion d'erreurs.
- Traduire les exigences en spécifications fonctionnelles et techniques claires, ainsi qu'en critères d'acceptation testables.
- Remettre en question les exigences lorsqu'elles sont incomplètes, incohérentes ou mal alignées avec le modèle de données sous-jacent ou les principes d'architecture.
Développement
- Construire des passerelles de données et des composants facilitateurs, incluant des producteurs/consommateurs d'événements, des connecteurs, des API et des services de traitement qui échangent des données via l'Event Data Hub.
- Développer et améliorer les composants partagés de la plateforme, les SDK, les bibliothèques et les services réutilisables employés par les autres équipes d'ingénierie.
- Mettre en œuvre des solutions orientées événements (event-driven) et basées sur l'event sourcing, conformément aux standards d'architecture et aux bonnes pratiques de codage établis.
- Livrer des logiciels de haute qualité grâce aux tests automatisés, aux revues de code et aux pratiques d'intégration continue.
Opérations et qualité
- Déployer régulièrement les modifications via des pipelines de livraison automatisés.
- Surveiller les applications et les intégrations à l'aide d'outils d'observabilité et d'alerting.
- Enquêter, diagnostiquer et résoudre les incidents d'intégration et de qualité de données sur l'ensemble des systèmes distribués.
- Participer activement aux revues de code et contribuer à l'amélioration des pratiques d'ingénierie, de l'outillage et de la documentation.
- Veiller à ce que les données soient traitées de manière sécurisée et en conformité avec les normes de l'entreprise.
Connaissances & Expérience
Requis :
- Environ 3 à 5 ans d'expérience professionnelle avec TypeScript et Node.js.
- Capacité à travailler de manière autonome tout en collaborant au sein d'une équipe pluridisciplinaire.
- Fortes capacités de résolution de problèmes et de dépannage.
- Compétences avérées en analyse fonctionnelle : collecte des besoins, modélisation de données, rédaction de spécifications et échange de solutions avec des parties prenantes non techniques.
- Expérience dans la construction de services backend, workers ou intégrations : API, consommateurs de messages, transformation de données.
- À l'aise avec SQL et au moins une technologie NoSQL ou de messagerie.
- Expérience des tests automatisés et habitude de tester son propre code.
- Connaissance pratique de Docker, de la CI/CD et des environnements cloud (Azure de préférence).
- Compréhension des bases des systèmes distribués : idempotence, réessais (retries), ordonnancement, cohérence à terme (eventual consistency).
- Anglais courant.
Apprécié (Nice to have) :
- Expérience avec les architectures orientées événements (event-driven), l'event sourcing, le pattern CQRS ou les projections.
- Expérience avec Azure Event Hubs, Kafka ou des plateformes de streaming similaires.
- Connaissance de Protobuf/gRPC et de la gestion des versions de schémas (schema versioning).
- Familiarité avec Kubernetes et le GitOps (ArgoCD).
- Exposition à l'architecture propre/hexagonale (clean/hexagonal architecture) et à l'injection de dépendances.
- Expérience dans le secteur des transports, du ferroviaire ou dans un autre domaine à forte intensité opérationnelle.
- Expérience de travail efficace avec des outils de développement assistés par IA.
Conditions de travail
- 1 jour en présentiel par semaine
- Lieu : Bruxelles