Vision 2020
It has become a ritual to checkpoint my career every so often and try to figure out where to take it next. It has helped me identify what I want to do and then get all the proverbial ducks in a row. As 2019 nears its end it's time to reflect on my aspirations and what progress I made. Also, I need to plan for 2020.
Reflecting on 2019
I couldn't build all the things I wanted to in Python. I had a bunch of project ideas but lack of time was a big hinderence. I was really busy at work in the last two quarters and I also took time to spend with my family throughout the year. I want to carry those project ideas into the next year and attempt to work on them.
Meanwhile, I built a lot of tools at work in Python and I'm proud of it. It wasn't just me; my team built a lot of awesome tools too. Together we learned a lot and delivered projects on time. The Python language and ecosystem lends itself very well to SRE teams on tight deadlines. This is the reason I just love Python.
Data analysis is something I wanted to do in 2019 but couldn't find time. It's something I still want to do. My long term goal is to learn the basics and build on them to do real, useful work at my day job to help improve how my team operates all the systems under our care. Data is unavailable at unprecedented rates to an SRE team but there isn't much these teams can do to make sense of it unless they invest a big chunk of time. I want to build these skills on my own time and my own pace. They are not required to perform my day job so I can build these skills according to my schedule. Data analysis also allows me to branch out in my Python skills which is an additional plus.
I learned more about Kubernetes, Helm, Istio, and Azure this year. I had a massive project at day job which required quickly ramping up on this stack. What really helped me was having an awesome team that helped each other make progress in all these technologies. We shared what we learned and we learned from others. Had we not done this, we wouldn't have learned as much and we wouldn't have delivered the project right on schedule.
A special shout out to a coworker who taught me, through his example, what real tenacity during troubleshooting is. I always thought I was a great troubleshooter. I have a track record of backing it up as well. But I'm nowhere near the league he's in. I am fortunate to work with him.
I travelled more in 2019 than I had done before. Spending time with family away from work and the daily routine helped all of us bond better. I am glad I have the support structure to be able to do it.
Preparing for 2020
My biggest goal in 2020 is to do most learning during business hours along with my team. I learned so much in 2019 by only learning what I needed to get the job done and then getting my team to teach everyone what they learned. This should help me be more available to my family, something I did very well in 2019 and must continue.
In 2020 I want to focus on learning Go at my day job. There are no longer the deadline pressures of 2018 and 2019 to make Go non-viable. I want to contribute to open source projects written in Go in 2021 and beyond. But I want to limit my learnings on the job. The reason is that I want to continue the great precedent we set as a team of helping each other. Also, at home I want to do different things, not just continue on the same things I do duing business hours. For example, at work I'll write Go and at home I'll build my data analysis skills.
My long term goal is not to replace Python for scripting with Go but to learn Go by replacing small tools and then "graduate" to writing longer lifetime tools (like services). To learn faster it's important to do everything in Go even if Python makes more sense. Once that initial learning curve is surmounted, back to Python for scripting where it shines.
I want to build more Kubernetes native tools and systems. This will require more focus on Linux, containers, Kubernetes, Go, and cloud networking. I may have to bring some of that learning time into my own time but hopefully not a lot. I'll try hard to keep these activities within business hours.
At home I plan on building my data analysis skills. Given the hard schedule on 2019 I'm not expecting miracles in 2020. I'm focusing on small steps.
In home projects I will continue to use FreeBSD for my web hosting & OpenBSD on home network. Both these projects have made my life so much simpler. It did take me about three years to finally get everything the way I wanted using these stacks. It was an exhilarating experience which was very frustrating at times as well. Now that I have a good grasp of how they solve my problems, I want to focus on other things and keep these stacks chugging along without much tinkering.
Deferring to 2021
A year may look like a long time, but as I saw in 2019, can go by really quickly. This is why I'm deferring a lot of things I want to do in 2020 to 2021.
Ubuntu looks amazing with support for ZFS, Raspberry Pi 4, and other modern things. Hopefully I will get a chance to play with this stack at home.
Once I have a better grasp of Go at the end of 2020, I want to build more on Raspberry Pi with Go.
I did dabble in Dart a little but delaying it until 2021. Swift is also a great alternative and will decide between them in 2021 or beyond.
Unikernels might be fun to play with, especially with Go.
WebAssembly also looks great but deferring it as well.
Conclusion
I am excited about building more things in Go. At day job I will get plenty of opportunities to work with Kubernetes and I want to expand my skills around that platform. I also look forward to building up data analysis skills during non-business hours. I will spend even more time with my family.