I thought it would be useful, for myself, to reflect back on 2017. I haven't written anything since July 2016 so this will bleed into 2016 as well… or, at least the end of 2016.
2016 kicked off what turned into an interesting 2017 for us. 2016 started with a lot of grief as we lost our dog, Bandit. I've written about life with an aging dog before. Shortly after that, we decided we had to get out of the house and travel for a bit (we both worked remote at the time). That led us west to Denver where we stopped in to visit coworkers and then off to see family in Arizona. We settled in Denver for a few months before finally realizing our goal of living abroad. We moved to the Netherlands in October!
If you're an American and want to experience life as an expat, I highly recommend the Netherlands. I tell people that it's expat life with training wheels. The government's process is streamlined (they have an expatcenter in The Hague so that you have a one-stop shop for all paperwork and registration as well as a helpdesk staffed by volunteer expats). Plus, the people are friendly and willing to help and, in the cities at least, everyone has a strong command of English. While you should learn Dutch and absorb Dutch culture, you won't feel like you'll drown in the meantime.
However, even with the training wheels, we found our first few months living abroad to be rough. Finding a new routine, adjusting to the lack of sunlight in the winter, and figuring out food labels are all small things but they can wear on you. We were fortunate to spend Christmas with friends in Hamburg, Germany.
Life became infinitely better heading into spring of 2017. Sunshine, knowing enough to buy laundry detergent instead of accidentally buying fabric softener, and building new friendships all helped immensely. I feel like we've gained a bit of resiliency.
That helped when I unexpectedly lost my dad in September. My boss and company were nothing short of amazing in helping me deal with the tragedy. My wife and I hopped on a plane with no notice and went back to the US for two weeks to grieve and reminisce with my family. I still don't know that I've fully processed everything, so there may be some future writing…
Enough with the personal stuff…
Professionally, I've stepped into a team lead role. Moving from IC to line manager responsibility has been a growth opportunity for me. My manager has been great at mentoring and I've found myself turning to more blogs and books on management and leadership than tech lately. However, I've recently rekindled a joy for programming that, frankly, I haven't felt in a while.
After you're 20 years in the industry, even when you're learning and keeping up with your field, and even if you're playing around with other languages and platforms, things can start to feel… tired. When I first started programming, I was playing with things like C (later Java) and writing stupid little toys. A Finger client, a TCP echo server, a multi-threaded SMTP sender (which led to a fun discussion with the mainframe email admin at university when I needed help deleting the 100k email messages I had sent myself). I've found that joy again in golang. I don't know if I'll ever take it into business apps, but I do know I've been having a blast playing with it. My first project, of course, was a TCP echo server.
I've been fortunate to have a friend and coworker help me with my Go journey. I'm hoping we'll jam together on some substantial open source in the future.
One interesting side-effect, for me, of being interested in programming again is that it's gotten me interested in writing again as well. I have no Google analytics and no server logs. So, frankly, I don't know if anyone is reading. But, it's useful for me to have a space to think out loud.
- Dig into Golang more
- Burn my fingers on Elixir
- Finally, finally write one of my, frankly, brilliant ideas. Because I think it has merit, I'll probably write it with C# on .NET Core using some event sourcing (ES) and command query responsibility segregation (CQRS) because there's a lack examples in the .NET space that encompass a whole application.