La société Carrevolutis est spécialisée dans le recrutement et l'attractivité des ressources humaines de ses clients. Au travers de différentes marques, elle permet à des centaines d'entreprises de développer leur marque employeur et de recruter leurs talents. Elle propose pour cela des outils innovants sur le web, ainsi que des solutions évènementielles à travers les pays francophones.
Maespirit a été mandatée pour reconstruire l'ensemble de son écosystème de marques, en apportant une nouvelle identité cohérente et un socle technique commun et performant.
Carrevolutis possède 4 marques, toutes développées par des sociétés distinctes, sur des technologies différentes, avec des bases de données différentes. Les équipes en interne doivent gérer les contenus sur chacune de ces plateformes, rendant leur formation contraignante, et leur performance sub-optimale. De la même façon, leurs clients sont souvent de grosses sociétés, qui recrutent dans plusieurs secteurs, régulièrement sur plusieurs des marques de Carrevolutis. Elles doivent alors avoir un compte par plateforme, rendant leur gestion bien plus compliquée qu’elle ne devrait l’être.
Les performances et le potentiel d’évolution de chacune des solutions est également un frein à l’activité. Lorsque l’on ajoute un module sur une plateforme, il ne peut être compatible avec les autres, demandant systématiquement un développement spécifique.
L’idée première de ce projet est donc de constituer un socle technique et créatif commun, apte à accueillir toutes ces marques, prêt à en développer de nouvelles, de manière performante. L’objectif est également de développer la marque Carrévolutis en elle même, à destination des clients de la société, pour leur proposer une plateforme commune de gestion de leur marque employeur et de leur recrutement au travers des différentes marques.
Pour atteindre ces objectifs, nous allons donc concevoir plusieurs applications étroitement connectées par l’intermédiaire de données communes. L’une de celles-ci consistera en un socle pour une plateforme publique destinée à représenter chacune des marques. L’idée est de pouvoir décliner techniquement cette plateforme avec un identité visuelle différente mais des fonctionnalités communes, pour pouvoir faire évoluer l’ensemble de l’écosystème simultanément. Elle sera toutefois capable d’apporter son lot de spécificités par marque, car on ne recrute pas tout à fait de la même façon quel que soit le secteur d’activité.
Une plateforme commune est construite pour les recruteurs, entreprises ou écoles, qui leur permet de gérer leurs contenus directement sur chacune de ces marques, en les mutualisant ou non, en accédant aux profils et aux outils depuis un seul et même endroit.
Une application mobile est également développée pour ces sociétés, leur pour proposer une expérience phygitale au cours des évènements organisés par Carrevolutis, et ce quelle que soit la marque organisatrice.
Enfin, une plateforme d’administration unique est déployée pour les équipes de Carrevolutis, afin de gérer l’ensemble des marques depuis un même point d’accès.
Pour démarrer ce chantier ambitieux, il faut pouvoir poser des bases solides. Carrevolutis est un client de confiance et nous allons donc travailler en agile avec eux, en démarrant par les fondations : l’analyse de l’existant et la définition de la meilleure solution possible. La construction conjointe d’un cahier des charges commence alors.
L’équipe ainsi conçue composée d’un côté des porteurs de projet chez Carrevolutis, de l’autre des concepteurs Maespirit, va opérer par sprint de une semaine. Chacun challenge ses équipes en interne, pour récupérer les besoins, proposer des solutions, apporter des idées, et c’est lors de la réunion hebdomadaire que l’on statue sur les points à formaliser, et sur ceux à travailler pour la semaine suivante.
Maespirit se charge de la rédaction du cahier des charges effectif, qui contiendra en finalité plus de 500 pages. Au cours de la rédaction de ce dernier, de nombreux pivots se sont opérés, suite à des contraintes business ou des tendances internet. Le document a vocation à être le plus précis possible, tout en laissant une certaine marge de manoeuvre créative, ouvert à nouveau à tout pivot survenant en cours de maquettes.
C’est donc à la suite de ce travail que démarrera le travail sur Figma, et la production des maquettes, suite à ce cahier des charges. La production de ces dernières est découpée par jalons, permettant un échange continu, et le contrôle des délais malgré l’organisation agile. Des réunions avec les collaborateurs de Carrevolutis sont organisées chaque semaine, en fonction de leur pôle d’activité, pour discuter autour des maquettes, et synthétiser des retours à nous transmettre pour nous challenger.
C’est grâce à cette organisation en jalon que nous pouvons très rapidement commencer le développement, pour produire en parallèle de la conception, et ainsi accélérer drastiquement les délais.
Un des challenges les plus importants et impactants de cette structure technique est de pouvoir à la fois accueillir de la big data, de la donnée relationnelle nombreuse avec plusieurs millions de comptes utilisateurs, et de pouvoir maintenir des recherches et requêtes efficaces. Nous avons architecturé le projet autour de 3 système de données, chacun bien connus pour apporter une solution autour de ces problématiques : MariaDB pour les données relationnelles, MongoDB pour la big data ou les données volatiles, et Elastic Search pour la recherche performante.
Des APIs sous forme de services distincts sont chargées d’intéragir avec ces bases de données, et sont complètement décorrélées des applications front développées sous NextJS.
Nous avons également choisi d’ajouter une couche RabbitMQ, qui permet de mettre en queue des actions que nous avons besoin de déléguer à des processus contrôlés, pour des objectifs asynchrones.
Enfin, nous avons ajouté une couche de temps réel avec Mercure, qui nous permet de notifier nos utilisateurs de diverses mises à jour sans qu’ils aient besoin de recharger leurs applicatifs: messagerie, notifications…
L’ensemble essaie d’etre agnostique de technologies spécifiques, comme le stockage de médias par exemple ou l’envoi d’email, afin de permettre une évolutivité et une adaptation dans le temps.
Le déploiement s’est d’abord fait sur Kubernetes, par l’intermédiaire de Helm, puis nous avons choisi de pivoter vers une architecture Docker plus simple pour des raisons de performance et d’agilité principalement.
A l'heure où ces lignes sont écrites, 2 premières marques ont été portées sur la nouvelle architecture, en production. Les objectifs sont intégralement atteints et les clients de Carrevolutis sont très satisfaits. Les performances des projets sont au delà des attentes et le retour sur investissement dépasse à ce jour les espérances.