* Finally understood the concept of lifetime in Rust.
* Learned Go programming language. I loved it, but wished it had generics (waiting for Go 2).
* Golang - I built a simple key-value store based on Raft consensus protocol.
* Golang - I also built a distributed hash table with Kademlia.
* Did some lock-free programming in Golang to implement Lamport timestamps.
* Learned Docker and Kubernetes. I also dived into concepts that are behind Docker like namespaces, cgroups and securing them.
* Learned to use Terraform and AWS.
* Learned some Elixir - haven't done anything serious yet.
* Learned Ruby, Python and some shell scripting - I still look up stackoverflow a lot here. I use them to automate some boring stuffs during development. (like I needed to setup cluster configuration every time I try running the Raft based KV store).
* At work, I learned the Spring framework and a few details about its internals. I got a few questions like - is type erasure a lie? it is just that getting generic types is not so straightforward!
* Played with MongoDB and Node.js - implemented a simple expense tracker backend.
After all of this, I decided I'm a bit overstretched and decided to stick with building cloud/distributed systems mostly with Golang and learn Docker, K8S.