Interview Questions for KDB

Hi Guys,

I have searched out the group & been browsing over the internet, Seems like there is no proper list of curated questions for KDB+ out there, I get that it is pretty vast in all areas if you want to take a deep dive but in essence of a testing a generalized aptitude with KDB+ probably no list exists of if it does I have not come across it. Would be very helpful if someone has some input on this :).

Thanks in advance.

Just to clarify, would this be for a junior position?

Just to clarify, would you be interviewing at a junior level?

I`m not sure but , if possible uptill intermediate level sounds good , and if you have some time at your hands maybe expert level to have an insight on topics I might be missing for long term.

And just to clarify, this is for your own personal interview practice, and not a list of questions you intend to ask interviewees?

yup for own practice.

As a junior being interviewed I’d expect you to be asked about the following areas: 

  • .Q and .z namespaces 

  • Give definitions of atoms and lists 

  • Be able to identify different datatypes and cast between them 

  • Be familiar with several of the main operations (I.e ?,#,_) 

  • Give definitions of dictionaries and tables (and how they are related) 

  • Perform operations on tables and dictionaries  

  • Give definitions of keyed and unkeyed tables 

  • Create functions and give some examples of them 

  • Use $ and ? to construct conditionals  

  • Perform select, exec, update and delete queries on tables 

  • Be able to use xasc, xdesc and xbar 

  • Be able to use functional form 

  • Know about the different iterators (previously known as adverbs) and be able to describe uses for them 

  • Know about the different attributes and their pros and cons (I.e speed, mem usage) 

  •  Use @ and . to apply, index and trap errors 

  •  Be able to perform horizontal, vertical, left, plus, inner and union joins 

  • Start and be able to connect to a q process using –p or /p and hopen 

  • Be able to disconnect a process using hclose 

  • Usage of the –u/-U flag on startup 

  • Send sync and async messages 

  • Describe the different ways of saving a table to disk 

  • Be able to save and load tables 

  • Be able to append records to a table on disk

  • Be able to delete columns from a splayed/partitioned table using hdel 

  • Be able to save and load a csv file into a q session 

  • Explain the architecture of a basic kdb+ tick setup 

  • Describe the contents of a log file and be able to replay it 

I would also refer to https://www.aquaq.co.uk/ who can provide online training in kdb+, and also https://code.kx.com/q/ref/ which is good for referring to definitions etc.

Let me know if you have anymore questions.

Kdb Cheat Sheet / Path to q God

When I was writing the q Reference I heard of a candidate asked in an interview to distinguish the two kinds of q iterators. 

(The story helped me organise the reference articles.)