What I learned in 2017
If you've got two hours to kill the next few days write up "What I learned in 2017 doing X" and put it somewhere where people can read it. (Ideally publicly, but I understand that doesn't work for everyone / every job / etc.)— Patrick McKenzie (@patio11) December 30, 2017
If you only have ~10 minutes, tweet it.
Inspired by this tweet, I want to reflect on the past 12 months and set some goals for 2018.
Agile Results #
One of the main thing I did this year was to start using Agile Resuts again. "Agile Results" is a productivity system developed by J.D. Meier that draws a lot of its inspiration from Agile methodologies.
I read the book a few years back and started to use the methodology, but after about a year I abandonned the habit.
This time, instead of reading the book, I used J.D. Meier's "30 days of Getting Results" course to get back on track. I'm using Trello boards to manage my daily outcomes, weekly results, hot spots, and other concepts of the method. It's now my main system to organize my life, work and side projets and I'm very happy with it. It helps me get meaningful outcomes and fight procrastination.
Next Step: Read "Chapter 9 - Design Your Year" and come up with 3 great results for 2018.
I won't enter into too much details about what I do at work but I'll outline the technologies I worked with the most in 2017.
I spent most of my coding time doing backend development with ASP.NET Core. I like the framework a lot and I'm looking forward to the 2.1 milestone that will bring the new SignalR library.
I started using Azure Functions more and more for serverless computing. I already liked WebJobs for running background tasks but they were very cumbersome to deploy and manage. Functions is the evolution of WebJobs and it is now a first class Azure service.
I delved a bit into operations research by playing with Google Optimization Tools and I began to learn CPLEX CP Optimizer, a constraint programming optimizer, for solving task assignment and vehicle routing problems.
I did less frontend development in 2017 and I barely touched mobile development.
Next Step: In the next month or so, I want to try Itinero for building our routing services.
Tech Lead #
Beside coding, I also transitioned from a senior developer role to a Tech Lead role. The responsibilities of a Tech Lead are very broad, and in 2017 I focused on elaborating the technical vision for our product, and on improving our engineering practices.
With my Tech Lead hat on, I took a DevOps course on Lynda.com in an attempt to better grasp the core concepts and principles of the movement. I am now trying to introduce some of these principles to my team, starting with the culture. It's a long journey that will continue in 2018.
I also kinda took the role of Scrum Master on my team. The position was vacant so I seized this opportunity to strenghten our Agile practices.
Next Step: I want to become a better Tech Lead by working on my leadership and management skills.
Personal Projects #
I accomplished less than I had anticipated in 2017, and I focused mostly on family life with the arrival of baby #2 in March.
I explored F# a bit and did a presentation at work. I like the language but I have currently no plans for using it. However, I am interested in functional programming, so
after seeing John Carmack casually mentioning that he read SICP in order to learn functionnal programming, I decided that I should try too!
It's challenging and I'm not progressing as fast as I would like, but I want to continue this effort in 2018.
Next Step: The other personal project I started in 2017 was this blog and I want to make it my main focus throughout 2018.
To wrap this up, in 2018 I'm going to focus on becoming a better Tech Lead at work, while blogging as much as possible on my free time.