Lead développeur back-end spécialisé en architectures distribuées, j’accompagne la conception et la modernisation de systèmes complexes avec une forte exigence de qualité et de structuration. Expert des environnements Node.js/NestJS, je conçois des architectures robustes, scalables et maintenables, en mettant l’accent sur la modélisation métier et la solidité des fondations techniques.
Conception d'une solution en systèmes distribués pour les 2 référentiels tiers du groupe (DDD, CQRS, event-sourcing, architecture hexagonale)
Versioning et industrialisation du déploiement d'applications legacy en PHP 5.3 déployées sur un environnement OnPremise.
Conception et mise en place les différents outils permettant le versioning des applications legacy (Docker, sécurisation des secrets, nouvelle authentification OAuth2 keycloak, passage ibase -> PDO pour les base de données firebird, ...)
Rôle de lead dev: pilotage et supervision des développements relatifs la tâche de versioning, dans son ensemble
Développement d'APIs autour du datawarehouse (en NestJS, retroconcéption de procédure stockées en bdd vers un système en clean archi)
Recueil et analyse du besoin (collaboration avec les équipes métier et techniques, compréhension des contraintes On-Premise, définition des objectifs de modernisation et d’industrialisation des applications existantes)
Reprise et modernisation d’applications legacy (applications PHP 5.3 déployées en On-Premise via FTP, mise sous contrôle de version Git/GitHub, définition des stratégies de branches et des règles de versioning, mise en place de hooks Git)
Industrialisation du cycle de vie applicatif (dockerisation des applications, standardisation des environnements, préparation à la mise en place d’un pipeline CI/CD, externalisation de la configuration via variables d’environnement, suppression des secrets du code source)
Sécurisation des applicatifs (mise en place d’une nouvelle authentification OAuth2, amélioration des pratiques de gestion des accès et des configurations sensibles)
Conception d’une architecture back-end distribuée (design d’un nouveau référentiel tiers, modélisation des domaines et des flux métiers selon les principes DDD, CQRS et Event-Driven)
Mise en place d’un socle d’architecture réutilisable (implémentation des patterns Saga / Process Manager et Outbox, conception d’une structure technique générique et extensible)
Structuration du projet en monorepo (mise en place d’une approche monorepo avec Nx pour organiser domaines, applications et librairies partagées)
Gestion du versioning applicatif (mise en place de Changesets pour la gestion des versions et des évolutions contractuelles des composants)
Rédaction de la documentation technique (procédures de migration, documentation d’architecture, schémas de conception)
Contexte métier : Conception et développement du nouveau référentiel tiers du groupe
Recueil du besoin (coworking avec les architectes logiciel afin de mettre en place les applications du projet, conception de la base des bases de données et de l'eventstore, rédaction de schémas de conception, ...)
Développement d'une architecture CQRS (mise en place du bus Kafka avec schémas Avro, mise en place de la vue matérialisée sous MongoDB, ...)
Mise en place d'une solution en eventsourcing (mise en place de l'eventstore sous MongoDB, définition des business events, ...)
Maintenance et sécurisation des applicatifs (rédaction de tests unitaires automatisés avec Jest, et de tests d'intégrations automatisés avec supertest)
Mise en place de la CI/CD avec Github Actions
Rédaction de la documentation technique avec mise en place des diagrammes UML
Recueil du besoin au sein d'un projet SCRUM (modélisation BDD, refinements, copils, rituels agiles, ...)
Développement des solutions liées à la migration cloud de l'applicatif (migration MySQL vers PostgreSQL, migration du système de fichiers local vers AWS S3, ...)
Maintenance de l'applicatif (tests unitaires automatisés, tests end-to-end, tests de non-régression, ...)
Rédaction de la documentation technique et fonctionnelle
Recueil du besoin (mise en place des specs techniques et fonctionnelles, backlog refinement,...)
Développement de nouvelles fonctionnalités en suivant la méthode SCRUM (participation aux différentes réunions de daily meetings, rétrospectives de sprints, sprint plannings, etc)
Maintient de l'applicatifs par le biais de correction de bugs, de documentation, de tests unitaires