Expérience professionnelle
Depuis Novembre 2021 / Freelance
Eres (6 mois – 2023) : accompagnement d'une équipe de dev, monté en compétence. Refactoring de code,
écriture de test, développement de nouvelles features.
Yogosha (3 mois - 2023): migration Symfony 4.4 => 5.4 => 6.2. Refactoring DDD du code, mise en place de
l'outil deptrac pour le respect des règles DDD. Travaille sur les performance d'indexation dans Elasticsearch.
Réduction dette technique. Participation aux développements du produit (srcum/kanban, symfony, API,
DDD, docker)
Klee Group (9 mois - 2022): lead dev sur un projet d'import de donnée de santé pour le site ********.
Migration Symfony 4 => 5 => 6.1, migration PHP 7 => 8.1. Architecture du projet, migration du legacy vers la
nouvelle architecture. Encadrement d'un junior. Mise en place de tests (phpunit), CI avec Gitlab.
Automatisation des déploiements. Interlocuteur avec les PO, développement des nouvelles features.
(symfony, mariadb, API, phpunit, docker)
Yogosha (1 mois - 2022) : création d'API pour un leaderboard à partir de donnée dans un index
elasticsearch, reduction dette technique (Symfony 4, Elasticsearch, API, behat, phpunit, docker)
Gogailles (1 mois - 2021) : renfort d’équipe sur le projet en mode scrum. PHP8, Symfony5, API Platform,
CQRS, DynamoDB, architecture héxagonale, command bus.
Mai 2097 – Octobre 2021 / Société Yogosha
Projet API: modernisation de l’API basée sur Sylius Ressource, API Platform et code maison. Mise en
place du DDD, nettoyage des vendors, migration de toute l’API vers une structure maison. Suppression du
Legacy 90% en 2 ans.
Ajout d’Elasticsearch pour la création de dashboard. Ajout de RabbitMQ pour les taches pouvant être faite
en asynchrone. Correction des failles de sécurtitées.
Environnement de travail: PHP7.3, symfony4, mariadb, redis, elasticsearch, rabbitmq, phpunit, phpspec,
behat, DDD
Projet SSO : Création d’un projet from scartch pour centraliser l’authentification des différentes
applications. API de génération de clé d’authent pour l’API public.
Environnement de travail: PHP7.3, symfony5, redis, mysql, phpunit, behat, scrum, DDD
Frontend : autoformation à vuejs et nuxtjs, participation à quelques features allant de la validation de
formulaire à la création de composant plsu complexe.
Environnement de travail: vuejs, nuxtjs
Novembre 2018 – Avril 2019 / Société Happyness Project
Developpement: modernisation du projet principal : clean des dépendances, refonte de la partie
asynchrone, extraction des workers dans des micro projets sf4. Migration sf2.8 vers sf3.4. Evolution et ajout
de fonctionnalité, correction de bugs, test unitaire.
Environnement de travail: PHP7.1, symfony2.8/3.4/4.2, mysql, rabbitmq, phpunit, scrum
Refonte BO : réécriture du backoffcie en mode API REST consommée par une SPA React. Authentification
via Google en front, validation du jwt coté back via API Google. Mise en place DDD, test fonctionnel.
Environnement de travail: PHP7.1, symfony4, redis, mysql, rabbitmq, phpunit, scrum, DDD
Devops : création from scratch de l’infrastrcuture sur AWS avec des machines EC2, RDS et ElasticCache.
Création des instances EC2 avec ansible à partir d’une AMI Debian. Machine LAMP, preprod/prod, LB,
worker, rabbittmq, Jenkins et monitoring avec Telegraf/InfluxDB/Grafana. Utilistion minimum des services
managés pour rester indépendant et pouvoir reconstruire l’infra sur un autre provider.
Environnement de travail: ansible, AWS, EC2, RDS, ElasticCache, debian, TIG
Mai 2017 – Juin 2018 / Société Manomano
Projet Search : reprise du code existant au sein de la feature team Search. Ré écriture de la partie
indexation dans Elasticsearch dans un microservice avec symfony3 et flex en utilisant RabbitMQ en vue
d’une indexation en temps réel. Evolution du mapping Elasticsearch. Evolution de la recherche et du SEO
associé sur le site.
Environnement de travail: PHP7, symfony3+flex, redis, mariadb, rabbitmq, phpunit, debian, docker, jira,
bitbucket, scrum
Devops : intégration de l’équipe devops à mi temps en octobre puis plein temps depuis novembre.
Automatisation et industrialisation du déploiement des applications symfony via Jenkins et Deployer PHP à
la place d’un script « maison ». Automatisation (test/deploiement) des migrations SQL avec support
Percona Toolkit. Migration des VM en container LXC avec Proxmox. Apport des méthodologies de dev dans
l’équipe (kanban, git). Support MySQL et RabbitMQ pour l’équipe de dev.
Environnement de travail: PHP7, symfony3/4, redis, mariadb, rabbitmq, jenkins, phpunit, deployer, debian,
percona toolkit, container LXC, ansible, jira, bitbucket, kanban
Mars 2016 – Mai 2017 / Projet personnel
Projet perso : réalisation d’une plateforme de gestion de collection de disque physique. Stack technique:
php7.1, symfony3.3, MariaDB, Redis, ElasticSearch5, RabbitMQ. Application monolitique pour la
commodité de déploiement mais déjà orienté micro-services. Implémentation CQRS : mysql et rabbitmq
pour l’indexation et la génération du cache dans le back office ; uniqumenet le cache (redis) et elastic
search pour le front. Les données sont stockées pré-formattées pour le front dans le cache. Réalisation de
l’application en mode déploiement continue : test unitaire (phpunit), server CI (Jenkins), déploiement
automatisé (Deployer). Organisation du projet avec Jira et Bitbucket (Pull request avec relecteur).
Administration des serveurs de production et développement.
Environnement de travail: PHP7, symfony3, redis, mariadb, rabbitmq, jenkins, phpunit, deployer, debian,
jira, bitbucket, scrum
Freelance (2 mois): réalisation d’application métier symfony3/bootstrap/jquery avec base 4D via API
REST.
Octobre 2012 - Février 2016 / Société Manymore
Projets : différentes applications métier autour de l’aggrégation de données financières à destination des
gestionnaires de patrimoine.
L’objectif est la ré-écriture du legacy à travers plusieurs applications sf2, découpage des applications par
métier, architecture type micro service à l’aide de RabbitMQ.
Accompagnement et recrutement de l’équipe technique, mis en place des régles de codage et
d’architecture (proche de la clean architecture). Mise en place de process de contrôle : Jenkins pour les
tests, stash pour les revues de code. Automatisation des déploiements à travers Jenkins en utilisant
capifony. Installation d’un serveur de développement et d’un serveur d’intégration continue.
Mis en place de RabbitMQ, configuration cluster, fédération, dlx, création d’un application pour
automatiser la configuration.
Développement de bundles autonomes applicatif (redis, memcached, client rest, oauth, pdf, RabbitMQ) et
métier (gestion des utilisateurs, gestion des entités…) gérés en interne via Satis.
Conception / développement d’une application d’authentification unique (SSO) pour toutes les autres
applications base sur OAuth 1.
Participation à différents projets (signature électronique, synchronisation d’agenda).
POC sur Elastic Search (en cours) pour la partie agrégat d’ES afin d’accélerer les rapports de l’application.
Monitoring des applications : pinba, développement de sondes munin (erreur, volume de requête sql…)
Environnement de travail: PHP5, symfony2, redis, mariadb, rabbitmq, jenkins, phpunit, capyfony, debian,
jira, bitbucket
Janvier 2012 – Octobre 2012 / Société Twenga
Projet back office : reprise du back office de l’entreprise. Evolution, gestion des bugs, recueille du
besoin utilisateur. Evolution d’un plugin firefox interne. Utilisation de l’API facebook.
Environnement de travail: PHP4/5, Prototype, JQuery, XUL (plugin FF), Eclipse, Redmine, GIT, Debian,
ADOdb
Novembre 2011 – Janvier 2012 / Développeur javascript ExtJS
Développeur Freelance: à l’aide du framework ExtJs, j’ai réalisé la partie Front de différentes
applications 4D pour le compte d’un indépendant. Utilisation du model MVC fournis par le framework.
Quelques features réalisées : grille éditable avec le même comportement qu’Excel (touche tab et enter).
Gestion de crédentials (stocké dans le cookie) pour restreindre les accès en fonction des utilisateurs,
formulaire avec validation coté client. Gestion d’une galerie photo en drag & drop.
Mars 2008 – Octobre 2011 | Société Interaction Consultant
Projet Easybench: application métier à destination de l'industrie (automobile, nucléaire, bien de
consommation). Easybench permet une analyse comparative de pièce ou d'ensemble sur différents critères
économiques afin de trouver les bonnes pratiques achats et de facilité les réductions de coûts industriels.
Embauché en tant que développeur, je suis devenu Chef de Projet technique sur Easybench quelques
mois plus tard et j'ai eu à gérer une équipe de 2 développeurs puis de 2 stagiaires.
Ré écriture complète de l'application pour optimiser le code (factorisation) et les performances en utilisant
différents design patterns (singleton, factory, proxy). Externalisation de fonctionnalités transverses sous
forme de plugins.
Remplacement de ExtJs 2.0 par ExtJs3.2, suppression de prototype et ré ecriture complète du code
javascript sur le modèle POO.
Migration du site sous symfony 1.4 avce Propel, intégration du composant ASSETICS de symfony 2.0 et des
composants de Zend Framework. Changement de présentation pour intégrer Easybench dans une
application « desktop » avec ExtJs4.0
Environnement de travail: PHP5, MySQL, Symfony 1.0/1.4/2.0, Zend Framework, Propel, Eclipse, Redmine,
SVN, Debian
Autres taches: Gestion des versions, patchs correctif et mise en production des instances du projet.
Référent technique sur Symfony pour les différents projets de l'entreprise. Participation à la mise en place
et l'organisation de l'environnement de développement: serveur de développement, remplacement de trac
par redmine. Participation au processus de recrutement, écriture de test technique d'embauche.
Environnement de trav...