mTrip
Développeur full-stack (Rails / Vue)
Nous recrutons un développeur full-stack (Ruby on Rails / Vue.js) pour concevoir et maintenir la plateforme SaaS.
- Montréal (QC)
- Télétravail
- Temps plein
Le poste
Vous prenez en charge des fonctionnalités de la base de données jusqu’au navigateur: modèles et services Rails, API JSON utilisées par nos applications mobiles et écrans Vue.js que nos agences clientes utilisent chaque jour.
Le code est volumineux et mature, et nous le maintenons à jour: il est passé de Rails 6.0 à Rails 8.1 au cours de la dernière année. Vous consacrerez l’essentiel de votre temps au développement produit, et une partie à garder la plateforme rapide, sécurisée et à jour.
Vos missions
- Développer des fonctionnalités produit de bout en bout: planificateur d’itinéraires, communications avec les voyageurs, génération de documents, alertes de vol en temps réel et fonctionnalités reposant sur l’IA
- Concevoir des API JSON et des intégrations avec des partenaires de voyage (GDS comme Sabre, Amadeus et Travelport; fournisseurs de suivi des vols, de risques et de messagerie)
- Repérer et corriger les problèmes de performance: requêtes N+1, requêtes MySQL lentes, pages lourdes
- Écrire et maintenir des tests RSpec, y compris des tests système dans le navigateur, et garder la suite CI rapide et fiable
- Participer aux mises à niveau du framework et des dépendances, ainsi qu’aux correctifs de sécurité
- Relire les pull requests et rédiger la documentation des fonctionnalités que vous développez
- Analyser les incidents en production avec Sentry et les logs, et soutenir l’équipe lorsque des clients signalent des problèmes
Notre stack technique
Nous utilisons des assistants de code IA au quotidien et nous attendons de vous que vous soyez à l’aise avec ces outils.
- Ruby
- Ruby on Rails
- MySQL
- Vue.js
- Vuetify
- RSpec
- Tests système Capybara
- FactoryBot
- Docker
- GitHub Actions
- AWS (ECS, Lambda, S3, CloudFront)
- Sentry
Votre profil
- Plus de 3 ans d’expérience professionnelle avec Ruby on Rails sur une application en production
- Solides compétences en JavaScript et expérience d’un framework frontend moderne (Vue.js de préférence; React ou Angular conviennent aussi)
- Bonne maîtrise du SQL: vous savez lire un plan d’exécution, ajouter l’index adéquat et repérer un N+1
- Le réflexe du test: vous écrivez vos specs en même temps que le code et corrigez les tests instables au lieu de les ignorer
- Aisance dans un code volumineux et ancien: vous lisez le code existant avant de le modifier et vous refactorisez avec prudence
- Maîtrise de Git et du workflow par pull requests, et communication écrite claire en anglais (le français est un atout)
- Autonomie: vous savez mener une fonctionnalité, d’une description sommaire à la mise en production, avec peu de supervision
- Expérience du développement avec des outils d’IA comme Claude Code, Codex et équivalents
Atouts appréciés
Aucun de ces points n’est obligatoire. Une expérience en infrastructure est un plus, pas une condition.
- Infrastructure et DevOps: Docker, GitHub Actions CI, AWS (ECS, Lambda, S3, CloudFront), Terraform
- Optimisation des performances web: profilage, cache, taille des bundles
- Python
- Expérience des API de LLM (OpenAI, Anthropic) dans un produit
- Sensibilité à la sécurité: notions de base OWASP, traitement des données personnelles selon le RGPD
- Expérience dans la tech du voyage ou dans un autre SaaS B2B
Notre façon de travailler et ce que nous offrons
Une petite équipe où votre travail est mis en production pour de vrais voyageurs en quelques jours
Revue de code sur chaque pull request, déploiements sans interruption de service et suite de tests solide
Autonomie: vous choisissez comment résoudre les problèmes et vous proposez des améliorations de la plateforme
Poste basé à Montréal: télétravail, avec accès à un espace de coworking
- Soins dentaires
- Cotisation équivalente au REER
Comment postuler
Quelques lignes sur un bug difficile que vous avez corrigé ou sur une fonctionnalité que vous avez livrée nous en disent plus qu’une lettre de motivation.
Notre processus:
1
Un appel de présentation de 30 minutes
2
Un échange technique autour de code réel
3
Une dernière rencontre avec l’équipe