
Salut, moi c’est Damian.
J’ai mis en ligne mon premier site en 2006 et, depuis 2011, je travaille surtout sur des applications Ruby on Rails. J’ai vu passer une grande variété de défis avec Rails. Aujourd’hui, on a la chance d’utiliser des agents de code incroyables pour faire de n’importe quelle app Rails un chef-d’œuvre.
J’adore challenger les idées, du bas niveau (DevOps) jusqu’au point de vue de l’utilisateur final (UI).
Aujourd’hui, je me concentre sur les bonnes pratiques d’ingénierie logicielle et les agents de code pour améliorer les apps Rails à tous les niveaux.
Les problèmes Rails qui n’arrêtent pas de revenir.
Une liste non exhaustive de ce que j’aime régler sur les apps Rails, en plus, bien sûr, de concevoir et livrer de nouvelles fonctionnalités.
-
Une app qui ralentit à mesure qu’elle grandit
Je profile les requêtes lentes, corrige les requêtes N+1 et les index manquants, et réduis les goulots d’étranglement de rendu et de mémoire.
-
Des mises à jour et des patchs de sécurité qui prennent du retard
Je mets à jour Ruby, Rails et chaque gem, dépendances transitives comprises, avec revue des alertes de sécurité, tests et vérifications de compatibilité.
-
Une couverture de tests qui rate les vraies pannes
Je couvre les parcours critiques, les permissions et les données inattendues, j’améliore les fixtures et je corrige les tests instables pour qu’un test vert veuille dire quelque chose.
-
Une CI lente et des temps de démarrage pénibles
J’allège les builds lents et le démarrage de Rails, je simplifie le setup des tests et j’équilibre les workers parallèles pour un feedback plus rapide.
-
Des environnements de QA qui bloquent l’équipe
Je crée des previews isolées par branche, avec une configuration reproductible et des données réalistes et sûres, pour que les reviewers puissent tester avant de merger.
-
Des assets trop lourds ou qui cassent au déploiement
Je simplifie les pipelines d’assets, réduis le poids du CSS et du JavaScript, et corrige les assets obsolètes ou manquants après un déploiement.
-
Une interface qui ressemble à plusieurs produits
J’unifie composants, espacements et interactions dans un design system cohérent, avec des mises en page responsives et des vérifications d’accessibilité.
-
Une codebase que personne ne veut toucher
Je démêle modèles, contrôleurs et callbacks par petits refactorings, avec des tests de non-régression qui protègent le comportement existant.
-
Des background jobs et des intégrations qui échouent en silence
Je rends les jobs relançables sans risque, je gère les erreurs d’API et je surveille les files d’attente pour que le travail bloqué soit visible et récupérable.
-
Des déploiements et des migrations qui semblent risqués
J’échelonne les changements de schéma, sépare les gros backfills et renforce les vérifications de déploiement et les plans de rollback pour réduire le risque de chaque release.
-
Les mêmes problèmes à chaque code review
Je transforme les retours récurrents en conventions partagées, en vérifications automatisées et en reviews assistées par des agents, en gardant le jugement humain sur les décisions.
-
Des connaissances coincées dans la tête des gens
Je documente les règles métier et les conventions, et je rends l’installation reproductible, pour que développeurs et agents puissent travailler en confiance.
J’adore aussi travailler sur l’UI.
Je travaille à la fois sur Rails et sur l’UI, des modèles et des API jusqu’à des écrans rapides et clairs que les gens aiment utiliser.
L’IA m’aide à explorer et à implémenter des idées de design tout en gardant un produit cohérent et un code maintenable.
IA, Ruby, et ma façon de travailler.
Je faisais partie des illuminés qui croyaient au développement agentique dès début 2025. Aujourd’hui, je l’utilise pour améliorer de grandes applications Rails.
Les agents travaillent avec des objectifs clairs, des règles et des environnements sécurisés. Je relis le code, je prends les décisions d’architecture et j’affine la prochaine exécution.
| Problème | Ce que j’ai fait |
|---|---|
| Les reviews répètent les mêmes détails | J’ai analysé les 500 dernières pull requests d’un grand monolithe Rails et j’en ai tiré 40 règles récurrentes pour un premier agent Code Reviewer. |
| Les tests ratent les données qui cassent la production | J’ai enrichi un jeu de fixtures RSpec avec des données volontairement malformées pour révéler les cas limites plus tôt. Je préfère la « Data coverage » à la « Test coverage ». |
| Le travail de livraison vole du temps aux décisions produit | Les agents peuvent créer un environnement de QA par branche, accélérer la CI, refactorer des composants centraux et améliorer leur propre précision et leur consommation de tokens. |
Le bon modèle pour chaque tâche.
J’utilise plusieurs outils selon le travail : Codex, Claude et Cursor, plus OpenRouter pour tester de nouveaux modèles. Chaque modèle est bon pour des tâches différentes, et j’aime leur faire critiquer le travail des autres, comme Opus qui relit du code écrit par GPT.
Je réutilise des skills existants, mais j’adore écrire les miens : faciles à relire, faciles à ajuster, et taillés pour le projet sur lequel je travaille.
- Claude
- Codex
- Cursor
- OpenRouter
Les outils auxquels je reviens encore et encore.
Ce qui est toujours dans mon sac à dos : les libs et la stack avec lesquelles je travaille.
- Framework Rails 5+ · Ruby 2.7+
- Bases de données PostgreSQL · MySQL · Redis · Elasticsearch
- Background jobs Sidekiq · Solid Queue · Good Job · Delayed Job
- Tests RSpec · Minitest · FactoryBot · Fixtures · Sur mesure
- Authentification Devise · OmniAuth · Sur mesure
- Autorisations Pundit · CanCanCan · Sur mesure
- JavaScript frontend Hotwire · Turbo · Stimulus · Vue.js · React · JS sur mesure
- CSS frontend Tailwind · Bootstrap · Material Design · CSS sur mesure
- Pipelines d’assets Importmap · Sprockets · Propshaft · Webpacker
- API GraphQL · REST · Jbuilder
- Déploiement Docker · Kubernetes · Kamal · AWS · Azure · GCP · Sur mesure
- CI / CD GitHub Actions · Slack
- Envoi de fichiers Active Storage · CarrierWave · Shrine
- Interfaces d’administration ActiveAdmin · Administrate · RailsAdmin · Sur mesure
- Monitoring Sentry · Bugsnag · Datadog
J’adore aider les équipes à progresser ensemble.
Enseigner fait partie de ma façon de travailler. Je partage ce que j’apprends, j’explique le raisonnement derrière un choix et j’aide toute l’équipe à prendre confiance avec la codebase.
15 ans de Rails.
Chaque projet est une excuse pour apprendre quelque chose de nouveau.
- 2011–2020 HashtagBattle, mon premier produit Rails en productionMonté en charge jusqu’à des milliers d’utilisateurs par minute et maintenu pendant huit ans
- 2013–2016 Geeksters, l’une des premières agences Ruby au MarocNous avons créé The House Of Geeks à Agadir, où j’ai enseigné Ruby on Rails et fait grandir l’équipe de 2 à 15 développeurs full-stack
- 2017 Due diligence Rails pour le rachat de Loco2Un audit qualité d’une grande application Rails critique pour l’activité
- 2017–2019 Ruby et Sidekiq à grande échellePostgreSQL, Sidekiq Enterprise, Kubernetes, des API et un pipeline de CI passé de 45 à 4 minutes
- 2017–aujourd’hui Localtower, un Rails Engine pour les migrations de base de donnéesConçu pour supporter les applications de Rails 5.2 à Rails 8 et mis en avant dans Ruby Weekly
- 2023–2026 kelvin, un grand monolithe RailsMa dernière expérience Rails, sur une codebase de production bien établie
- 2026 Une contribution mergée dans RailsPull request #56967 dans le dépôt Rails
Faisons avancer votre application Rails.
Je parle couramment français, espagnol et anglais.