Sur Symfony et les traitements asynchrones, le test fonctionnel est une vraie force, l'idempotence est en place. Sur la fiabilité des flux de paiement, les arrondis et la référence unique sont maîtrisés, la réconciliation est partielle. Sur Doctrine et PostgreSQL, le diagnostic est bon mais les migrations sans coupure manquent. La conception orientée domaine est correcte, Redis simple, et l'usage de l'IA est prudent.
Morgane teste chaque flux Symfony de bout en bout et cite une régression d'un centime sur la TVA, attrapée par un test d'export avant la livraison. Elle contrôle les doublons à l'import par une référence bancaire unique. Elle dit n'avoir pas pratiqué les migrations sans interruption, faites hors des heures de travail.
Détail par exigence
Symfony et traitements asynchrones
indispensableSolide
Teste les flux de bout en bout, évite les doublons à l'export et relance les messages en échec.
Fiabilité des flux de paiement
indispensableSolide
Garde les montants en centimes avec une règle d'arrondi testée, bloque les doublons à l'import, sans rapprochement complet.
Doctrine et PostgreSQL
indispensableSolide
Mesure par le plan et améliore la liste des devis, sans migration sans coupure en production.
Conception orientée domaine
Solide
Sépare devis, situation et comptabilité par événements, avec des règles distinctes.
Redis et cache
Solide
Cache le barème avec expiration et invalidation, sans verrou distribué.
Usage de l'IA
indispensableSolide
Génère des jeux de données, vérifie par les tests et lit d'abord les assertions après un test vide.
Points d'appui
Test fonctionnel d'export qui a attrapé une dérive d'un centime sur la TVA.
Règle d'arrondi portée par une classe testée avec les cas de bord.
Doublons évités par une référence bancaire unique à l'import.
Réflexe de lire les assertions d'un test généré par l'assistant.
Points de vigilance
Migrations sans interruption jamais pratiquées en production.
Rapprochement bancaire limité à un contrôle à l'import.
Réessais différenciés selon l'erreur non réglés.
Sujets abordés
Symfony et traitements asynchrones · Fiabilité des flux de paiement · Doctrine et PostgreSQL · Conception orientée domaine · Redis et cache · Usage de l'IA
Entretien conduit en autonomie par le candidat, réponses transcrites puis analysées.
L'évaluation finale appartient au recruteur : Revelyum n'émet aucune décision automatisée.
En clair
Oui, il peut faire ce job
Morgane teste chacun de ses flux de bout en bout et a évité une erreur d'un centime sur la TVA avant qu'un client la voie. Elle contrôle bien les doublons à l'import. Elle n'a pas encore fait de changements de base sans interruption de service.
Ses points forts
Tests de bout en bout
Vigilante sur les arrondis
Évite les doublons
À creuser en entretien
Changements de base sans interruption à pratiquer
Rapprochement bancaire partiel
Savoir-être
Structurer sa réponse
Raconte le test du devis à l'export en suivant le flux.
Renforcerait la qualité de l'équipe, avec un apprentissage à faire sur les migrations en production.
Détail par exigence
Symfony et traitements asynchrones
indispensableSolide · 7,3/10
Tests fonctionnels d'un flux Symfony · 7/10Test complet du flux.un test fonctionnel qui créait un devis, le transformait en situation de travaux, lançait l'exportRéponse
R1
Handlers idempotents face aux messages rejoués · 8/10Idempotence de l'export.le handler regarde si un export existe déjà pour cette période et ce clientRéponse
R3
Stratégie de retry et file des messages en échec · 7/10Reprise simple.trois tentatives, puis la file des échecsRéponse
R3
Fiabilité des flux de paiement
indispensableSolide · 7,3/10
Représenter les montants sans erreur d'arrondi · 7/10Représentation correcte.Les montants sont des entiers en centimesRéponse
R2
Transactions et verrous contre les doubles débits · 8/10Verrou ciblé.une transaction avec un verrou sur le devis concernéRéponse
R5
Traçabilité et journal des opérations · 7/10Document figé.chaque situation validée devient un document figéRéponse
R2
Doctrine et PostgreSQL
indispensableSolide · 8/10
Requêtes lentes, index et plan d'exécution · 8/10Gain mesuré.un index sur le client et la date a divisé le temps par dixRéponse
R4
Migrations de schéma sans coupure de service · 8/10Connaissance théorique.je sais qu'il faut ajouter en nullable, remplir, puis contraindre, mais je ne l'ai pas fait en productionRéponse
R4
Conception orientée domaine
Solide · 7/10
Frontières entre contextes métier · 7/10Frontières argumentées.Je séparerais le devis, la situation de travaux et la comptabilitéRéponse
R7
Événements de domaine et effets de bord · 7/10Couplage par événements.avec une communication par événementsRéponse
R7
Redis et cache
Solide · 8/10
Invalidation du cache · 8/10Invalidation à la modification.une invalidation à la modificationRéponse
R7
Durées de vie et données périmées · 8/10Durée simple.avec une expiration d'une heureRéponse
R7
Usage de l'IA
indispensableSolide · 8/10
S'il code avec un assistant IA (Copilot, Cursor, Claude Code, ChatGPT…) : quelles tâches de développement il lui confie, et lesquelles il garde · 8/10Tâche déléguée.des jeux de données pour mes tests fonctionnelsRéponse
R6
Un cas vécu où un assistant IA a changé son code ou son délai, et ce qu'il en a retenu · 8/10Cas vécu et réflexe.il a une fois généré un test qui passait mais ne vérifiait rienRéponse
R6