Un développeur Neo4j modélise des données en nœuds et en relations, écrit les requêtes en Cypher, charge le graphe depuis les systèmes existants et lance souvent des algorithmes de graphe pour détecter des communautés ou repérer les nœuds centraux. Les usages courants sont la lutte contre la fraude et le blanchiment, la recommandation, la cartographie d'un système d'information et, plus récemment, le GraphRAG, où le graphe alimente un modèle de langage. Les offres viennent de banques et d'assurances, d'ESN, de cabinets de conseil et d'équipes IA.
Pour le recruteur, la difficulté tient à la facilité de Neo4j en surface. Un tutoriel suffit pour écrire un MATCH et afficher un joli graphe. Les problèmes arrivent avec le volume : un nœud relié à des millions d'autres, une requête à longueur variable qui ne termine pas, un import qui sature la mémoire. Une personne expérimentée parle de plans d'exécution, d'index, de projections en mémoire pour Graph Data Science, et sait dire quand une base relationnelle aurait suffi.
L'usage visé et la taille attendue du graphe orientent l'entretien, le manager peut les donner en amont. Faites dessiner au candidat le modèle de son dernier projet et justifier une relation.
Neo4j et son outillage, composant par composant
Neo4j
La base de données graphe la plus répandue, sur le modèle du graphe de propriétés : des nœuds portant des étiquettes (Client, Compte, Adresse), des relations typées et orientées, et des propriétés sur les deux. Les versions suivent un numéro calendaire (2025.x, 2026.x). Elle existe en édition Community, en édition Enterprise et en service managé, Neo4j Aura.
Cypher
Le langage de requête de Neo4j, qui dessine presque les motifs recherchés : (client)-[:POSSEDE]->(compte). Il a largement inspiré GQL, la norme ISO des langages de graphe publiée en 2024. Depuis Neo4j 2025.06, les nouveautés arrivent dans Cypher 25 et Cypher 5 est figé. Demandez sur quelle version la personne a travaillé.
Index et contraintes
Des contraintes d'unicité sur les identifiants (un seul nœud Client par numéro client) et des index sur les propriétés qui servent de point d'entrée aux requêtes. Sans eux, chaque recherche balaie tous les nœuds d'une étiquette et les imports créent des doublons. Neo4j propose aussi des index plein texte et vectoriels.
Import et chargement
LOAD CSV avec CALL { } IN TRANSACTIONS pour charger par lots, neo4j-admin database import pour un chargement initial massif hors ligne, ou des connecteurs Kafka et Spark pour l'alimentation continue. Un import mal découpé peut durer des heures ou saturer la mémoire, d'où l'intérêt d'en parler en entretien.
APOC
Une bibliothèque de procédures qui complète Cypher : traitements par lots, conversions, appels à des API, exports. Très utilisée, elle doit être installée et autorisée sur le serveur, et Cypher couvre désormais une partie de ses fonctions.
Graph Data Science (GDS)
La bibliothèque d'algorithmes de graphe : centralité (PageRank), détection de communautés (Louvain, Leiden, composantes connexes), similarité, plus courts chemins, embeddings de nœuds. Les algorithmes tournent sur une projection du graphe chargée en mémoire ; le résultat peut être lu, ajouté à la projection ou écrit dans la base. Les projets de fraude et de recommandation reposent largement dessus.
Visualisation et enquête
Neo4j Browser et Bloom pour explorer le graphe, et des outils tiers comme Linkurious, présent dans les équipes de lutte contre la fraude et de conformité. Les analystes y enquêtent sur un dossier sans écrire de Cypher, à partir des vues et des requêtes que le développeur a préparées.
Recherche vectorielle et GraphRAG
Neo4j stocke des embeddings et les interroge par index vectoriel, avec une clause SEARCH dédiée depuis début 2026. Le GraphRAG combine cette recherche par similarité et le parcours des relations pour donner à un modèle de langage un contexte plus précis. Neo4j publie une bibliothèque Python, neo4j-graphrag, pour ce type de projet.
Cluster et exploitation
En production, Neo4j Enterprise tourne en cluster, avec des serveurs primaires qui écrivent et des secondaires qui servent la lecture, des sauvegardes en ligne et de la supervision. Sur Aura, Neo4j s'en charge. Le développeur n'administre pas toujours, mais il doit connaître les limites (heap, cache de pages) qui pèsent sur ses requêtes.
Le titre varie : développeur Neo4j, Neo4j database engineer, ingénieur graphe, knowledge graph engineer. Dans la lutte contre la fraude et le blanchiment, le poste mêle modélisation, Cypher, administration de la base et travail avec les analystes conformité. Dans la recommandation, il se rapproche du data scientist, avec Graph Data Science. Dans les équipes IA, il construit la couche de connaissances d'agents ou d'assistants, souvent à partir d'un prototype à industrialiser. En ESN, les missions durent souvent le temps d'un passage à l'échelle ou d'un audit de performance. Neo4j propose des certifications gratuites en ligne sur la GraphAcademy, qui valident la connaissance du produit ; l'expérience du volume se vérifie en entretien.
Les compétences Neo4j à vérifier
- Modélisation en graphe de propriétés
- Écriture et optimisation de Cypher
- Import et alimentation du graphe
- Algorithmes Graph Data Science
- Recherche vectorielle et GraphRAG
- Exploitation et performance de Neo4j
Ce qu'un développeur Neo4j doit savoir faire devant vous
Chaque question vient avec ce qu'une bonne réponse contient et le signal qui doit vous alerter. Pas besoin d'être technique pour les poser : écoutez si le candidat raconte du vécu.
Question 1 · confirmé
Un nœud Adresse est relié à 3 millions de clients parce que beaucoup de fiches portent une adresse par défaut. Quel problème cela pose-t-il, et que faites-vous ?
Une bonne réponseC'est un supernœud. Toute requête qui le traverse produit un nombre énorme de chemins, et les algorithmes de communauté relient à tort tous ces clients entre eux. Il commence par la donnée : l'adresse par défaut ou vide est exclue du graphe ou marquée comme non significative. Il adapte ensuite le modèle si besoin (relations plus spécifiques, nœuds intermédiaires) et filtre ces nœuds dans les requêtes et les projections Graph Data Science.
Signal d'alerteAjouter de la mémoire au serveur, ou ne pas voir le problème tant que les requêtes répondent sur le jeu de test.
Question 2 · confirmé
Une requête qui cherche les comptes liés à un client suspect jusqu'à six niveaux ne termine pas. Comment la reprenez-vous ?
Une bonne réponseIl lit le plan avec PROFILE : point d'entrée trouvé par un index ou par un balayage complet, nombre de lignes à chaque étape. Il borne le chemin variable, filtre les types de relations et les nœuds dès le motif et limite les résultats. Six sauts sur un graphe dense restent coûteux, donc il propose de réduire la profondeur, de pré-calculer des communautés avec GDS ou de passer par un algorithme de chemin.
Signal d'alerteUn motif [*] sans borne ni filtre, ou « on attend que ça finisse ».
Question 3 · confirmé
Une transaction entre deux comptes, vous la modélisez comme une relation ou comme un nœud ?
Une bonne réponseIl part des requêtes à servir. Une simple relation A_VIRE_VERS suffit pour suivre des flux. Dès que la transaction porte un montant, une date, un canal et doit être reliée à d'autres éléments (appareil, adresse IP, alerte), elle devient un nœud Transaction. La date reste en général une propriété indexée ; un arbre de temps ne se justifie que si les requêtes parcourent le temps comme un chemin.
Signal d'alerteCalquer le modèle relationnel table par table, ou transformer chaque valeur en nœud sans raison.
Question 4 · confirmé à senior
Comment détectez-vous des réseaux de fraudeurs qui partagent téléphones, adresses et IBAN ?
Une bonne réponseIl projette un graphe en mémoire avec GDS (clients reliés aux identifiants partagés, ou relations client-client pondérées par le nombre d'éléments communs), lance des composantes connexes (WCC) pour un premier découpage, puis Louvain ou Leiden pour des communautés plus fines. Il écarte les identifiants trop partagés, écrit l'identifiant de communauté et des indicateurs (taille, densité, part de clients déjà signalés) dans la base, et prépare des vues pour les enquêteurs.
Signal d'alerteAfficher le graphe complet dans un outil de visualisation et chercher à l'œil.
Question 5 · confirmé
Vous chargez 50 millions de transactions depuis des fichiers CSV. Comment procédez-vous ?
Une bonne réponsePour un chargement initial dans une base vide, neo4j-admin database import, de loin le plus rapide. Dans une base existante, les contraintes d'unicité d'abord, puis LOAD CSV avec CALL { } IN TRANSACTIONS par lots de quelques milliers de lignes, les nœuds avant les relations, MERGE sur les identifiants contraints. Il surveille la mémoire et repère dans le plan les opérateurs Eager, qui obligent à tout charger avant d'écrire.
Signal d'alerteUn LOAD CSV en une seule transaction, sans contrainte, avec des MERGE sur des nœuds non indexés. Ou USING PERIODIC COMMIT, retiré depuis Neo4j 5.
Recevez la fiche d'entretien complète en PDF
La fiche pour mener l'entretien de bout en bout, prête à imprimer ou à partager avec le manager.
- 30 questions sur 6 axes, avec la bonne réponse, le signal d'alerte et la relance
- Le niveau visé pour chaque question
- Une mise en situation de 20 minutes et ce qu'on attend du candidat
- La grille d'évaluation de 1 à 4, axe par axe
Neo4j, RDF ou base relationnelle : les arbitrages de recrutement
Quand un graphe Neo4j se justifie-t-il plutôt qu'une base relationnelle ?
Quand les requêtes suivent des relations sur plusieurs niveaux, avec une profondeur qui varie : réseaux de fraude, dépendances entre applications, recommandations par voisinage. Une base relationnelle multiplie alors les jointures. Pour des agrégats, des rapports ou des données tabulaires, elle reste plus simple. Un bon candidat sait faire la différence et peut citer un projet où il a déconseillé Neo4j.
Les certifications Neo4j suffisent-elles pour évaluer un candidat ?
Les certifications de la GraphAcademy sont gratuites et vérifient la connaissance du produit et de Cypher. Elles ne disent rien du volume traité ni de la façon dont la personne a résolu un problème de performance ou de modélisation. Demandez la taille du graphe, le degré des nœuds les plus connectés, la requête la plus lente qu'elle a corrigée et la méthode d'import retenue. Ces réponses situent mieux le niveau.
Quel test technique pour un développeur Neo4j ?
Un petit graphe de démonstration et trois exercices pendant l'entretien suffisent : une requête à écrire, une requête lente à corriger à partir de son plan PROFILE, un modèle à dessiner pour un cas métier. Neo4j Aura propose une instance gratuite et l'édition Community tourne en local, ce qui suffit pour l'exercice. Faites commenter à voix haute pour suivre le raisonnement.
Un développeur Neo4j peut-il reprendre un graphe RDF ?
Les notions de graphe se transposent, mais RDF suit une autre logique : identifiants URI, ontologies OWL, validation SHACL, raisonnement, requêtes SPARQL. Un profil Neo4j aura besoin de temps pour adopter ces standards, en particulier la modélisation en monde ouvert. L'extension neosemantics (n10s) importe et exporte du RDF dans Neo4j, ce qui aide sur les projets qui mélangent les deux mondes.
Pour structurer vos autres entretiens, consultez aussi nos pages sur les questions d'entretien de recrutement, la méthode de l'entretien structuré et la grille d'évaluation d'entretien.





