Data engineer kdb+ en finance de marché, le langage q et la tick data

Une banque d'investissement, un gérant ou une société de trading recrute un data engineer finance de marché pour stocker et servir des données de marché à haute fréquence, souvent dans kdb+. Les questions séparent les personnes ayant tenu une base tick en séance de celles qui ont seulement lu la documentation de q.

Recevoir la fiche complète

Mis à jour le Par l'équipe Delectus5 min de lecture

La fiche Data engineer kdb+ (tick data) : technologies, chaîne du poste, une question et la grille d'évaluation

Un data engineer en finance de marché fait entrer chaque cotation et chaque transaction dans une base, puis la rend disponible aux traders, aux quants et à la conformité. Dans les banques d'investissement, cette base est très souvent kdb+, avec son langage q, son architecture tick et ses historiques partitionnés par date. Les volumes se comptent en millions de lignes par jour et la latence en microsecondes.

Le marché des profils kdb+ est étroit et beaucoup de postes se trouvent à Londres. En France, vous verrez donc des CV venus de Python ou de Java qui citent q après une formation, et des profils londoniens qui ont des années de tick derrière eux. La différence se voit sur la reprise d'une RDB, la jointure aj, le carnet d'ordres et les opérations sur titres.

Les cinq questions de la page couvrent ces sujets avec la réponse attendue et ce qui doit vous alerter. Si personne dans votre équipe ne parle q, gardez les questions d'architecture et de données de marché pour le premier entretien. Le PDF ajoute 30 questions sur six axes, un cas de 20 minutes sur un desk actions européennes et une grille de 1 à 4.

kdb+, q et données de marché : le vocabulaire du poste

kdb+ et le langage q

kdb+, édité par KX, est une base de données en colonnes conçue pour les séries temporelles. On l'interroge en q, un langage très concis qui sert aussi à écrire les traitements. KX a lancé fin 2025 KDB-X, la nouvelle génération de la plateforme, qui reste fondée sur kdb+ et q. Vérifiez d'abord que la personne écrit du q sans aide.

L'architecture tick

Le schéma de référence des bases de marché. Un feed handler reçoit les flux, le tickerplant journalise chaque message et le diffuse, la RDB garde la journée en mémoire et l'HDB conserve l'historique sur disque. La reprise après une panne repose sur le journal du tickerplant.

HDB, partitions et attributs

L'historique est découpé par date, chaque colonne étant stockée dans son propre fichier. Des attributs (p#, g#, s#) accélèrent les recherches par symbole. Une requête mal écrite peut lire des mois de données au lieu d'un jour, c'est là que se joue la performance.

Flux de marché et fournisseurs

Les données arrivent par les flux directs des places (Euronext, Deutsche Börse et autres) ou par des fournisseurs comme Bloomberg (B-PIPE) et LSEG, ex-Refinitiv. On distingue les cotations, les transactions et le détail des ordres. Leur usage est encadré par des licences qui fixent qui peut voir quoi.

Carnets d'ordres

La liste des ordres d'achat et de vente en attente sur un instrument, par niveau de prix. Les flux les plus détaillés transmettent chaque ordre et chaque modification, et le carnet se reconstruit à partir d'eux. C'est la donnée la plus lourde et la plus exigeante du poste.

Référentiel instruments

Le dictionnaire des instruments : codes ISIN, FIGI, RIC ou Bloomberg, places de cotation, calendriers, opérations sur titres comme les divisions d'actions ou les dividendes. Sans référentiel propre, les séries historiques deviennent fausses sans que personne ne s'en aperçoive.

Horodatage et synchronisation des horloges

MiFID II impose de dater les événements de trading sur l'UTC avec une précision qui dépend de l'activité, jusqu'à la microseconde pour le trading haute fréquence. Les serveurs se synchronisent par PTP ou NTP. Un même événement porte souvent plusieurs horodatages, de la bourse jusqu'à la base.

Python, PyKX et Java

Les quants travaillent en Python et accèdent à kdb+ par PyKX, la bibliothèque de KX. Les feed handlers et les applications à faible latence sont souvent écrits en Java ou en C++. Le poste demande au moins un de ces langages en plus de q.

Le poste se trouve surtout en banque d'investissement, dans les sociétés de trading et chez certains gérants d'actifs. Il peut dépendre de l'équipe technologique d'un desk, d'une équipe centrale de données de marché ou d'une équipe de recherche quantitative. Beaucoup d'offres sont publiées à Londres, et les recrutements à Paris passent souvent par des cabinets spécialisés ou des ESN. Les intitulés varient : développeur kdb+, data engineer tick data, market data engineer. Certains postes demandent surtout du q, d'autres mêlent kdb+, Python et une base en colonnes plus récente. L'expérience d'une base tick en production pendant les séances se vérifie en entretien.

Le niveau attendu d'un data engineer tick data, axe par axe

  • Programmation q et modèle de données kdb+
  • Architecture tick et reprise après panne
  • Stockage historique et performance des requêtes
  • Données de marché et carnets d'ordres
  • Référentiel instruments et opérations sur titres
  • Horodatage, latence et exigences MiFID II

Questions d'entretien pour un développeur kdb+ en salle de marché

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.

  1. Question 1 · confirmé

    La RDB redémarre en pleine séance. Comment récupère-t-elle les ticks reçus depuis l'ouverture ?

    Une bonne réponseAu redémarrage, elle se réabonne au tickerplant, qui lui renvoie le schéma des tables, le chemin de son journal et le nombre de messages déjà écrits. Elle rejoue ensuite ce journal jusqu'à ce point avec -11!, puis reçoit les nouveaux messages en direct. Un bon profil sait qu'un journal corrompu peut être lu jusqu'au dernier message valide, et qu'un tickerplant qui ne journalise pas rend la reprise impossible.

    Signal d'alerte« On recharge depuis la veille », ou aucune idée du rôle du journal du tickerplant. Une réponse qui confond la RDB et l'HDB.

  2. Question 2 · confirmé

    Pour chaque transaction, il faut le meilleur prix acheteur et vendeur en vigueur à cet instant. Comment l'écrivez-vous en q ?

    Une bonne réponseAvec une jointure à date antérieure, aj, sur le symbole et l'heure : aj[`sym`time;trade;quote]. La table des cotations doit être triée par symbole puis par heure, avec un attribut sur le symbole (g# en mémoire, p# sur disque) pour que la recherche reste rapide. Il connaît la différence avec aj0, qui garde l'heure de la cotation, et wj pour agréger les cotations sur une fenêtre autour de chaque transaction.

    Signal d'alerteUne jointure classique sur l'heure exacte, qui ne trouve presque jamais de correspondance, ou une boucle ligne à ligne.

  3. Question 3 · senior

    Les requêtes sur six mois de cotations deviennent lentes. Qu'examinez-vous dans l'HDB ?

    Une bonne réponseD'abord l'ordre des filtres : la date en premier pour ne lire que les partitions utiles, puis le symbole, qui doit porter l'attribut p# après un tri par symbole à l'écriture. Ensuite les colonnes lues (une table éclatée ne charge que celles demandées), la répartition des partitions sur plusieurs disques avec par.txt, la compression et le parallélisme des processus secondaires.

    Signal d'alerte« On ajoute de la RAM » sans regarder la requête, ou un filtre sur le symbole placé avant la date.

  4. Question 4 · senior

    Vous devez reconstruire un carnet d'ordres sur cinq niveaux de prix à partir d'un flux d'ordres individuels. Comment procédez-vous, et comment savez-vous que le résultat est juste ?

    Une bonne réponseUn état par ordre (prix, quantité, sens), mis à jour à chaque ajout, modification, exécution ou annulation, puis agrégé par niveau de prix. Les numéros de séquence du flux servent à repérer un message manquant ; en cas de trou, on repart d'un instantané de la bourse. Le contrôle se fait en comparant avec les instantanés agrégés publiés par la place et en détectant un carnet croisé, où le meilleur prix acheteur dépasse le meilleur vendeur.

    Signal d'alerteReconstruire à partir des seules transactions, ou ignorer les messages perdus et les numéros de séquence.

  5. Question 5 · confirmé

    Un analyste trace le cours d'une action sur dix ans et voit une chute de 50 % un jour où rien ne s'est passé. Que s'est-il passé, et comment le traitez-vous dans la base ?

    Une bonne réponseTrès probablement une division d'action ou une autre opération sur titres. Les prix bruts restent stockés tels quels, et des coefficients d'ajustement issus du référentiel sont appliqués à la lecture. La personne pense aussi aux changements de code ou de place de cotation, qui imposent de suivre l'instrument par un identifiant stable (ISIN, FIGI) avec un historique des correspondances.

    Signal d'alerteCorriger les prix historiques en place, ou ne jamais avoir entendu parler d'opérations sur titres.

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

Ce que se demandent les recruteurs avant d'embaucher un profil kdb+

Un data engineer Python peut-il apprendre kdb+ une fois en poste ?

Oui, à condition d'avoir le goût des données en colonnes et de la performance. La syntaxe de q demande quelques semaines de pratique, l'architecture tick et ses reprises s'apprennent plus lentement. Pour un poste qui doit tenir une base en séance dès l'arrivée, cherchez une expérience kdb+ en production. Pour un poste en équipe, avec un référent kdb+, un bon profil Python ou Java formé sur le tas peut convenir.

KDB-X remplace-t-il kdb+ sur les CV ?

KDB-X est la nouvelle génération de la plateforme de KX, disponible depuis fin 2025. Elle reste fondée sur kdb+ et sur le langage q, avec des modules en plus. Un candidat qui a travaillé sur kdb+ est donc pertinent pour un poste KDB-X. Les termes kdb+, q, kdb Insights ou KDB-X peuvent apparaître sur des CV comparables. Demandez ce que la personne a construit avec, et sur quels volumes.

Comment évaluer le q d'un candidat quand personne dans le jury ne le pratique ?

Préparez un test technique court avec des réponses de référence : un VWAP par tranche de cinq minutes, une jointure aj entre transactions et cotations, une requête sur l'HDB à corriger. Vous comparez le résultat à la référence et vous demandez à la personne d'expliquer chaque partie. Les questions d'architecture et de données de marché, elles, se jugent sans lire le code, avec les réponses attendues de la fiche.

En quoi ce poste diffère-t-il d'un data engineer streaming classique ?

Un data engineer streaming travaille souvent avec Kafka et Flink sur des événements applicatifs, avec des latences de l'ordre de la seconde. En finance de marché, les volumes par instrument, la latence en microsecondes, les carnets d'ordres, le référentiel instruments et les exigences de MiFID II changent les questions. Les outils diffèrent aussi : kdb+ reste très présent dans les banques d'investissement, alors qu'il est rare ailleurs.

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.

Les fiches voisines

Toutes les fiches →

Voyez Delectus sur vos propres offres.

Commencez gratuitement. Passez à l'échelle quand vous êtes prêt.

Demander une démo

Votre ATS, connecté à Delectus

  • Workable
  • Teamtailor
  • iCIMS
  • Lever
  • SmartRecruiters
  • Jobvite
  • Greenhouse
  • Pinpoint