A Simple and Efficient Implementation for Small Databases is an old paper that I've wanted to implement for a long time. It describes a simple application that embodies a lot of "systems" knowledge at the same time: Using the filesystem as a persistence and synchronization mechanism.Using a write-ahead log as a source of truth.Creating crash tolerant (or crash-only) systems.While ideally you'd want to write this in C or C++, mucking around with strings and files isn't a very pleasant experience unless you are willing to pull in some third party libraries.
In the past few weeks, as I've tried and failed at various projects, there has been a realisation that you can only go so far with random reading and coding. The first few years of programming are spent coding projects pretty minor on the algorithms/data structures side. But when you finally start growing out of it and when 'cool' projects for you start to become more complex, a seemingly invisible wall smacks you.