Sur la fiabilité des flux de paiement, la leçon des centimes et la déduplication sont solides. Sur Doctrine et PostgreSQL, le diagnostic par le profileur est efficace, les migrations sans coupure peu pratiquées. Sur Symfony et les traitements asynchrones, les tests de parcours sont bons, la stratégie de reprise est la plus faible. La conception orientée domaine reste simple, Redis est correct, et l'usage de l'IA est limité par l'expérience vécue.
Noémie raconte un écart d'un centime entre le total affiché et le total encaissé, dû aux flottants et retrouvé en deux jours, qui lui a fait adopter les entiers de centimes dans un objet valeur. Elle déduplique les confirmations du prestataire par un identifiant unique. Elle dit maîtriser moins la reprise après échec des messages.
Détail par exigence
Symfony et traitements asynchrones
indispensableSolide
Déduplique les confirmations et teste les parcours de bout en bout, la politique de reprise restant par défaut.
Fiabilité des flux de paiement
indispensableSolide
A appris des centimes par un bug réel et verrouille les écritures concurrentes.
Doctrine et PostgreSQL
indispensableSolide
Résout un N+1 par le profileur et connaît la méthode de migration sans l'avoir pratiquée sur de grosses tables.
Conception orientée domaine
Solide
Sépare commande, livraison et paiement par rythme d'évolution.
Redis et cache
Solide
Cache le catalogue avec expiration courte et invalidation à la modification.
Usage de l'IA
indispensableSolide
Délègue explications, tests de cas limites et noms, garde les règles de montants après son expérience.
Points d'appui
Bug de centime raconté de la cause à la correction, avec tests des remises cumulées.
Identifiant d'événement unique enregistré dans la transaction de la commande.
N+1 de la page de tournée ramené de cent vingt requêtes à trois.
Parcours de commande testé du panier à la confirmation, lancé en intégration continue.
Points de vigilance
Politique de reprise des messages par défaut, sans alerte.
Migrations sur grosses tables non pratiquées.
Pas d'événements de domaine ni de verrous distribué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
Noémie a vécu un écart d'un centime sur des paiements et en a tiré une règle stricte pour toute l'équipe. Elle teste chaque parcours de commande. La reprise après un traitement en échec est son point le moins solide, et elle le dit.
Ses points forts
Rigoureuse sur les montants
Teste chaque parcours
Honnête sur ses limites
À creuser en entretien
Reprise après échec à renforcer
Changements de base sur de grosses tables à pratiquer
Savoir-être
Dire ce qu’on ne sait pas
Reconnaît qu'elle maîtrise moins la reprise après échec.
Progresserait vite en équipe, avec un accompagnement sur la reprise des messages.
Détail par exigence
Symfony et traitements asynchrones
indispensableSolide · 7,5/10
Handlers idempotents face aux messages rejoués · 8/10Idempotence transactionnelle.dans la même transaction que la mise à jour de la commandeRéponse
R2
Tests fonctionnels d'un flux Symfony · 8/10Test de parcours.un test fonctionnel qui part du panierRéponse
R4
Stratégie de retry et file des messages en échec · 7/10Reprise simple, à renforcer.J'utilise la configuration par défaut de MessengerRéponse
R3
Découpage en services et injection de dépendances · 7/10Découpage testable.Les services sont petits, injectés par le constructeurRéponse
R4
Fiabilité des flux de paiement
indispensableSolide · 7/10
Représenter les montants sans erreur d'arrondi · 7/10Leçon appliquée.On est passés en entiers de centimes dans un objet valeurRéponse
R1
Transactions et verrous contre les doubles débits · 7/10Verrou court.un verrou sur la ligne du produit dans une transaction courteRéponse
R2
Doctrine et PostgreSQL
indispensableSolide · 7,5/10
Hydratation, N+1 et chargement des relations · 8/10Gain mesuré.le profileur affichait cent vingt requêtes, une jointure l'a ramené à troisRéponse
R5
Migrations de schéma sans coupure de service · 7/10Méthode connue.j'ajoute des colonnes nullables d'abord et je remplis ensuiteRéponse
R5
Conception orientée domaine
Solide · 7/10
Frontières entre contextes métier · 7/10Frontières simples.je séparerais la commande, la livraison et le paiementRéponse
R7
Redis et cache
Solide · 7,5/10
Invalidation du cache · 8/10Invalidation à l'événement.une invalidation quand un producteur modifie son offreRéponse
R7
Durées de vie et données périmées · 7/10Durée adaptée.avec une expiration courteRéponse
R7
Usage de l'IA
indispensableSolide · 7/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 · 7/10Tâches déléguées.expliquer une erreur, écrire des tests de cas limites et proposer un nomRéponse
R6
Ce qu'il ne confie jamais à l'assistant : données confidentielles, sécurité, décisions d'architecture, cas où il s'est trompé · 7/10Limite née d'un bug vécu.Je ne lui confie pas les règles de calcul des montantsRéponse
R6