Sur Symfony et les traitements asynchrones, la candidate décrit le mécanisme et sa preuve par le test. Sur la fiabilité des flux de paiement, elle couvre les montants, les verrous et la traçabilité avec un cas vécu. Sur Doctrine et PostgreSQL, elle mesure sur la vraie requête avant d'indexer. La conception orientée domaine et Redis sont argumentées avec un incident réel. L'usage de l'IA est cadré par une relecture complète.
Manon décrit des flux de paiement qu'elle a elle-même mis en production : idempotence prouvée par un test qui rejoue le message, montants en centimes, double débit empêché par un verrou de ligne. Elle mesure avant d'optimiser et découpe le domaine en contextes reliés par des événements. Elle a déjà vécu l'expiration d'un verrou distribué et en a tiré une règle.
Détail par exigence
Symfony et traitements asynchrones
indispensableSolide
Conduit un traitement asynchrone idempotent avec rejeu borné, file des échecs surveillée et tests qui rejouent le message.
Fiabilité des flux de paiement
indispensableSolide
Tient les montants en entiers, empêche le double débit par un verrou de ligne et trace chaque mouvement.
Doctrine et PostgreSQL
indispensableSolide
Part du plan d'exécution réel, crée l'index adapté sans bloquer les écritures et migre par étapes.
Conception orientée domaine
Solide
Sépare les contextes métier, les relie par des événements et garde les invariants dans l'agrégat.
Redis et cache
Solide
Choisit ce qui se met en cache, l'invalide sur événement et maîtrise l'expiration des verrous distribués.
Usage de l'IA
indispensableSolide
Confie à l'assistant les tâches répétitives, découpe ses demandes, relit tout et garde la logique sensible.
Points d'appui
Idempotence des traitements asynchrones vérifiée par un test qui rejoue le message deux fois.
Prévention du double débit : verrou de ligne, solde contrôlé après le verrou, journal en ajout seul.
Diagnostic de performance par la mesure, avec migrations en plusieurs temps.
Usage de l'assistant IA découpé en petites étapes, avec une limite claire sur les montants.
Points de vigilance
La réconciliation bancaire avec les relevés n'a pas été détaillée.
Peu de détails sur la gestion des conflits entre deux équipes sur un même contexte.
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 clairement faire ce job
Manon a déjà fait tourner des paiements en production : elle sait éviter qu'un paiement soit compté deux fois ou qu'un compte soit débité deux fois. Elle explique calmement, avec des cas réels. Son profil correspond à ce que l'offre demande.
Ses points forts
Fiabilité des paiements prouvée par des tests
Méthode face à un ralentissement de la base
Utilise l'IA avec des garde-fous clairs
À creuser en entretien
Le rapprochement avec les relevés bancaires n'a pas été détaillé
Savoir-être
Structurer sa réponse
Déroule chaque flux dans l'ordre où le message le traverse.
Calme et précise, elle explique ses choix par leurs effets, ce qui rassure une équipe core.
Détail par exigence
Symfony et traitements asynchrones
indispensableSolide · 9/10
Handlers idempotents face aux messages rejoués · 9/10Mécanisme d'idempotence précis.un rejeu levait une violation qu'on attrapait pour acquitterRéponse
R1
Stratégie de retry et file des messages en échec · 9/10Rejeu borné et alerte sur la file des échecs.quatre tentatives avec un délai exponentielRéponse
R1
Tests fonctionnels d'un flux Symfony · 9/10Preuve de l'idempotence par le test.un test fonctionnel qui rejouait le même message deux foisRéponse
R1
Fiabilité des flux de paiement
indispensableSolide · 9/10
Représenter les montants sans erreur d'arrondi · 9/10Règle appliquée et contrôlée par l'outillage.Tout est en entiers de centimes avec la deviseRéponse
R2
Transactions et verrous contre les doubles débits · 9/10Ordre correct entre verrou et contrôle.on vérifiait le solde après avoir pris le verrou, pas avantRéponse
R2
Traçabilité et journal des opérations · 9/10Traçabilité de bout en bout.un journal en ajout seul, avec l'identifiant de l'événement d'origineRéponse
R2
Doctrine et PostgreSQL
indispensableSolide · 9,3/10
Requêtes lentes, index et plan d'exécution · 10/10Index composite choisi d'après le plan d'exécution.on a créé un index composite en mode concurrentRéponse
R3
Migrations de schéma sans coupure de service · 9/10Migration sans coupure.je pose la contrainte à la fin, jamais en une seule foisRéponse
R3
Hydratation, N+1 et chargement des relations · 9/10Vigilance sur le chargement des relations.je surveille les N+1 avec le profilerRéponse
R3
Conception orientée domaine
Solide · 9,3/10
Frontières entre contextes métier · 9/10Frontières argumentées par le sens métier.Je ferais trois contextes avec chacun son modèleRéponse
R4
Événements de domaine et effets de bord · 9/10Couplage par événements.Ils communiquent par des événements de domaineRéponse
R4
Agrégats et invariants métier · 10/10La règle métier vit dans l'agrégat, pas dans le contrôleur.on ne rembourse jamais plus que le montant capturéRéponse
R4
Redis et cache
Solide · 9/10
Invalidation du cache · 9/10Le cache est vidé par l'événement qui change la donnée.une invalidation explicite quand l'administrateur modifie un marchandRéponse
R5
Verrous distribués · 9/10Verrou sûr, prolongé pendant le traitement.un verrou avec expiration et un jetonRéponse
R5
Usage de l'IA
indispensableSolide · 9,7/10
Son workflow avec l'assistant : découper la demande, lui donner le contexte (fichiers, conventions), tenir la taille du contexte et le coût en tokens, itérer · 10/10Workflow itératif avec contexte ciblé.je découpe la demande en petites étapes plutôt qu'un gros promptRéponse
R6
Comment il relit, teste et corrige le code que l'assistant produit · 9/10Relecture et suite complète avant de valider.Je relis chaque ligne comme une revue de codeRé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é · 10/10Garde pour elle le code qui touche aux montants.Je ne lui confie jamais la logique des montantsRéponse
R6