Expérience professionnelle
Rapport de stage
Introduction
Au départ, je devais faire mes études plutôt tournées vers l'IoT, dans une autre entreprise, et j'avais même déjà signé pour un stage d'un mois en juillet. Mais par choix personnel, j'avais envie de prendre un peu de recul sur l'IoT. Je me suis donc remis à chercher un autre stage, mon objectif, à ce moment-là, c'était d'en faire deux.
J'en ai parlé à un ami, en M1 à l'époque, qui faisait son alternance dans une entreprise plus tournée vers le cloud et l'architecture. Il m'a tout de suite proposé de faire mon stage dans son entreprise. Je lui ai envoyé mon CV, et j'ai attendu. Un peu plus tard, il m'a dit que le patron était en train de l'étudier, et j'ai fini par décrocher un entretien, pour un stage en DevOps.
L'entretien s'est bien passé. Le patron me connaissait déjà un peu, grâce à ce que mon ami lui avait raconté sur moi. Et après sa réponse positive, on m'a annoncé que mon stage irait de mars à début août, avec l'idée de me garder potentiellement en alternance si tout se passait bien. Il ne me restait qu'un détail à régler : choisir entre mes deux stages. Entre la durée et la proposition d'alternance, le choix a été vite fait.
Présentation de l'entreprise
L'entreprise en question, c'est CCL Consulting, un cabinet d'audit et de conseil spécialisé dans la transformation numérique et le cloud, basé à Toulouse. Créée en 2017, elle compte aujourd'hui une centaine de collaborateurs répartis sur quatre agences : Toulouse, Paris, Lyon et Aix-en-Provence. Pour ma part, j'étais rattaché au site de Toulouse.
CCL est partenaire avancé AWS, ce qui veut dire qu'ils disposent d'une vraie expertise certifiée sur le cloud d'Amazon. Ils font aussi bien de l'audit que du conseil, avec notamment leur produit Kubees, tourné vers Kubernetes. Ils proposent même des formations dédiées à Kubernetes.
Côté marché, ils accompagnent des clients qui veulent faire évoluer leurs infrastructures, que ce soit des migrations vers AWS ou des passages à Kubernetes. Ce qui m'a marqué en arrivant, c'est leur façon de communiquer, très décalée, avec des slogans comme « Mon cloud à moi c'est le plus fort ». Ça change vraiment de l'image classique qu'on peut se faire d'un cabinet de conseil.
Missions et réalisations
J'ai passé six mois chez CCL, et en six mois j'ai eu le temps d'apprendre et de produire pour de vrai. En tant que DevOps, mon rôle était de produire des applications web de A à Z, du développement jusqu'au déploiement, pour aider la partie RH et le recrutement.
Ma première mission a été de créer une application capable de prendre n'importe quel CV et de le reformater en une forme standardisée aux couleurs de CCL, en respectant leur charte graphique. Ce projet m'a permis d'appliquer tout ce que j'allais faire ensuite : du backend, du web, de l'architecture cloud et du déploiement. Je l'ai réalisé en quelques semaines, en cherchant à le rendre le plus professionnel possible, et j'ai eu la chance de toucher directement à l'AWS de CCL et de déployer mon travail moi-même. C'est une partie dont je suis fier, car c'était la première fois que je déployais un projet entier sur une production réelle. C'est comme ça qu'est né « Skills », le premier projet, et il a reçu de nombreux retours positifs parce qu'il fait gagner beaucoup de temps.
Dans la continuité, j'ai dû apprendre à rédiger de la documentation utilisateur, de la documentation technique et de la documentation d'architecture. Vous trouverez ci-dessous le schéma d'architecture de cette première application.
Ensuite, j'ai eu une mission assez similaire : reprendre « Skills » et le faire évoluer pour comparer un CV à une fiche mission. Le but était de produire un score et plusieurs informations permettant de savoir si un candidat correspondait au poste recherché, toujours pour faciliter le recrutement. Tout cela restait très proche de ce que j'avais déjà fait sur « Skills ».
Puis est venue ma mission finale : prendre la base de données actuelle des candidats et créer un programme capable, à partir d'une mission, de calculer le top 100 des candidats les plus pertinents. La difficulté, c'est que cette base n'est pas standardisée, donc le tri paraissait impossible. Mais avec les technologies d'IA et d'embedding, c'est devenu envisageable. Cette mission avait aussi une partie financière : comment comparer 24 000 personnes sans dépenser 10 euros à chaque fois. J'ai vraiment aimé cette partie, car elle demande de se renseigner sur beaucoup de technologies et de comprendre ce qui fonctionne le mieux ensemble.
Cette mission n'est pas encore terminée : après mon stage, je continue à la développer en alternance. C'est de loin la mission la plus importante et la plus gratifiante sur laquelle j'ai travaillé. Faire tourner une comparaison sur 50 profils en local, c'est une chose, mais savoir ce que ça donne sur 24 000, c'est là que ça devient intéressant.

Outils et technologies
Pour le développement, je suis parti sur Python, un langage que je trouve portable, facile à produire et facile à déployer. Pour la partie web, j'ai utilisé Flask, et boto3 pour interagir avec les services AWS. Côté AWS justement, j'ai travaillé avec ECS et ECR, donc du Docker hébergé chez eux, du SSM pour la sécurité, et même une authentification Microsoft pour que tout le monde se connecte avec les comptes Microsoft de l'entreprise.
Le déploiement, lui, se faisait avec Terraform. C'était une technologie que je ne connaissais pas du tout en arrivant, et c'est grâce à elle que j'ai énormément appris sur l'infrastructure et sur la mise en production.
Mode de travail
Mon tuteur était le patron en personne, Cédric Chanal. Les missions venaient donc directement de lui. À côté, j'avais un chef de projet, plutôt non technique, qui me guidait sur le suivi, et j'avais aussi la chance d'avoir mon ami dans l'entreprise pour m'aider sur les choix techniques et sur les différentes manières de faire.
Côté équipe, tout CCL a été génial avec moi. Certains sont même devenus des amis avec qui il m'arrive encore de sortir en dehors du travail. J'ai aussi pu assister à une réunion entre le patron et une autre entreprise, ce qui m'a permis de voir concrètement comment ce genre de rendez-vous se déroule.
J'avais aussi une vraie liberté : pour chaque projet, on me confiait une feuille blanche et je proposais moi-même les solutions. C'est par exemple moi qui ai proposé l'approche par embedding pour le tri des candidats.
Difficultés et solutions
La principale difficulté n'a pas été technique, mais plutôt liée au rythme. Je prenais le train tous les matins pour aller travailler, et entre le stress et le manque de sommeil, c'était compliqué. Les trajets pesaient forcément sur mon énergie.
Au début, je me donnais peut-être trop. Il m'arrivait de travailler en dehors des horaires, par pur plaisir, tellement j'étais pris par mes projets. Mais à la longue, ça me prenait trop mentalement. J'ai donc appris à poser des limites et à me préserver, ce qui n'est pas toujours évident quand on aime ce qu'on fait.
Bilan personnel
Pour le bilan, j'ai vraiment adoré cette expérience. Six mois à produire des projets concrets, à toucher à tout du développement jusqu'au déploiement, avec une équipe qui m'a accueilli les bras ouverts. C'est difficile de rêver mieux pour un premier vrai stage.
J'ai énormément progressé, que ce soit techniquement avec Python, AWS ou Terraform, ou humainement, en apprenant à travailler avec une équipe et à m'organiser. Je repars avec des compétences concrètes et une vraie confiance dans ce que je fais.
Conclusion
J'ai terminé mon stage début août, et je suis revenu en alternance début septembre pour finir ce dernier projet. C'est la suite logique de ces six mois, et elle montre bien que cette expérience a dépassé le simple cadre du stage.
Pour mes prochaines années, ce stage m'a vraiment permis de comprendre ce que je veux faire plus tard, et d'orienter mes choix vers le cloud et l'architecture.