
Romain AGA
Crafter Full Stack
Salary / Daily rate
Nantes, France
Freelance
Can come onsite
Skills
Languages
About me
Intro
Développeur ancien consultant en ESN, mon profil était mis en avant pour tout ce qui était lié à la qualité code. J'étais celui qu'on appelait pour les projets en difficulté, d'autant plus que j'ai la fibre pédagogique ce qui me permet de former les membres de mon équipe tout en les fédérant. Je recherche principalement du full remote, mais cela peut se négocier. Aujourd'hui, je souhaite apporter un numérique plus consciencieux de l'environnement. Être dans l'éco-conception.
Work experience
Développeur full stack Python
ADEMEFreelance
Nov 2024 - May 2025
7 months
Remote
⫸ Technologies utilisées : Python, Dash, GCP, FireBase, Sentry, Auth0 Pour l'application ACT permettant d'évaluer la stratégie et les efforts que les entreprises ont mis en place pour limiter leur impact sur l'environnement (gazs à effet de serre, biodiversité, résilience aux changements futurs, etc...). J'interviens en renfort pour assurer la maintenance pendant les congés du développeur et pour aider au développement des nouvelles méthodologies dans l'application. ⫸ Missions 🔷 Maintenance et corrections de bugs 🔷 Développement logiciel des nouvelles méthodologies (Adaptation, Biodiversité) 🔷 Support à l'utilisateur (en anglais) ⫸ Ma valeur ajoutée 🟧 Ajouts de tests 🟧 Refonte du legacy 🟧🌟 Amélioration de l'UX 🟧🌟 Amélioration de l'architecture 🟧🌟 Ajout du typage du code (pour documenter) 🟧🌟 Création de composants pour le front (atomic design) (Mission courte, car budget limité)
Développeur full stack principal
ALT QA
Sep 2023 - Jul 2024
11 months
Remote
⫸ Technologies utilisées : Typescript, Vue 3, MariaDb, Gitlab, Bash Nouvelle start up fraîchement lancée dont le but est de créer des outils pour aider à la qualité logicielle et aider les équipes à apprendre les bonnes pratiques pour la qualité logicielle. (J'ai signé un NDA, donc je ne peux pas en parler dans les détails) ⫸ Missions 🔷 Développer l’application à partir de zéro de l’entreprise 🔷 Création d’une extension de navigateur web pour scrapper les apps/sites web 🔷 Conseiller la présidente 🔷 Aider au recrutement des développeurs 🔷 Tutorer l’alternante 🔷 Revues de code 🔷 Mise en place du déploiement continu ⫸ Ma valeur ajoutée 🟧 Réalisation de diagramme pour expliquer certains choix technique 🟧🌟Conception logicielle 🟧🌟Générateurs de code (afin d'éviter les erreurs d'inattentions et automatiser l'écriture du code sans intelligence) ➖🔶 Évolution automatique des triggers en fonction de la DB ➖🔶 Évolution automatique du type checking de l'API (gratuit contrairement à OpenAPI) 🟧 Mise en place des conventions de code pour le projet 🟧🌟Force de propositions : pour améliorer les concepts métiers, l’UX, les process, ... 🟧🌟Mentoring : Notamment réalisation de mini-cours pour l’alternante
Développeur
Extia
Oct 2018 - Aug 2023
4 years 11 months
Région de Nantes, France
Extia est une ESN, j'ai effectué les missions suivantes pour leur compte: 🟦 Lead développeur ➖🔷 La Poste 🟦 Développeur principal ➖🔷 BeMyApp ➖🔷 Netco Sports ➖🔷 Gares & Connexions Durant cette période, j'ai aussi donné 🟧 Des cours à d'autres consultants sur ➖🔶 Python ➖🔶 les tests automatisés ➖🔶 la POO 🟧 Des conférences ➖🔶 le TDD ➖🔶 le GREEN IT
Lead Developer
La Poste Groupe
Jul 2022 - Jul 2023
1 year 1 month
Remote
▶ Technologies : Typescript, React, Fastify, MariaDB, Python Dans la branche système informatique du groupe La Poste, l’un des points cruciaux est de savoir si tous les appareils sur le réseau interne sont opérationnels à tout moment de la journée et de la nuit. Pour se faire, un groupe d’applications (8 apps, dont 2 duos frontend/backend) est utilisé pour surveiller le réseau et les appareils qui y sont connectés. En cas de délai ou de non réponse de ces appareils, ces applications peuvent créer des alertes pour qu’une action soit faite. Ces applications sont donc critiques et vitales au bon fonctionnement de La Poste. L’enjeu sécurité est très présent sur ces applications qui peuvent être amenées à fonctionner dans des réseaux restreints, ce qui complexifie l’architecture technique, la maintenance, le déploiement et le développement de ces applications. ▶ Missions 🔷 Remplacer l’ancien lead développeur sur le projet 🔷 Conseiller l’équipe fonctionnelle sur les étapes par lesquelles passer pour stabiliser l’application 🔷 Corriger des bugs et implémenter de nouvelles fonctionnalités 🔷 Revues de code ▶ Ma valeur ajoutée 🟧 Tech ➖🟧 Mise à jour de l’intégration continue ➖🟧🌟Refondre le code qui pose problème (les tests de données qui transitaient étant trop laxistes ou inexistants, cela provoquait des erreurs en bout de chaîne au lieu d’invalider/résoudre/alerter en amont) ➖➖=> Stabilisation des applications en corrigeant la source des bugs ➖➖=> Réduction du temps de debug, augmentation du temps à développer des fonctionnalités pour le métier ➖➖=> 2 tickets/jours -> 1 ticket/1-2 semaine ➖🟧 Mutualiser le code entre les différentes applications ➖🟧🌟Mise en place des bonnes pratiques de code pour les projets ➖🟧🌟Mise en place de commandes pour l'admin sys ➖🟧🌟Force de propositions : Afin d'améliorer les process, apporter des solutions au métier selon les difficultés rencontrées ➖🟧🌟Rédiger de la documentation : La documentation était inexistante initialement (documentation des flux des données, des événements, de l'architecture, des commandes que j'ai créé, ...) 🟧 Lead ➖🟧🌟Mettre en avant les réussites des membres de l'équipe (dont un restaurant offert à l'une des développeuse qui a résolu l'un des gros bugs que l'on trainait) ➖🟧🌟Défendre mon équipe lorsqu'on leur met la pression, alors qu'ils/elles respectent mes directives pour stabiliser l'application. ➖🟧 Distribuer les tâches en faisant attention à ce que les membres de mon équipe ne s'épuisent pas mentalement ➖🟧🌟Mentoring : 2 développeuses juniors étaient discrètes au début, à la fin, elles ont énormément gagné en assurance et en curiosité ➖🟧🌟Faire monter l’équipe en compétences (notamment en réalisant des code dojos) ➖➖🔶 Utilisation du code legacy pour former l'équipe sur les mauvaises pratiques ➖➖🔶 Utiliser des questions posées par un membre pour partager la réponse si cela peut bénéficier à tout le monde
Développeur web principal
BeMyApp
Oct 2020 - Jul 2022
1 year 10 months
Remote
▶ Technologies utilisées : Node, Vue 2, MongoDB, Terraform / AWS, Heroku, CircleCI, Bash Entreprise spécialisée dans la mise en place de plateformes pour des vidéoconférences ou de hackathons. Ces plateformes mises à disposition de ses clients contient un frontend configurable pourvus d’un backend. Pour déployer ces plateformes, il y a une application interne qui permet de configurer le déploiement de l’application principale (régions, DNS, ressources à allouer pour le serveur, etc…). Je suis intervenu sur l'application interne. ▶ Missions 🟦 Corrections de bugs 🟦 Permettre de déployer des DNS dans Route53 au lieu de Gandi 🟦 Permettre de déployer des applications dans AWS au lieu d’Heroku (grâce à Terraform) 🟦 Création d’un worker dédié au déploiement des applications 🟦 Permettre aux applications d’événement en ligne de fonctionner en Chine 🟦 Trouver des API fonctionnant en Chine ➖🔷 Concevoir un système de sélection des API à utiliser ➖🔷 Concevoir un système transparent pour le développeur ▶ Ma valeur ajoutée 🟧 Mise en place de l’intégration continue 🟧🌟Refactorisation ➖🔶 Couverture de tests : 10%- > 80%+ ➖🔶 Gestion d'erreurs propre ➖🔶 Nouvelle structure de données pour garder en mémoire la configuration de déploiement et l'état de déploiement (possibilité de redémarrer l'application de déploiement pendant un déploiement) 🟧🌟Amélioration de l'UX ➖🔶 Gestion des erreurs ➖🔶 Ajout d'indicateurs sur l'avancée des déploiements ➖🔶 Ajout d'outils pour administrer les plateformes depuis l'application sans devoir aller sur AWS (redémarrer, redéployer, voir les logs, ping, ...) 🟧🌟Correction de failles de sécurité ➖🔶 Suppression de tous les clés en dur dans le code ➖🔶 Sauvegarde des clés dans un coffre fort ➖🔶 Sélection des droits pour les clés (pas de clé avec tous les pouvoirs) ➖🔶 Séparation des identifiants prod/dév ➖🔶 Faire en sorte que les applications de tests utilisent un environnement de dév et non de production 🟧🌟Création de commandes pour automatiser certaines de mes tâches
Développeur principal
Netco Sports
Aug 2020 - Oct 2020
3 months
Remote
▶ Technologies utilisées : Node, ElasticSearch, RabbitMQ, Jenkins, Bash Entreprise spécialisée dans le suivi des compétitions sportives. L’entreprise possède une application mobile pour suivre les scores des différentes compétitions sur son smartphone, que cela soit en temps réel ou simplement le score final avec les temps où les actions importantes ont eu lieu. ▶ Missions 🔷 Maintenance de l’application 🔷 Réalisation d’évolutions 🔷 Ajout de nouveaux sports ▶ Ma valeur ajoutée 🟧 Tests unitaires 🟧 Mise en place de l’intégration continue et écriture d’un script de déploiement 🟧🌟Permettre de tester en local des parties de l'application 🟧🌟Création d’outils pour faciliter la maintenance ➖🔶 Un outil de sauvegarde des requêtes du live ➖🔶 Un outil de mise à jour de la base de données ➖🔶 Commande de nettoyage des serveurs ➖🔶 Commande de redémarrage des différents services (sur différents serveurs) ➖🔶 Commande d’upload du code source pour tester pour éviter d’avoir à faire des déploiement (20min) 🟧🌟Automatisation de mises à jour qui devaient être faites manuellement 🟧🌟Amélioration des statistiques 🟧🌟Amélioration des logs (affichage des fichiers, des fonctions et lignes des appels + possibilité de filtrer la sortie) 🟧 Encadrement d'un alternant ➖🔶🌟Transmission des bonnes pratiques de code (Software craftsmanship, TDD) ➖🔶 Délégation de tâches simples ➖🔶 Peer programming
Développeur principal
CSE GARES ET CONNEXIONS
Oct 2018 - Apr 2020
1 year 7 months
Nantes, France
▶ Technolgies utilisées : Python, Flask, PostgreSQL, Bash, MongoDB, Jenkins Pour permettre de répondre aux questions des utilisateurs, concernant les différentes gares, sur Facebook, Gares & Connexions a mis en place un chatbot qui permet de répondre aux questions les plus fréquentes des utilisateurs (points d’intérêts, signalisation d’un problème en gare, connaître les horaires de train, demander à suivre un train, demander la météo dans une ville, être mis en contact avec un humain, etc…) Je suis arrivé pour remplacer le développeur du Chatbot. ▶ Missions 🔷 Implémentation de nouvelles fonctionnalités 🔷 Correction de bugs 🔷 Rédaction de la documentation 🔷 Encadrement d'un alternant 🔷 Participation à des projets divers : Configurer un CircleCI pour un projet Node.js/Vue.js ➖ Etude des technologies Node.js/Vue.js en PWA, pour voir si cela permet d’utiliser des fonctionnalités (géolocalisation, scan de QR Code) sur téléphone ▶ Ma valeur ajoutée 🟧🌟Pratique crafts / Conception logicielle : pour permettre l'évolutivité, la robustesse et la testabilité ➖🔶 Clean architecture : Découplage des API utilisées, seulement Facebook -> Facebook, Slack, terminal local (même chose pour les autres API utilisées et la base de données) ➖=> Plus de flexibilité : que cela soit d'un point de vue des canaux utilisable que des possibilités d'intelligence ➖🔶 TDD : Couverture de tests passée de - de 10% -> + de 80% ➖=> Plus de stabilité : d'après le PO, il y avait beaucoup moins de bugs qu'avec le précédent dev 🟧 Système de vérification que les traductions sont ne sont pas oubliées (ou copiées-collées) => Evite une partie des erreurs d'inattentions pour les traductions 🟧🌟Système de notification en cas d'erreur ou retour négatif d'un utilisateur => Réactivité pour corriger (le PO m'alertait qu'il y avait une erreur que la correction était déjà en production) 🟧🌟Mise en place d'une application web pour partager la documentation avec les équipes qui interagissent avec le projet. (Documentation de l'API générée automatiquement) => Documentation toujours à jour et accessible pour l'équipe consommatrice 🟧 Présentation de la méthodologie du Test Driven Development aux équipes 🟧🌟Création de commandes pour simplifier la Developer eXperience
Développeur back-end
FuturSkill - ManpowerGroup
Feb 2018 - Sep 2018
8 months
Région de Rennes, France
▶ Technologies utilisées : C#, SQL Server Filiale de Manpower Group, spécialisée dans la formation pour reconversion professionnelle. Pour se faire, ils développent une application pour permettre à leurs utilisateurs (apprentis/formateurs/autres) de suivre leurs formations, valider leurs acquis, savoir ce qui sera vu dans une formation, créer une nouvelle formation, etc… L’équipe R&D (équipe dans laquelle j’étais) devait travailler sur la création d’un widget tableau de bord pour visualiser des indicateurs clés de performance. Ce tableau de bord devait être configurable (nombres d’indicateurs/graphique à afficher, type de graphiques pour voir l’évolution des indicateurs en fonction d’un autre, etc…) ▶ Missions 🔷 Créer une API pour la génération des graphiques 🔷 Développement d’évolutions WebForm 🔷 Correction de bugs (une semaine par mois environ, chaque équipe, en roulement, est dédiée à la correction de bugs) 🔷 Revues de code 🔷 Tests unitaires 🔷 Tests manuels des fonctionnalités des autres équipes (avant chaque démo, toutes les équipes testent les fonctionnalités des autres équipes) 🔷 R&D sur une fonctionnalité qui pourrait être utile au projet (tous les développeurs travaillent sur une de leur idée qu’ils pensent pourrait être bénéfique à l’application)(je ne me rappelle plus ce qu’était mon idée) Ma valeur ajoutée 🔶🌟Conception logicielle : Ajouter avec le minimum de code des nouveaux indicateurs dans un tableau de bord 🔶🌟Transmission des bonnes pratiques et de mon expérience
Développeur
Astek
May 2017 - Sep 2018
1 year 5 months
Nantes, France
Astek est une ESN, j'ai effectué les missions suivantes pour leur compte: 🟦 Développeur C# .NET ➖🔷 Futurskill 🟦 Développeur Node/Javascript ➖🔷 Wiztivi
Développeur front-end
Wiztivi
May 2017 - Oct 2017
6 months
44470 Carquefou, France
▶ Technologies utilisées : Node, Bash Dans une équipe front-end de 20 personnes, pour le plus gros client de Wiztivi. Équipe travaillant en collaboration avec 2 équipes ukrainiennes de 60 personnes chacune, plus une équipe à Amsterdam. L’équipe à Wiztivi développait l’interface utilisateur de l’application pour permettre à Wiztivi de gagner le projet. Application installée sur une box internet pour de la VOD : choix des programmes à visionner sur la télé, via internet. Régulièrement, un ou deux développeurs de l'équipe ne pouvaient pas travailler pendant plusieurs jours. Les principaux problèmes résidaient dans notre dépendance envers d'autres équipes : susceptibles de compromettre le firmware de notre matériel, les données nécessaires au débogage ou de changer l'API essentielle à notre application. (Ce qui m’a conduit à créer des outils internes pour palier à ces problèmes) ▶ Missions: 🔷 Développement interface utilisateur pour box internet 🔷 Code review 🔷 Corrections de bugs ▶ Ma valeur ajoutée: 🟧🌟Refactorisation du code afin de rendre le code plus souple, adaptable et robuste 🟧 Revues de code 🟧🌟Développement d'outils pour faciliter le développement ➖🔶 Serveur de cache : afin de nous permettre de continuer à travailler même quand un service devenait inaccessible (hors-ligne) (Node.js/express). ➖🔶 Outil de mise à jour du fichier de configuration : permettre de plus facilement modifier les adresses des services sur lesquels pointaient l’application (Node.js). ➖🔶 Commandes GIT/Linux : Pour simplifier notre travail de tous les jours et permettre aux non-initiés à Linux de gagner en productivité en automatisant les séries de commandes (Bash, Node.js, Python, GIT). ➖🔶 Emulateur de télécommande via le terminal : Pour simplifier nos manipulations dans l’UI et/ou automatiser des séquences d’appuis de touches (très pratique dans les phases de tests et correction d’un bug particulier) (Bash, curl) 🟧 Tests unitaires 🟧🌟Support technique (sur Javascript et Bash/Linux) pour l’équipe Étant l’un des rares développeurs à bien connaître Javascript, je répondais aux questions des autres dévs et/ou les aidais dans leur développement, en faisant du peer-programming, par exemple. Ayant un goût prononcé pour le software craftsmanship, je formais aussi les autres développeurs aux bonnes pratiques de développement (tests unitaires, éviter de dupliquer son code, éviter les variables globales)
Développeur
UCAYA
Jan 2017 - Apr 2017
4 months
44800 Saint-Herblain, France
▶ Technologies utilisées : C#, C++, Go, Javascript, F#, Bash, Batch, NSIS Société de services à taille humaine (développant les projets en interne). L’entreprise souhaitant développer ses propres produits, elle cherche à s’agrandir et avoir quelqu’un pour les aider sur les bonnes pratiques de code. C’est une entreprise très “curieuse”, dans le sens où beaucoup de technologies/langages différents sont utilisés au sein de celle-ci, ce qui rend l’environnement très stimulant techniquement. ▶ Missions 🔷 Correction de bugs et implémentation d'évolutions pour les applications clientes 🔷 Développement Front d'une application interne à l'entreprise ▶ Ma valeur ajoutée: 🔶🌟Montée rapide en compétences 🔶🌟Force de propositions
Développeur de logiciels .Net
NETil
Oct 2013 - Nov 2016
3 years 2 months
Nantes Area, France
▶ Technologies utilisées : C#, SQL Server, WPF, Node.js, Python ▶ Autres rôles: 🟪 Référent technique/Architecte (C#, SQL Server) 🟪 Responsable qualité logiciel 🟪 Assistant RH ▶ Missions 🟦 Tierce Maintenance Applicative ➖🔷 Application Dégâts C#/SQL Server pour la Fédération Nationale des Chasseurs (FNC) ➖🔷 Application Python ➖🔷 Application WPF ➖🔷 Application Node/Angular.js 🟦 Refactorisation du moteur de calculs de l'application Dégâts 🟦 Développement outils internes ➖🔷 Moteur de tests d'intégration (pour tester le moteur de calculs de Dégâts) ➖🔷 Framework interne à NETil 🟦 Recueil du besoin client 🟦 Faire passer les entretiens de recrutement et écrire un nouveau test technique 🟦 Vérifier la qualité du code des différents projets ➖🔷 Audit de code ➖🔷 Mettre en place un serveur Sonar ➖🔷 Eduquer les développeurs aux bonnes pratiques de code ➖🔷 Ecriture d'une nouvelle norme de code pour l'entreprise 🟦 Donner une formation sur SQL Server à l'ENI ▶ Ma valeur ajoutée 🟧 À seulement 2 ans d'expérience ➖🟧 J'ai gagné les rôles de ➖➖🔶 Référent technique ➖➖🔶 Architecte technique ➖➖🔶 Responsable qualité code ➖➖=>🌟Montée rapide en compétences ➖🟧🌟J'ai été chargé de faire la refactorisation du moteurs de calculs de l'application Dégâts (la vie de l'entreprise dépendait de la réussite de cette mission, de ma réussite) ➖➖🔶 Stabilisation du moteurs de calculs : Résultats stockés et non plus recalculés => pas de variation de résultats si on demande le montant à 2 moments différents ➖➖🔶 Facilité à intégrer de nouvelles règles dans le moteur de calculs ➖➖🔶🌟Optimisation des performances : x20 plus rapide ! ➖➖=> 🌟Compétences en conception logicielle 🟧🌟Force de propositions / Ecoute ➖🔶 Anticipation du besoin ➖🔶 Propositions d'améliorations 🟧🌟Initiative de créer une librairie de fonctions utilitaires : Utiliser dans tous les projets .NET de l'entreprise 🟧🌟Partager mon expérience et mes tricks avec SQL Server aux étudiants à l'ENI
Education
EPITECH - European Institute of Technology
Expert en Technologies de l'information, Informatique
2009 - 2014
5 years
Grade: Master
Stage : Assistant pédagogique 🔷 Répondre aux questions des étudiants 🔷 Faire des cours de soutiens 🔷 Faire des travaux pratiques 🔷 Transmettre les bonnes pratiques aux étudiants 🔷 Pousser les étudiants à respecter les conventions de code (on perd 1 point par erreur de convention à Epitech, la note finale peut être négative... le but était de les aider à assimiler les conventions jusqu'à ce que cela devienne un réflexe pour eux)
Université Laval
Programmation informatique
2012 - 2013
2 years
Activities and societies: Badminton
- Admnistration de Base de Données - Génie Logiciel - Gestion de projet - Intelligence Artificielle - Interfaces Homme-Machine - Programmation Parallèle - Utilisation des paradigmes de programmation fonctionnel et déclaratif.
Portfolio

Refonte et fiabilisation d’un chatbot en production (Gares & Connexions / SNCF)

SaaS Python (fullstack : Dash / FireBase)
