--------------------------------------------
 Automate all of the things
 2018.01.08 13:09:50 CET
 --------------------------------------------

 Happy New Year to all readers!

 For some unknown reason, I started this year with an unusual amoun
 of energy and motivation towards reaching my yearly goals. Last
 week I planned my first quarter and started implementing my plans.

 One of my professional concerns for some time is how locked-in I f
 with the tools, practices and technology we use at work. It's no
 mystery, after 10 years in the same company it's expected one woul
 develop a deep understanding of the "internal" matters.
 Unfortunately, I feel the downside to this knowledge (which is
 definitely useful; don't get me wrong, I'm not complaining about
 having it) is the disconnect with the outside world and practices.

 So I decided to look outside and start applying the ideas and
 principles we have at work on my personal life. This aligned very
 well with one of my previous posts - when I remember how tiresome 
 can be to manage your own infrastructure.

 The first idea I implemented this week was to automate all of my
 personal projects. I've always done the responsible thing and used
 source control for my projects, but I left integration testing and
 deployment as manual tasks. For example: the code for my blog live
 in a Git repository. I used to build it with Hugo and then deploy 
 to my server manually.

 This week I implemented Continuous Integration and Deployment for 
 of my personal projects. Of course the time savings from this
 automation is small, but that was not my goal. My objective is to
 learn what tools other developers are using for CI and CD.

 I really enjoy the result: now all my interface with these servers
 through my VCS: I can make changes locally and once tested
 individually locally all I have to do is check them in. The
 automation takes care of running any integration tests, building,
 deploying and testing a canary and, if successful, deploy to
 production.

 Another side-effect of this reduced contact interface with the
 services is the simplification of my workstation setup: for normal
 and usual changes, all I need is the VCS tool and a compiler for
 example.

 One item on my quarter objectives done.

 I hope all of you had a great start of 2018 too!