for a real challenge, try implementing an k/v store without any underlying storage system first. it's a lot harder than it sounds. https://www.reddit.com/user/teivah