Mon Profil

Langages
Je suis développeur Ruby on Rails depuis 15 ans. J'ai créé des gems et engines. Je suis parfaitement à l'aise avec ce framework et m'y sens un peu comme chez moi. Je l'aime beaucoup même si parfois je ressens ses limites quand la codebase commence à s'étoffer.
J'ai commencé le développement d'applications web au milieu des années 2000. J'ai utilisé JS pour ajouter des composants et effets dynamiques en utilisant les librairies Prototype, JQuery, Mootools. L'écosystème étant très mouvant et dynamique, je me suis tourné progressivement vers les frameworks Vue.js, React et Angular
Même si je suis familier de React, j'ai aussi collaboré avec Angular/RxJs/NgRX dans le cadre de deux gros projets. C'est un framework exigeant qui repose sur des notions de programmation réactive avec RxJS et les effects combinés au store NgRX. C'est désormais un outil que je maîtrise bien et apprécie.
En quête d'évolution, je m'intéresse depuis plus de 3 ans à Rust pour le web. Pour me faire la main, j'ai codé un petit MVP en utilisant Actix. Cette année j'ai étudié activement Leptos et Axum. J'ai converti une petite partie d'un projet Rails/React en Axum/React en utilisant Leptos et Sqlx pour requêter Postgres. Je commence à coder comme un "rustacean" 呂.
Cadre et méthodes
RSpec/Capybara côté backend et Jest/Cypress côté frontend ont été mes fidèles outils pour mener à bien les tests unitaires et fonctionnels. Je suis donc naturellement attaché aux TDD même si dans la pratique mes tests sont souvent écrits à postériori. Les tests, en plus de sécuriser l'application, agissent comme un révélateur de toutes les lacunes ou scénarios oubliés.
Outre la fiabilité de l'application, la qualité du code fait partie de mes exigences. Je suis donc les préconisations des linters (Rubocop, Eslint) mais aussi refactorise autant que possible. J'ai pratiqué beaucoup de revues de code et demande volontiers à ce que le mien soir revu. Un oeil extérieur permet d'améliorer, de voir sous une perspective différente et souvent pertinente son code. Les développeurs juniors apportent un regard nouveau et les dernières pratiques.
Je suis habitué des méthodes agiles et en particulier SCRUM qui était utilisé dans mes dernières missions : j'ai animé des démos et des rétros. J'ai un regard assez critique sur SCRUM, qui est un beau framework, mais qui demande une gestion rigoureuse du temps de réunions pour rester concentré et productif.
Devops
J'utilise Docker/Podman au quotidien. Les containers font partie de mes outils de développement depuis leur apparition. Ils apportent beaucoup de confort et de rationalité dans l'usage de Postgres, Redis, ElasticSearch.
Dernièrement, je me suis investi dans le long apprentissage de Kubernetes à l'aide de cours en ligne et livres techniques. J'ai mis en application ces connaissances sur un cluster baremetal de Rasperry en utilisant la distribution K3S. Je me suis familiarisé avec les outils tels que Terraform, Helm, Ansible, ArgoCD, Prometheus, Grafana, ...
Projet MOE
J'ai développé en indépendant un ERP de pilotage de projets pour une agence de consulting. En production depuis 2010, réécrit il y a 2 ans en Ruby on Rails/React, il est plus que jamais essentiel.
