7 September 2025

Resources I used to build a fast and efficient key value data store in C

2 minute read

While building fkvs, the fast key value data store in C I used multiple resources to help me along the way.

  1. Operating Systems: Three easy pieces - It has really simple explanations of the Process API, The Memory API, CPU and Memory Virtualization, CPU scheduling and more that was useful to have a good mental model during development.

  2. The Linux Programming Interface - Lots of sample code and great explanations on IPC, including HPC server design models.

  3. The C programming language - Simple and great book from the authors of C, I feel some of the code samples are outdated but great book overall.

  4. C Programming - A Modern Approach - Great book, I like how it not only focused on the language but also implementing algorithms and data structures which was super useful when building fkvs.

  5. A Common-Sense Guide to Data Structures and Algorithms - Used this book to refresh my understanding of Linked Lists and Hashtables, core fkvs data structures.

  6. ChatGPT - My personal rubber duck when I needed to dig deep into certain ideas, for example, instead of sending commands in plain text, send them in binary format so we can send/receives all types of data in an efficient and compact way and spend less CPU cycles parsing strings.

ChatGPT did face challenges solving simple bugs too, bugs I solved by taking 5 minutes to dig deeper into the code and changing one line of code.

I decided up front to not rely too much on AI. I want to find a balance between increasing my own understanding whilst being productive.

So far these resources have helped a ton.