Sur Doctrine et PostgreSQL, les réponses mesurent avant et après, et pèsent les migrations par risque. Sur Symfony et les traitements asynchrones, l'idempotence est traitée avec son coût. Sur la fiabilité des flux de paiement, les bases sont maîtrisées, avec un manque assumé sur l'outillage de rapprochement. La conception orientée domaine met en balance cohérence à terme et simplicité. Redis est placé selon le coût d'une donnée périmée, et l'IA est utilisée avec un bilan honnête.
Clément chiffre chacun de ses choix : une page de recherche passée de 900 à 140 millisecondes en supprimant un N+1, une déduplication de messages qui coûte dix pour cent de débit, une migration en trois étapes pour une colonne obligatoire. Chaque réponse oppose une alternative à sa solution. Il dit ne pas avoir écrit lui-même d'outil de rapprochement bancaire.
Détail par exigence
Symfony et traitements asynchrones
indispensableSolide
Rend l'opération idempotente au moindre coût et mesure le prix de la déduplication quand elle est nécessaire.
Fiabilité des flux de paiement
indispensableSolide
Connaît les réflexes sur les montants et les verrous, et décrit une démarche de rapprochement qu'il n'a pas outillée lui-même.
Doctrine et PostgreSQL
indispensableSolide
Supprime un N+1 mesuré et choisit la migration selon le risque.
Conception orientée domaine
Solide
Définit l'agrégat par la décision à protéger et sépare les effets de bord par événements, en assumant la cohérence à terme.
Redis et cache
Solide
Dimensionne l'expiration selon le coût d'une donnée périmée et protège la libération d'un verrou.
Usage de l'IA
indispensableSolide
Délègue les transformations répétitives, mesure le gain par chantier et fournit des exemples de conventions.
Points d'appui
N+1 corrigé avec un test qui compte les requêtes pour empêcher le retour.
Compromis chiffrés : coût en débit de la déduplication, coût en espace d'une table de copie.
Migration en trois étapes avec contrainte validée séparément pour éviter le verrou.
Retour mesuré sur l'assistant IA, avec un gain et une perte racontés.
Points de vigilance
Pas d'outil de rapprochement bancaire écrit lui-même.
Préfère éviter les verrous Redis, donc peu de pratique à en tirer.
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
Clément fait des choix chiffrés et sait expliquer leur coût. Il a accéléré une page de recherche d'un facteur six en supprimant des requêtes inutiles. Il n'a pas lui-même construit d'outil de rapprochement bancaire.
Ses points forts
Décisions mesurées et argumentées
Gains de performance chiffrés
Bilan honnête sur l'IA
À creuser en entretien
Pas d'outil de rapprochement bancaire construit
Peu de pratique des verrous Redis
Savoir-être
Expliquer
Présente chaque solution avec son alternative et son coût.
Tirerait l'équipe vers des décisions argumentées et sait expliquer leur coût au métier.
Détail par exigence
Symfony et traitements asynchrones
indispensableSolide · 9,5/10
Handlers idempotents face aux messages rejoués · 9/10Idempotence naturelle quand c'est possible.un upsert plutôt qu'un insertRéponse
R3
Stratégie de retry et file des messages en échec · 10/10Reprise et surveillance.trois tentatives puis la file dédiée, avec une alerte sur sa tailleRéponse
R3
Fiabilité des flux de paiement
indispensableSolide · 10/10
Représenter les montants sans erreur d'arrondi · 10/10Base solide.Des entiers de centimes et un objet valeurRéponse
R4
Transactions et verrous contre les doubles débits · 10/10Protection contre le double débit.une transaction courte avec un verrou sur la ligne du compteRéponse
R4
Rapprocher les paiements avec les relevés bancaires · 10/10Démarche juste, sans pratique.comparer les totaux par jour, puis descendre ligne à ligneRéponse
R4
Doctrine et PostgreSQL
indispensableSolide · 10/10
Hydratation, N+1 et chargement des relations · 10/10Gain mesuré.Un chargement groupé par identifiants a ramené la page de 900 à 140 millisecondesRéponse
R1
Migrations de schéma sans coupure de service · 10/10Évite le verrou.contrainte posée en NOT VALID puis validée séparémentRéponse
R2
Conception orientée domaine
Solide · 9/10
Agrégats et invariants métier · 9/10Agrégat par la décision.la décision que le code doit protéger, c'est ce qui définit l'agrégatRéponse
R5
Événements de domaine et effets de bord · 9/10Effets de bord découplés.pour qu'un échec du mail n'annule pas le paiementRéponse
R5
Redis et cache
Solide · 9,5/10
Durées de vie et données périmées · 9/10Durées justifiées.trente secondes pour un taux, une heure pour un référentielRéponse
R7
Verrous distribués · 10/10Précaution de sécurité du verrou.j'ajoute un jeton pour qu'on ne libère que son propre verrouRéponse
R7
Usage de l'IA
indispensableSolide · 10/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 · 10/10Tâche déléguée précise.migrer cent tests vers une nouvelle syntaxeRé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 · 10/10Retour d'expérience honnête.j'ai perdu une heure à corriger un code qui ignorait nos conventionsRéponse
R6