The below interview guidance is for a junior or mid-level kdb role. If you are senior, hopefully you will either have contacts that make the interview a formality or you will have a much different, longer, intense process.

This content was created as part of our Fully online kdb+ training course., for £499 / $499 you get 8 weeks access to 25 modules each with a practical exercise and lecture video. Learn kdb+ now.

Typical Interview Structure

A typical kdb+ interview will last 1-2 hours and be with 2-3 people, typically other kdb+ developers and/or a manager, it will consist of:

  1. Arrival and Intro
  2. CV Recap
  3. kdb+ Technical Questions - Starting simple to warm up and progressing harder
  4. Optional Linux/bash/sql/python
  5. Long Technical Problems - typically representative of the job they want you to do

CV Recap

The interviewers goal here is to get your history (in case they haven't had time to read your CV!), check that you can communicate well and to try and find a kdb area you know well to get the best out of you. Your goal is also to show your best side. I recommend using the STAR method to give a quick overview of your most recent roles then deep-diving into the project that will best demonstrate your talents.

Example Questions:
  • Describe your last role?
  • tell me about a project you enjoyed working on or that was really successful?
  • What work did you do at JPMorgan?

High level Recap

STAR Method

  1. Situation - When/Where were you working? As part of which team? What was the team responsibilities or goal?
  2. Task - What was the specific problem you were trying to solve?
  3. Action - What steps did you take to achieve the goal?
  4. Results - How did it turn out? Either this should be a big success or you should be able to say a lot of what you learnt to do better next time.
STAR kdb Example
SituationI joined the Portfolio Risk Department at Goldman Sachs.
TaskThey had a kdb system at the core of their portfolio calculations that was taking 7 hours overnight (far too long) and no kdb expertise. My job was to make it faster.
ActionI first wrote a lot of tests as it had none and I wanted to ensure it kept producing the correct numbers. Next I added instrumentation to find the bottleneck.......I then rewrote the slow area in C++...
ResultsI reduced the calculation time from 7 hours to 20 minutes. The business loved it as this allowed them to move from an overnight batch to nearly real-time reporting throughout the day. Reducing the risk of a client position escalating out of acceptable bounds and clients liked receiving their report more regularly.
As soon as possible dive deep into a project you are proud of.
  • Do try to lightly recap your most recent roles
  • You MUST have a project that you can talk about at length.
  • If you don't have a work project, you should build something open source that interests you
  • Make sure to be positive and enthusiastic
  • If the project is not your most recent role, be prepared to 1. defend why it isn't 2. Cover your most recent role in case they insist on discussing it
kdb+ Interview

kdb+ Technical Questions

The interviewer should start simple to let you get warmed up and then proceed to harder questions:

Simple kdb Interview Questions

  • How many different operations can the ? operator be used for?
  • Name some kdb data types?
  • Name some kdb mathematical operations and what they do?
  • How do I print text to the console in kdb?
  • name some .Q functions you have used?
  • How would I read a CSV file in kdb?
  • How would I generate a list of 10 random integers between 0 and 20?

Medium kdb Interview Questions

  • How is a partitioned table stored in kdb?
  • How would I send data from one q process to another? What command to open/send/close socket?
  • What's the difference between sync and async in kdb? How do I perform them?
  • What command line arguments do you know for kdb?
  • What is enumeration? What are symbols?
  • What is kdb good for? Why is it good for that?
  • Name all kdb attributes? When would I use each?
  • Name all the kdb adverbs? Give an example usage for 2?

Advanced kdb Interview Questions

  • In a kdb tick setup. How does the RDB recover if the machine suffers a restart?
  • What are the steps to appending data to a partitioned table? What are some of the functions you would use?
  • What is kdb query functional form? When would you use it?
  • Does kdb support foriegn keys?
  • Is kdb fast compared to other databases? Why?

Our FREE kdb+ Tutorials may help, if there were some you couldn't answer.

Longer kdb Problems

Compared to the previous questions, these won't be a simple 2-3 sentence answer, this section will involve longer back and forth discussion with the interviewer. The goal isn't just to see if you know kdb, it's to see can you ask questions, identify the root cause of problems, can you communicate well and how do you think. For example:

kdb+ Tick
  • Describe the typical kdb+ Tick setup? Sketch it?
  • What is a TP? Detail the inner event sequence?
  • Detail each step from component start to fully running?
  • Describe a failure scenario, e.g. out of RAM and the steps to fully recover?
  • OK so I'm running standard tick but:
    • I don't have enough RAM for the data I want to store. What can I do?
    • End users are subscribing to the TP and the TP can't keep up? memory starts to grow and then it dies. What can I do?
Futures/Options Data
  • I have a data set with 1000 instruments, receiving 1000 rows per second, how much storage and RAM will I need to capture this?
  • If I mostly want to perform a query to find 30 days of history for a single instrument, how should I structure the system?
  • How should I store the data to allow fast queries?
  • OK later I have another important query that needs to run fast, the highest price each day for the last week and today for 10 instruments? How can I make that query fast?

Notice for these wide questions, it's highly important you ask the interviewer questions

If you found this guide useful, you should also checkout our Fully Online kdb+ Training Course.