Let me be honest: I'm drowning in a deluge of information, but I'm convinced that these are the kinds of interesting problems I want to work on moving forward. I'm caught between trying too hard to focus on the theory/literature (which is a time-consuming endeavor) vs duct-taping systems that I may not fully understand the tradeoffs of (which feels haphazard). Is there a middle ground? Is there a sane way for an app-developer-by-day like myself to work out a solid understanding of these concepts so that I can build these systems with a degree of confidence? A colleague recently recommended that building out my own simple distributed key value store would force me to learn a lot of things in the process (consistent hashing, leader election, MQs, Merkel Trees, Vector clocks). Does HN have any such recommendations and motivating projects to kick things off? It could advice to build something particular or some repo that I should study intently to glean insights from.
[1] https://aphyr.com/posts/291-call-me-maybe-zookeeper [2] https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying [3] http://book.mixu.net/distsys/single-page.html [4] http://research.microsoft.com/en-us/um/people/lamport/pubs/pubs.html [5] https://www.youtube.com/watch?v=BKqgGpAOv1w