I have been working on a database engine in C++ by following along with the CMU lectures on youtube recently. It is quite fun and I am getting to learn a lot although I am just tinkering with the storage layer right now.
It starts from the basics and goes into a lot of detail.