Two weeks ago now, my beautiful baby girl, Ellie was born. As such, I'm on some parental leave. Until getting back to work, my first duty is to my daughter, however, I'm using this as an opportunity to reflect on where I want to take my career and find ways to renew the joy I feel when I develop software.
Usually when I get into this sort of mood, I attempt to pick up a new language stack, or develop a game, or build a new website (this is one of those).
However, I've had enough years of experience now that I know this isn't enough. I'm now enough of a polyglot that programming language is largely a switch of conventions. I like playing games more than developing games. And building websites is more of an exercise of my basic skills than an entrepreneural endeavour for me.
So I hope to use this time instead to deepen my knowledge of areas in ways that will allow me to become a deeper technical expert.
To start with, I intend to take on a (hopefully) small project - building a JSON Parser from scratch. This gives me something to warm-up my deeper thinking skills.
Next I'll move onto "Designing Data-Intensive Applications" by Martin Kleppmann. As part of this I'll work on a Key-Value store with Write-Ahead Log (WAL) and simple crash recovery.
Finally I'll try and implement the Raft Consensus Algorithm to attempt to make my KV-store distributed.
I hope working through these topics will allow me to more clearly see and tackle the challenges in distributed computing and sharpen skills I normally absorb gradually as part of my work!
Tags: posts,personal