Mon Profil

content image

Langages

Je suis développeur Ruby on Rails fullstack depuis 15 ans avec près d'une 10 aine de gros projets dans autant d'entreprises. 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 créé des gems et des engines sur des projets d'entreprise.

J'ai commencé le développement d'applications web au milieu des années 2000. J'ai naturellement utilisé JS pour ajouter des élements et effets dynamiques sur les pages. J'ai donc maîtrisé en ce temps, les librairies Prototype, JQuery, Mootools. L'écosystème étant très mouvant et dynamique, je me suis tourné aux alentours de 2015 vers les "grands" frameworks Vue.js, React et Angular à travers différents projets.

Aujourd'hui, même si je suis familier de React, je sui aguerri sur Angular. Avec ce dernier, j'ai collaboré 3 ans fulltime quasi exclusivement sur 2 gros projets différents avec la stack Angular/RxJs/NgRX. 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 de changement et de performances, je m'intéresse depuis plus de 3 ans à Rust pour le web. Pour me faire la main, j'ai codé un petit POC en utilisant Actix. Depuis le début de cette année j'ai étudié activement Leptos (mon site actuel) et Axum. J'ai converti une petite partie d'un projet Rails/React en Axum/React en utilisant Leptos (mon site actuel) et Sqlx pour requêter Postgres. Je commence à trouver des réflexes et un rythme de croisière en écrivant en Rust.

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 souvents écrits à postériori. Les tests, outre de sécuriser l'application, agissent comme un révélateur de toutes les lacunes ou scénarios oubliés.

Outre la fiabilié 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 me permet d'améliorer, de voir sous une perspective différente et souvent pertinente mon cod enfermé dans sa logique propre. Les développeurs juniors m'amèent aussi un regard nouveau et m'informent sur les toutes dernières pratiques.

Je suis aussi rompu aux méthode agiles et en particulier SCRUM qui a fait partie de mon environnement de travail pendant 3 ans. Dans ce cadre, j'ai animé des démos et des rétrospectives. J'ai un regard assez critique sur SCRUM qui est un très beau framework sur le papier, mais demande une gestion implacable des 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.

Dans la suite logique, je me suis investi dans le long apprentissage de Kubernetes. J'ai profité d'une période sans missions pour me former sur cette technologie qui me faisait de l'oeil depuis quelques années à l'aide de cours en lignes et force livres techniques. J'ai mis en application ces connaissances sur un cluster baremetal de 8 Rasperry en utilisant la distribution K3S. Et donc je me suis familiarisé avec les outils tels que Terraform, Helm, Ansible, ArgoCD, Prometheus, Grafana, ...

Projet MOE

J'ai développé en indépendant une 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.