It's that time of year again to look back and reflect at everything you've done and achieved, and to make plans for the next year. 2016 was a pretty big year for me, both personally and professionally.
In the end of August 2015 I moved back from Iceland to the Netherlands, with my Icelandic girlfriend. I started my own company so I was able to keep working for my Icelandic employer Gangverk, working from home. One year later, in September 2016, I decided to start working for myself as a freelance developer and quit my job of almost 5 years.
Also in 2016 we moved within the Netherlands, back to my old hometown of Groningen where all my friends live. We're renting a beautiful apartment in the downtown area and couldn't be happier with our newfound social life.
Working from home
I've been working from home now for almost one and a half years. Overall I like it a lot, but it does have its challenges. For example, it does get lonely and boring, I do miss having colleagues to talk to, bounce ideas off of, rubber-duck my problems to. It's also pretty easy to get distracted - although on the other hand I absolutely do not miss the old open office environment. I might have more distractions, but they are much easier to control. When I am in the zone, I can work for hours and hours without interruptions.
I do want to rent an office space somewhere pretty soon, to get away from the distractions at home, and to have a clearer separation of work and home. I'll still work plenty from home since I like working throughout the day instead of 8 consecutive hours, but at least I'll have the option to flee to an office, put my head down, and get shit done.
Being a freelancer
Lots of good developers think about quitting their job and starting their own company. The dream of choosing your own clients and earning big bucks also got me. I've been thinking about doing this for a long time, but also too afraid to actually do it. What if you don't get projects? What if you get sick? Maybe it's better to earn less money, but it's guaranteed to come every month, etc etc.
But, in the end the dream was too big to ignore. I won't lie, the beginning wasn't easy. In the first three months I only got two small part-time projects, just enough to pay the bills when the savings ran out. It turns out that it takes a pretty long time for clients to go from “let's talk” to actually starting a project. If you're thinking about starting for yourself, make sure you have enough saved up to last 3 or 4 months without any income.
I did get my first proper project early December, which gives me plenty of time to line up the next client. It's good to not have to worry for some time.
I think 2016 was the most productive year for me ever, learning wise. I've used React, React Native, Redux, Jest, Elm, Flow and Swift all for the first time this year. I also looked into Elixir, Phoenix, GraphQL, Apollo and RethinkDB.
I got way more into unit testing, continuous integration and continuous delivery, first using CircleCI but now as a very happy Semaphore customer. I'm even using it for this very website: push a commit and a new static site gets built and deployed automatically.
An even bigger change then all those new frameworks, libraries and languages is my overall move to functional programming. I've started to really embrace pure composable functions, immutability and testability. Working on a big complex Angular app for two and a half years and plenty of iOS apps with lots of state, I knew the problems of state management. I just didn't really know how to deal with it, until I started to get serious with React and Redux first, and Elm later on. Elm also got me into Flow and made me decide to pick up Swift for my current iOS project rather then sticking with Objective-C.
A couple of years ago I started raml2html, a Node command line application that turn RAML API docs into nice HTML pages. It got quite popular, it's by far my most successful open source project. Sadly I stopped using the RAML format myself and was unmotivated to continue to spend my free time on a tool that I don't even need or use myself anymore, and so early 2016 I handed over the reigns to a new maintainer.
A couple of months later, just as I started working as a freelancer, the RAML Workgroup offered me to work on the next version of raml2html, but for an hourly fee. That was very cool and as a result version 4 was released not too long ago. I am still looking for active contributors though, I don't want to be the only one maintaining this project (I still don't use it myself). So if you're a user, please contact me if you want to contribute!
On a personal level
I finally bought a piano. I've wanted to learn a new instrument for so long (having played the drums as a teenager), and decided to just do it. I've used two iPad apps to teach me how to play the basics: SimplyPiano and Yousician. Obviously I have long way to go, but it's a lot of fun! In 2017 I probably want to get proper music lessons.
Looking forward to 2017!
In 2017 I definitely want to look into Vue, Reason and Eve. I also finally want to take a proper holiday; this year I took my girlfriend for a short trip to Poland, but next year I want to go to Reykjavik, Stockholm and Berlin. And maybe to New York, we'll see how the projects go :)
I'm also planning to get my motorcycle license, continue learning the piano, and getting healthier. I've already banned almost all sugar, but I need to move my ass and lose weight.
Overall 2016 was an awesome year for me as a developer - I started my own company! I've learned so much! Next year I want to reap the rewards, take some more trips, get a motorcycle, get healthier. It's going to be great year!