À propos
Je suis un développeur basé à Montréal, Québec, Canada.
D’aussi loin que je me souvienne, j’ai toujours été intéressé par les ordinateurs et la programmation en général. J’ai commencé à écrire mes premières lignes de code à 13 ans, en modifiant des scripts PHP.
Je travaille présentement pour Turbulent, sur la partie e-commerce du site web de Star Citizen.
Je m’intéresse aussi au DevOps, la plateforme AWS, et le cloud en général.
L’open-source est très important pour moi, aussi j’essaie de redonner à la communauté open-source autant que faire se peut en créant de nouveaux packages, en partageant la connaissance que j’ai sur mon blog, en soumettant des pull requests et en signalant des bugs.
J’apprécie de travailler avec des langages et frameworks différents, aussi, je suis toujours partant pour essayer de nouvelles choses.
Ayant grandi à Toulouse en France, j’ai suivi des études d’informatique à l’Efrei près de Paris avant de déménager à Montréal en 2017 pour finir mes études. J’y ai obtenu une maîtrise en génie logiciel à l’université Concordia avant de commencer à travailler.
Experience
Direction technique d’une équipe de développeurs et devops responsables de l’infrastructure du site de Star Citizen, du backend de la partie transactionnelle ainsi que des outils de développement.
- Direction de la migration de l’infrastructure Salt a Kubernetes en utilisant Kustomize
- Support des développeurs internes via des outils simplifiant leurs méthodes de travail
- Maintenance de la partie backend du site transactionnel et développement de nouvelles fonctionnalités (PHP 8, MySQL, GraphQL)
Je travaille sur le site web de Star Citizen, plus précisément l’aspect de vente en ligne. Les technologies backend sont PHP, Node.js + TypeScript, ainsi que React + TypeScript en frontend.
J’ai été amené à améliorer des performances du tunnel de vente pour supporter les pics de traffic durant les événements de vente majeurs. J’ai aussi réduit le temps d’exécution des pipelines résultant en une amélioration de la productivité de l’équipe. J’ai migré la base de code de PHP 7.2 en PHP 8.1 en utilisant des outils d’analyse statique (PHPStan, PHPCS, Rector).
En tant que développeur full-stack à SimplyPHP, je travaillais quotidiennement sur des applications PHP utilisant principalement sur les frameworks Laravel pour le backend et Vue.js pour le frontend. J’ai aussi été amené à travailler sur des applications utilisant WordPress, Zend Framework, jQuery et autres.
Je suis également très intéressé par le côté DevOps des applications; j’ai créé une architecture complète sur AWS pour les héberger. Les détails sont sur mon blog.
J’ai été amené à travailler principalement sur deux projets:
- Une application financière utilisant Laravel et Vue.js utilisée par des conseillers financiers. J’ai écrit le moteur d’export de rapports qui est responsable pour la génération de fichiers PDF donnés aux clients. J’ai également écrit une intégration générique supportant plusieurs agrégateurs de données financières. En tant que développeur principal de cette application, je suis responsable pour le développement de nouvelles fonctionnalités et pour la correction de bugs.
- Une application multi-tenant legacy écrite en PHP procédural pour laquelle j’ai créé l’architecture AWS mentionnée plus haut. J’ai réglé les différences entre les différentes bases de données des différents tenants et j’ai créé une nouvelle application Laravel intégrée à l’application legacy pour développer les nouvelles fonctionnalités sur une stack moderne et appliquer le strangler pattern.
KDS est une compagnie éditant KDS Neo, un logiciel de gestion des voyages et des notes de frais. Pendant mon stage, j’ai travaillé sur leur logiciel écrit en C# et Ember.js
J’ai réécrit l’API interne pour la rendre compatible avec les standards REST.
J’ai migré le framework de mock de RhinoMocks à Moq.
J’ai préparé le repository SVN pour une migration à Git en supprimant les fichiers superflus de l’historique Git.
Pendant mes études à l’Efrei, j’ai travaillé comme développeur freelance pour la junior entreprise de l’Efrei, SepEfrei.
J’ai développé plusieurs projects, dont BlockPharma, une application Laravel qui utilise la blockchain pour lutter contre la contrefaçon des médicaments. Elle utilise le datamatrix présent sur chaque emballage de médicament en l’insérant dans la blockchain, écrivant l’information de manière irréversible, résultant en un historique inaltérable propre à chaque paquet.
L’activité principale de Diagamter est réaliser des diagnostics immobiliers. Diagamter vend sa marque à des franchisés indépendants qui utilisent la solution logicielle qui leur est proposée, monDiagamter. Les clients de Diagamter incluent des diagnostiqueurs immobiliers, des notaires, des agences immobilières et des clients finaux.
La plateforme est basée sur Laravel.
Une fois mon stage terminé, j’ai continué à travailler pour Diagamter en tant que freelance lorsque nécessaire. J’ai aidé à bâtir le site vitrine où le client peut directement réserver un diagnostic ainsi que le site carrières.
Pendant mon premier stage en entreprise, j’ai travaillé pour Orange, le plus gros FAI de France.
J’ai travaillé sur une application PHP nommée Part Variable Vendeur - Orange Promotion, responsable du calcul de la part variable des vendeurs. Elle se base sur l’Orange Framework & Tools, un framework maison basé sur des composants venant de Zend Framework 2 et Symfony.
Projets
Simple Docker Compose NAS featuring Sonarr, Radarr, Prowlarr, Jellyfin, qBittorrent, PIA VPN and Traefik with SSL support
Après avoir cherché la solution NAS parfaite, j’ai réalisé que ce que je voulais pouvait être réalisé avec quelques conteneurs Docker sur une machine Linux classique. Le résultat est une configuration Docker Compose, capable de parcourir les indexeurs pour récupérer les ressources multimédias et de les télécharger via un VPN WireGuard avec transfert de port. Les certificats SSL et l’accès à distance via Tailscale sont pris en charge.
Il a actuellement plus de 700 étoiles sur GitHub.
Light and slick material design music player for Android
Vinyl Music Player est un lecteur musical local pour Android, écrit en Java. Forké depuis Phonograph, il a un design material qui suit les directives de Google et qui est agréable à l’oeil. Il est facile d’utilisation et customisable (plusieurs thèmes sont disponibles, dont un noir). Il permet la navigation par répertoires, a une minuterie et un éditeur de tags.
Il a actuellement plus de 10,000 installations sur le Play Store et plus de 700 étoiles sur GitHub. Parce que l’open-source est important pour moi, il est aussi disponible sur F-Droid.
Travel certificate Android application during France's COVID lockdown
Devant l’absence de solution gouvernementale native, le site web proposé ne remplaçant pas à mon sens une application native, j’ai développé une application simple, propre et ne nécessitant aucune permission pour remplir le formulaire d’attestation de déplacement.
Cette application a été trés populaire et fut installée plus d’un million de fois en décembre 2020. Je suis fier d’avoir aidé tant de personnes durant ces temps incertains.
Customizable Docker-compose template made for Laravel
Laradose propose une configuration Docker compose légère mais puissante pour lancer des applications Laravel localement.
L’installation et la configuration sont rendues faciles grâce au script Bash fourni. Les paramètres sont sauvegardés dans le fichier .env de Laravel.
Éducation
Concordia University
Maîtrise en génie logiciel
Septembre 2017 - Décembre 2018
https://www.concordia.ca
Programme de deux ans dédié au génie logiciel, visant à améliorer les capacités analytiques ainsi que la communication technique à l’écrit. Tout au long du programme, j’ai été amené à travailler sur tous les aspects du cycle de vie logiciel et j’ai appris comment développer des logiciels fiables, sécuritaires et économes.
Voici la listes des cours que j’ai pris:
- Advanced Programming Practices: J’ai écrit un afficheur de tweets avec le framework Play en Java. J’ai répliqué le papier “How Not to Structure Your Database-backed Web Applications: A Study of Performance Bugs in the Wild” dans l’écosystème Laravel. J’ai trouvé des problèmes de performances et je les ai réglés.
- J’ai ajouté le support du C# à la Ptidej tool suite en utilisant ANTLR4.
- Introduction to Artificial Intelligence: J’ai écrit 3 mini projets en Java et Python à propos du Good Old Fashioned Artificial Intelligence, du Machine Learning et du Natural Language Processing.
- Software Verification and Testing: J’ai écrit un détecteur de bugs statique en Java.
- Advanced Design Software Architecture
- Software Comprehension and Maintenance
- Software Design Methodologies
- Software Engineering Processes
- Software Measurement
- Software Project Management
- Systems Requirements Specifications
J’ai étudié le génie logiciel à temps plein à l’Efrei (École d’ingénieur généraliste en informatique et technologies du numérique) où j’ai préparé un diplôme génie logiciel.
J’y ai obtenu mon baccalauréat en génie logiciel, et j’ai profité de l’opportunité de pouvoir participer à un programme de double-diplôme avec l’université Concordia pour finir mes études à Montréal. Ainsi, l’obtention de mon diplôme canadien a resulté en l’obtention de ma maîtrise de l’Efrei. Je suis donc également ingénieur agréé CTI en France.
J’ai réalisé des projets intéressants, notamment un chat en C# utilisant des sockets TCP et une application Android montrant les niveaux de pollens.
Semestre d’échange lors de mes études à l’Efrei. C’est lors de cette occasion que j’ai découvert la vie quotidienne hors de France. Cela a joué un rôle majeur dans ma décision de vivre au Canada.
J’y ai pris les cours suivants:
- Entrepreneurship
- Operating Systems
- Introduction to Web Programming
- Object Oriented Methods with UML
Classe préparatoire PTSI/PT, avec des cours intensifs en mathématiques, physiques et sciences de l’ingénieur.
L’Icam (Institut Catholique des Arts et Métiers) est une école d’ingénieurs générale orientée vers la mécanique.
A l’issue de ces deux ans, j’ai passé le concours Banque PT et j’ai intégré l’Efrei, voulant me réorienter vers un cursus plus informatique que mécanique.
Quand je ne suis pas derrière un écran...
Je suis un développeur basé à Montréal, Québec, Canada.
D’aussi loin que je me souvienne, j’ai toujours été intéressé par les ordinateurs et la programmation en général. J’ai commencé à écrire mes premières lignes de code à 13 ans, en modifiant des scripts PHP.
Je travaille présentement pour Turbulent, sur la partie e-commerce du site web de Star Citizen.
Je m’intéresse aussi au DevOps, la plateforme AWS, et le cloud en général.
L’open-source est très important pour moi, aussi j’essaie de redonner à la communauté open-source autant que faire se peut en créant de nouveaux packages, en partageant la connaissance que j’ai sur mon blog, en soumettant des pull requests et en signalant des bugs.
J’apprécie de travailler avec des langages et frameworks différents, aussi, je suis toujours partant pour essayer de nouvelles choses.
Ayant grandi à Toulouse en France, j’ai suivi des études d’informatique à l’Efrei près de Paris avant de déménager à Montréal en 2017 pour finir mes études. J’y ai obtenu une maîtrise en génie logiciel à l’université Concordia avant de commencer à travailler.