Technical Lead – Développement logiciel & DevOps de Niveau 1

Vos missions 

Au sein du Service des Technologies de l’Information et de la Communication (SerTIC), vous jouerez un rôle essentiel dans la gestion courante des applications dont vous aurez la responsabilité : développements de nouvelles applications spécifiques, maintenance corrective et évolutive des applications existantes. C’est ainsi que vous serez amené(e) à travailler en collaboration étroite avec les 3 chefs de projet, avec le Service Delivery Manager (SDM) et avec l’équipe des administrateurs systèmes (pour le domaine du DevOps). Par ailleurs, en tant que responsable de l’équipe de développement des « Applicatifs Métier », vous ferez un suivi du travail de chacun des membres de votre équipe et leur assurerez une évolution professionnelle adéquate.

Les principales activités qui vous incomberont sont :

1.         Diriger une équipe de développement et coordonner ses activités : à savoir

  • Être chargé de superviser et coordonner l’équipe de développement dans la conception, le développement, les tests, la maintenance corrective et évolutive des applications.
  • Assurer la qualité du code produit par l'équipe en veillant au respect des architectures logicielles définies et des bonnes pratiques en termes de programmation et de documentation.
  • Insuffler une dynamique à l’équipe et la préserver de demandes ou interventions extérieures non significatives afin qu’elle puisse rester concentrée sur les tâches prioritaires.
  • Assister l'équipe dans son évolution et amélioration technique, en définissant des objectifs et en proposant des formations.

2.         Maitriser et être responsable des technologies utilisées : cela implique une connaissance approfondie des principaux outils de développement (NestJS, NodeJS, Angular, Power Platform), de maitriser les système de gestion des bases de données utilisées (Oracle, PostgreSQL, MySQL), de comprendre le fonctionnement de solutions packagées (ERP, GED, …) et de mettre en place, avec les administrateurs systèmes, des solutions basées sur de la dockerisation et de la kubernetisation pour gérer et déployer des applicatifs au sein de l’infrastructure informatique universitaire.

3.         Développer et posséder une bonne connaissance des architectures logicielles et applicatives : afin de rapidement identifier certaines solutions techniques et de pouvoir les présenter avec clarté aux autres membres responsables du SerTIC, comme le CIO, les chefs de projet ou le Program Manager.

4.         Faire la « jonction » entre l’équipe de développement et l’équipe de l’administration des systèmes : grâce à une bonne maitrise des concepts et outils de DevOps, assurer une coordination efficace entre le développement d’une application, son déploiement et son exploitation et ainsi permettre des temps de développements courts et efficaces. 

Votre profil:

Diplôme

Le/La candidat·e sera titulaire d’un diplôme de master avec une orientation informatique.

Expérience 

Une expérience de 4-5 ans comme responsable d’équipe de développement est très souhaitable. Le candidat pourra se targuer d’au moins 1 expérience ayant impliqué une équipe de plus de 5 personnes sur une période d’au moins 2 ans. Une expérience professionnelle dans le secteur public, et plus particulièrement dans le domaine de l’enseignement, est un atout important.

Connaissances et compétences requises 

Vous disposez de :

1.         Connaissances technologiques :

Au niveau backend, une excellente connaissance du Framework NestJS, et par conséquent :

  • NodeJS
  • Architecture RESTful
  • Gestion des dépendances (comme npm ou yarn)
  • ORM/ODM
  • SQL et NoSQL
  • Savoir mettre en place des systèmes d'authentification sécurisés et gérer les autorisations d'accès
  • Comprendre et utiliser les middlewares pour gérer les requêtes et les réponses HTTP
  • Savoir écrire des tests unitaires et tests d'intégration

 

Au niveau frontend, une excellente connaissance d’Angular, et par conséquent :

  • HTML/CSS/JavaScript
  • Typescript
  • Savoir créer des composants réutilisables et des directives pour construire une interface utilisateur
  • Gérer des services pour la logique métier et des injections de dépendances
  • Savoir configurer les routes pour la navigation à l'intérieur de l'application
  • Maîtriser la création et la validation de formulaires
  • Gérer les états et les flux de données avec RxJS

 

Au niveau de la dockerisation et de la kubernetisation :

  • Connaître l'architecture de Docker et savoir créer, exécuter et gérer des conteneurs Docker
  • Savoir gérer des images Docker
  • Maîtriser la gestion du stockage et des volumes persistants dans Docker
  • Savoir utiliser Docker Compose pour définir et gérer des applications multi-conteneurs
  • Maîtriser les bonnes pratiques en matière de sécurité Docker et savoir comment gérer les droits d'accès et les utilisateurs dans les conteneurs
  • Maîtriser les concepts tels que les Pods, les Services et les Deployments en Kubernetes
  • Savoir interagir avec un cluster Kubernetes
  • Être capable de déployer des applications sur un cluster Kubernetes et savoir effectuer des mises à l'échelle horizontale et verticale
  • Savoir gérer les services Kubernetes permettent la communication entre les différentes parties de l'application
  • Savoir gérer les packages et les déploiements d'applications sur Kubernetes.
  • Être capable de surveiller les performances de l'application et de déboguer les problèmes dans un environnement Kubernetes
  • Maitriser les bonnes pratiques de sécurité pour un cluster Kubernetes

 

2.         Connaissances des architectures logicielles et des standards de programmation

Au niveau des architectures logicielles :

•          Architecture Client-Serveur

•          Architecture MVC (Modèle-Vue-Contrôleur)

•          Architecture Microservices

•          Architecture SOA (Architecture Orientée Services)

•          Architecture Serverless

 

Au niveau des standards de programmation :

•          Clean Code

•          DRY (Don't Repeat Yourself)

•          SOLID

•          Design Patterns

•          Version Control

•          Normes de Nommage

 

3.         Connaissances des méthodologies de gestion de projet

•          Agile (SCRUM), PMI ou Prince2, ITIL

 

4.         Familiarité avec une variété d’environnements informatiques, outils et systèmes packagés

•          Plateforme :  MS365

•          Outil de développement en Low Code : Power Apps, Power Automate

•          GED: SharePoint

•          ERP: Odoo, Business Central, SAP

•          Outils d’identification et d’authentification : MidPoint, Keycloak

•          GitLab.

 

Vous disposez également des compétences suivantes (métiers et comportementales) : 

•          Capacité de leadership et d’animation d’une équipe

•          Rigueur, réactivité et autonomie

•          Capacité d’analyse, de résolution des problèmes et de prise de décisions

•          Solides compétences en matière de communication et de relations interpersonnelles

•          Attention permanente et intérêt pour les innovations technologiques

•          Maîtrise suffisante de l’anglais professionnel

 

 

Offre:

CDI - Temps plein - Namur

Package attractif