Job Interview Questions
Attributes
What are the different attributes available in kdb?
Which search algorithm is used in each?
Describe the general speed and memory usage of each?
Which attributes are better for in-memory data and which attributes are better for on-disk data?
Which attributes are maintained on append?
Database Management
Describe the standard partitioned kdb database layout
What are the deciding factors between using a symbol vs string for the type of a column?
Name some .Q namespace functions that can assist with database management
How can you append data to a table already on disk without bringing it into memory?
What is enumeration? What benefits does it bring and how?
If I had a splayed, partitioned table on disk that was too big to read in to memory, what could I do if I wanted to:
Append to that table
Update one column in that table
Calculate average Price by Sym in that table
Similar question as previous, but what if each individual column was too big to read in to memory?
File Handling
What functions would you use for loading in large files? What are the differences between them?
IPC
Name the main IPC message handlers and explain how they work
What are the two main syntaxes for sending messages to different processes
What is the difference between sync and async requests? What is the syntax for using them?
What is deferred response?
How would you implement deferred response if you had to write it yourself?
What is an async callback? Why is it useful?
Memory Management
What are the different methods of garbage collection? How are they different?
Describe the outputs of .Q.w[]
Misc
Can you name all of the uses of '?' in kdb/q?
What are the 6 possible inputs to a functional select?
List 5 kdb process startup parameters
Which are the main functions that will allow you to control access to kdb processes?
Multithreading/multiprocessing
What are the two methods of multithreading in kdb? How are they different?
Tick
Explain the vanilla tick setup
How would you replay a corrupt tp log?
What happens in an RDB when it restarts intraday? What are the actions that take place and in what order?
How would you avoid blocking the RDB during a write down?
If your TP has a high memory usage, how would you identify what the issue is?
How would you deal with a slow subscriber to a TP?
Code questions
Write a function that verifies the CUSIP checksum digit
Write a function that solves a three tower Tower of Hanoi problem