Portfolio d'apprentissage
Cette page constitue mon portfolio d'apprentissage pour l'évaluation du BUT 3, parcours DACS (Déploiement d'Applications Communicantes et Sécurisées). Elle a pour objectif de justifier l'acquisition des compétences du niveau 3 en m'appuyant sur des traces concrètes issues de mon alternance chez ITESOFT, de mes stages, de mes SAÉ universitaires et de mes projets personnels.
Compétence 1
Réaliser
Développer des applications informatiques adaptées et de qualité
Situation professionnelle visée (niveau 3 - DACS)
Concevoir, développer et maintenir des applications informatiques en réponse à des besoins réels, en choisissant les architectures et bibliothèques adaptées, en garantissant la qualité du code et en intégrant les solutions dans un environnement de production.
Apprentissages critiques du niveau 3
- AC31Choisir et implémenter les architectures adaptées
- AC32Faire évoluer une application existante
- AC33Intégrer des solutions dans un environnement de production
- AC34Choisir et utiliser des bibliothèques et méthodes adaptées
Pourquoi cette compétence est consolidée
Chez ITESOFT, je n'ai pas appris Java en partant de zéro - j'avais déjà une base solide via les SAÉ et projets universitaires. Ce que l'alternance m'a apporté, c'est la confrontation à un code de production vieux de plusieurs décennies, avec ses conventions internes, ses couches d'abstraction et ses contraintes de maintenabilité. Étendre ce code sans le casser, c'est un exercice très différent d'écrire du code from scratch. Côté Angular, la situation était différente : le framework est déprécié, les docs officielles ne sont plus maintenues pour les vieilles versions, et les ressources en ligne sont souvent contradictoires ou obsolètes. J'ai dû apprendre en lisant directement le code existant du projet et en testant. C'est inconfortable mais ça force à vraiment comprendre ce qu'on fait plutôt que de copier des exemples. Sur Referendum ou LobbyBot, les choix techniques étaient libres - ce qui oblige à les justifier autrement. Pourquoi ElGamal et pas une lib crypto toute faite ? Pourquoi Socket.IO pour le dashboard ? Ces décisions sont documentées dans les pages projets et reflètent une vraie réflexion sur le contexte.
Traces et preuves concrètes
- ▸Consolidation des compétences Java dans un contexte professionnel réel : Streamline Invoices est une plateforme déployée depuis des dizaines d'années, avec une base de code dense et des conventions internes établies. Comprendre et étendre ce code sans le dégrader est une contrainte bien plus exigeante qu'un projet from scratch.
- ▸Apprentissage d'AngularJS sur le tas - un framework déprécié depuis des années, avec une documentation fragmentée et souvent obsolète. Les ressources disponibles sont limitées et pas toujours fiables, ce qui m'a obligé à lire directement le code existant pour comprendre les patterns utilisés.
- ▸Analyse du code standard R&D pour identifier les points d'extension sans créer de conflits lors des mises à jour : chaque personnalisation est pensée en amont pour rester isolée du core.
- ▸Outillage imposé par l'environnement (Maven, IntelliJ, PostgreSQL, Termius) - adaptation rapide à un écosystème existant sans marge de manoeuvre sur les choix techniques.
- ▸Cycle Dev -> Staging (Azure) -> Production : livraison d'un package de déploiement validé en recette avec le client avant toute MEP.
- ▸Amélioration de l'outil interne CreatField : passage d'un processus manuel (20-30 champs un par un) à un script API, puis intégration dans l'interface Angular avec barre de recherche et sélection multiple.
- ▸Conception et développement complet (solo) d'un outil de visualisation statistique pour TamaBox, depuis le recueil du besoin jusqu'au déploiement sur Vercel.
- ▸Choix de Chart.js pour la visualisation : adapté aux données de location de box, léger, sans dépendance serveur.
- ▸Adaptation de l'interface à un public métier non-technique : tableaux de bord lisibles, personas marketing, outil de prévision.
- ▸Application de vote sécurisée en Java / JavaFX : implémentation du chiffrement ElGamal et des preuves à divulgation nulle (Zero Knowledge Proof).
- ▸Choix et justification des bibliothèques cryptographiques : contraintes de sécurité mathématique, pas de bibliothèque externe non auditée.
- ▸Profiling et analyse du comportement du protocole ZKP pour garantir l'absence de fuite d'information.
- ▸Architecture microservices en Node.js / Python / Express / Socket.IO avec load balancing automatique entre les bots (sélection du bot le moins chargé, création dynamique).
- ▸Conteneurisation Docker pour l'isolation et le redémarrage automatique en cas de crash.
- ▸Intégration PostgreSQL pour la persistance de l'état des bots et la gestion des amis.
- ▸Développement de ce portfolio en Next.js 16 / React 19 / TypeScript / Tailwind CSS 4 : SPA avec App Router, SSG, optimisation des images (AVIF/WebP), lazy loading.
- ▸Profiling des performances (Core Web Vitals), correction du ChunkLoadError, gestion des ancres et du scroll.
Compétence 2
Administrer
Administrer des systèmes informatiques communicants complexes
Situation professionnelle visée (niveau 3 - DACS)
Déployer, configurer et maintenir des infrastructures systèmes et réseaux en répondant aux besoins d'une organisation, en créant des processus automatisés et en appliquant une politique de sécurité cohérente.
Apprentissages critiques du niveau 3
- AC31Créer des processus de traitement automatisé
- AC32Configurer un serveur et des services réseaux de manière avancée
- AC33Appliquer une politique de sécurité au niveau de l'infrastructure
- AC34Déployer et maintenir une infrastructure en fonction des besoins
Pourquoi cette compétence est consolidée
Chez ITESOFT, la partie administration était intégrée au travail quotidien sans être forcément étiquetée comme telle. Créer une VM, installer la plateforme, configurer les accès, ouvrir les bons ports, tester la connexion SSH - c'est fait systématiquement pour chaque nouveau client. La certification ISO 27001 de l'entreprise impose une rigueur sur la sécurité : pas de données sensibles en clair, gestion stricte des permissions, traçabilité des accès. L'amélioration de CreatField illustre bien l'AC "processus de traitement automatisé" : avant, migrer les champs d'un client prenait une demi-journée à cause du processus manuel. Après, quelques clics suffisent. C'est une automatisation modeste techniquement, mais son impact sur le travail de l'équipe est concret et immédiat. Sur LobbyBot, j'administrais un serveur en conditions réelles - pas un projet académique en local. Docker m'a permis d'isoler les services et de redémarrer proprement en cas de crash, sans intervention manuelle.
Traces et preuves concrètes
- ▸Création et gestion de machines virtuelles (locales pour le développement, Azure pour le staging) : installation, configuration réseau, gestion des accès.
- ▸Connexion SSH/SFTP aux VMs via Termius pour le transfert de fichiers et la supervision des services.
- ▸Application de la politique de sécurité ISO 27001 : validation des entrées, gestion fine des permissions, protection des données sensibles dans les personnalisations.
- ▸Cycle de déploiement structuré Dev → Staging → Production : aucune mise en production sans recette client validée.
- ▸Automatisation via script API (CreatField) : traitement en lot de 20-30 ressources, réduction du risque d'erreur humaine, gain de temps mesurable.
- ▸Déploiement d'un serveur Node.js / Express avec Socket.IO : configuration des ports, gestion des processus, auto-restart via scripts de surveillance.
- ▸Conteneurisation Docker : isolation des services, reproductibilité de l'environnement, déploiement sans friction.
- ▸Gestion d'une base PostgreSQL en production : requêtes de mise à jour en temps réel, cohérence des données entre les instances de bots.
- ▸Processus automatisé de load balancing : surveillance de l'état des bots, création dynamique, relance automatique en cas de défaillance.
- ▸Déploiement continu sur Vercel : pipeline automatisé depuis Git, zéro downtime, gestion des variables d'environnement.
- ▸Configuration d'un service de données accessible depuis un navigateur sans back-end dédié : choix architectural justifié par la taille de l'entreprise.
- ▸Application Python / Flask de sauvegarde avec chiffrement et compression : politique de sécurité des données au niveau applicatif.
- ▸Gestion des processus de sauvegarde automatisée : scripts de planification, vérification d'intégrité.
Compétence 3
Collaborer
Satisfaire aux besoins des utilisateurs au regard de la chaîne de valeur du client
Situation professionnelle visée (niveau 3 - DACS)
Travailler en équipe pluridisciplinaire, organiser une veille technologique, accompagner le management de projet informatique, et guider la conduite du changement dans une organisation.
Apprentissages critiques du niveau 3
- AC31Organiser et partager une veille technologique et informationnelle
- AC32Identifier les enjeux de l'économie de l'innovation numérique
- AC33Guider la conduite du changement informatique au sein d'une organisation
- AC34Accompagner le management de projet informatique
Pourquoi cette compétence est consolidée
Ce qui m'a le plus surpris chez ITESOFT, c'est la place que prend la communication dans le travail d'un développeur. Rédiger une Demande d'Assistance pour l'équipe R&D, c'est un exercice précis : reproduire le bug, isoler la cause probable, proposer une piste - sans ça, le ticket repart en attente. Pareil pour les phases de recette client : expliquer à un comptable pourquoi son bouton ne fonctionne pas comme prévu demande de traduire un problème technique en langage métier. Les code reviews m'ont aussi beaucoup appris, dans les deux sens. Lire le code des autres développeurs de l'équipe m'a permis de monter en compétences sur des patterns que je n'aurais pas rencontrés autrement. Et commenter des PR en apportant quelque chose d'utile, sans être condescendant, c'est un exercice en soi. Sur CreatField, la dimension "conduite du changement" est réelle même si elle est modeste : convaincre l'équipe d'adopter un nouvel outil qu'on a soi-même développé demande de montrer que ça fonctionne et que ça fait gagner du temps concrètement.
Traces et preuves concrètes
- ▸Participation aux daily meetings de l'équipe Delivery (~30 personnes) : remontée des blocages, suivi de l'avancement, coordination avec les chefs de projet.
- ▸Revues de pull requests des autres développeurs : lecture de code métier, commentaires constructifs, contribution à la qualité globale.
- ▸Rédaction de Demandes d'Assistance (DA) détaillées pour l'équipe R&D : identification de la cause racine, reproduction du problème, proposition de correctif.
- ▸Communication directe avec les clients pour les phases de recette en staging : pédagogie, reformulation des besoins techniques en langage métier.
- ▸Adaptation à la norme ISO 27001 : conduite du changement dans les pratiques de développement au sein de l'équipe.
- ▸Veille technologique sur les évolutions de Streamline Invoices (notes de version R&D) et sur Java / Angular pour anticiper les impacts des mises à jour.
- ▸Travail en binôme avec le gérant de TamaBox : recueil des besoins, itérations sur les maquettes, présentation des prototypes.
- ▸Identification des enjeux métier de la location de stockage (saisonnalité, personas clients) et traduction en fonctionnalités de l'outil.
- ▸Accompagnement à la prise en main de l'outil par un utilisateur non-technique.
- ▸Développement en équipe sur 24h : coordination des tâches, gestion des conflits Git, répartition des rôles selon les compétences.
- ▸Veille rapide sur l'API DeepSeek et le Manifest V3 des extensions Chrome pour choisir la bonne approche technique en contrainte de temps.
- ▸Partage de connaissances en temps réel : documentation inline, revue de code au fil de l'eau.
- ▸Organisation du projet avec Trello : backlog, sprints courts, attribution des tâches.
- ▸Coordination d'une équipe pluridisciplinaire (code C#, game design, sound design) sous contrainte de délai.
Cohérence du parcours DACS
L'alternance chez ITESOFT est probablement la situation qui illustre le mieux les trois compétences en même temps : je réalise des personnalisations sur un outil en production depuis des dizaines d'années, j'administre les environnements de déploiement de A à Z (VM, SSH, cycle Dev->Staging->Prod), et je collabore dans une équipe de ~30 personnes avec ses processus, ses rituels et ses clients réels.
Les projets personnels et universitaires viennent compléter ça sur des aspects que l'alternance ne couvre pas forcément : la liberté de choisir l'architecture (LobbyBot, Referendum), le travail sous contrainte de temps extrême (Nuit de l'Info), ou le fait de porter un projet de bout en bout sans filet (TamaStat, Portfolio v2).
Le parcours DACS m'a mis dans des situations suffisamment variées pour que ces trois compétences soient réellement exercées, pas juste théorisées.