2018 in review

An unusually busy holiday break made it difficult to reminisce about the past year in any systematic fashion, but I decided to have a stab at it anyway for tradition’s sake.

Things weren’t improved by a persistent flu I managed to repeatedly worsen by going out to meetings in cold places, so this wasn’t exactly the best holiday break ever, but family-wise it was more than good enough–I just didn’t have much time (if any) to do the stuff I intended to do at my leisure…

Work, Cloud and The Industry At Large

Work remained hectic this year, but has taken a few tiresome turns that sapped my motivation and interest at times. The background story here is that cloud is going mainstream in a big way, but getting things up there is a constant grind, and I’m really tired of tiny, cookie-cutter projects in a tiny market.

In essence, I miss two things: working on international projects (I’m in several circles where I spend more time with colleagues from abroad, but seldom in actual projects), and owning the end result–i.e., running a product pipeline and a business.

Which means that setting up my own business is more appealing by the day, but the Portuguese market is simply too small, even with the Web Summit hype, so I’m biding my time and exploring new things to replenish my enthusiasm.

Working at Microsoft does provide me with an unusual perspective, and I try to make the best of it in that regard. The GitHub acquisition made for some good moments, as did Meltdown and Spectre, which were… interesting. Watching both kinds of events unfold inside a major cloud provider made for some fascinating learning experiences, and I often muse about future consequences in terms of technology choices and their impact on how we do computing at large.

To some degree, I’m really happy to not have gone into security. GDPR, on the other hand, was (and still is) largely a dumpster fire. I have an entire e-mail folder dedicated to GDPR notices (well over a hundred of them), and yet it still amuses me to see which companies I most certainly deal with (on a personal level) who’ve made little or no effort to get in line.

Kubernetes

I can’t seem to called to help out on anything infrastructure-related that isn’t related to Docker and Kubernetes somehow, and it all boils down to whether you can actually re-architect your apps properly (which, in most cases, often involves figuring out ways to fit in legacy components).

In my case (at least and so far) it’s seldom been about scalability but more about future-proofing and DevOps, although I’m getting a bit tired of the amount of incidental complexity involved at times, since agile has come to mean a lot of things that container deployments do essentially nothing to address when taken from a purely technological perspective.

After eight years of using containers myself, I am more and more certain that we’ve barely scratched the surface of what can be done, but a bit less confident that Kubernetes is going to take the world by storm–there is a lot of low-hanging fruit in terms of deployment and lifecycle management that it is too complex to tackle to my satisfaction.

Machine Learning and IoT

These are two other things I do a lot as part of my work–either riding the hype cycle rollercoaster or debunking it. And yet, despite some work with Tensorflow, I have little of public interest to report on the first (a lot of ML work is data-intensive, and those are usually the more interesting bits, and take the most time to get right).

But thanks to the second I actually found the time to do some hardware-related projects over the course of last year, and had the good fortune to mix and match both work and leisure time to do some interesting things in the IoT space.

Besides my growing collection of Zigbee sensors, Raspberry Pis and ESP8266 development boards (which, ironically, I now develop for on a new 3B+, which is my lab “desktop”, I am now the local Azure IoT champion, which provided me with the time I needed to delve deeper into “real life” IoT.

I got an Azure Sphere MT3620AN MCU and an MXCHIP AZ3166 (which is very nice and matches the micro:bit expansion connector) and used them for a few customer engagements.

Although I have (as yet) very little to report on a personal level, they’ve been interesting devices to work with–if I can find the time, I’ll try to write a bit about each of them.

Home Office and Personal Gear

My home office had a number of upgrades this year, the most notable of which was that I got an iMac back in February, after 8 years of using a Mac mini as a desktop.

Although I am quite fond of its 27” 5K display, I’m still not sold on the form factor, and if I knew what the new mini would turn out to be like (after its 1475-day stint in limbo) I would probably have waited, got that instead and shopped around for a matching set of LG monitors.

I’m not unhappy about how things turned out, but am getting really tired of Apple not having any sort of hardware roadmap besides shipping a new iPhone every year. Oh, and an iPad Pro every now and then1.

Speaking of which, I am much happier with my iPhone XS than… well, just about any other piece of hardware, really (and I recently got a new work laptop I intend to write about when I find the time).

The camera has a few quirks (and I’ve yet to sort out my workflow to deal with Live Photos to my satisfaction), but the thing runs like greased lightning and I’ve caught myself enjoying YouTube videos on it, which is a first for me on any phone.

It does, however, have a fatal flaw that I can’t forgive Apple for: it does not have an USB-C port, and is fast turning into the one special snowflake I hate having to carry around a different cable for.

Personal Pursuits

I don’t think many people ever get to celebrate fifteen years of anything these days, but I am quite satisfied with having run this site for that long, as well as having finally moved it to Python 3 and got archives going.

Nothing much has happened on the photography front since March, and although I invested some time in darktable, it is still borderline unusable on macOS, so I gradually shifted to using Affinity Photo for editing, and am reasonably happy2 with it other than the lack of some form of asset management.

I ended up dabbling in home automation more than a fair bit than I anticipated–I will be writing a bit more about that, but let’s just say that after a while you need to devise strategies for lowering maintenance time, and I’m now optimizing away a few components and investing a bit more on Zigbee.

Another surprise was that I had a lot of fun playing Quake again after all these years, which is something I hope to keep doing every now and then (if at most once a month).

But, overall, my biggest hobby is still reading. Thanks to an intensive bout of reading over Summer, I ended up diving into more than 60 books this year, which felt wonderful and was a welcome distraction from the idiosyncrasies of work.

By far the most significant of those was Why we Sleep, which confirmed a lot of what I had been observing by using AutoSleep. As I get older and crankier I tend to be more interested in ways to age better and improve my quality of life rather than traipse around willy-nilly, and one of the things I haven’t been doing is sleeping well (either due to work concerns or to various minor ailments like sinus trouble and neck aches associated with RSI).

Lack of proper exercise (which I make a stab to fix after every Winter) has a role here, but I ascribe most of my sleeping troubles to stress, and my current focus on finding new hobbies is a different angle on tackling that.

Stuff that fell by the wayside

Well, for starters, I never managed to go deep into Kotlin like I expected to. With the emphasis on containers, Kubernetes and serverless, I ended up doing much less traditional back-end stuff than I expected and spent entirely too long dealing with Node JS dumpster fires.

Given that both Node and .NET Core play critical roles in a lot of what is done in Azure these days (the former quite regrettably, and the latter in much more interesting ways), I can’t see myself doing a lot on that front right now, and deplore the lack of opportunity to do more development at scale.

I also haven’t written much about using Azure in general, because although I do take the time to make reusable (and reasonably agnostic) projects to help other people use Terraform, go the extra mile and use asyncio with Azure Storage, and (in general) take better advantage of DevOps/automation processes, day-to-day work simply does not afford me the time to do much writing.

Ironically, although this kind of thing is highly valued in Microsoft at large, it is routinely squeezed out of our priorities and forgotten about at a local level, and what little writing I do tends to be reserved for weekends and for my own stuff.

Another thing I haven’t been doing much (both personally and professionally) is learning new technical stuff in depth and as a matter of course, other than circumstantially and ad hoc.

So after a thousand days I am becoming tired, not of the role I have at Microsoft (although I miss having a team), but of the circumstances I have to perform it in, and of how it limits my ability (and time) to learn and do it better.

I did do a lot of IoT and ML work this year (and learned tons within a few strict domains), but in general I have to rate this year as a bust in terms of personal growth3.

Next Year

I don’t have any big plans (well, I do, but they’re strictly under wraps). For now, my priorities are going to be to take a more systematic approach at learning the stuff I want, and to sleep better–not necessarily more, but towards having better days in general.


  1. That is the single most remarkable Apple device of the year for me, and I suspect I will be getting one, given that my iPad mini is getting very long in the tooth. But I am trying to put it off until my budget recovers from this Christmas… ↩︎

  2. I can’t use it on any of my own iPads (the mini 4 is, bafflingly, unsupported), but it shows promise for whenever I upgrade and (eventually) tackle moving my photo workflows to iOS↩︎

  3. I breezed through work training requirements largely based on what I already knew, and even though I got a few new arrows under my quiver certification-wise and spend a lot of time explaining things to people as part of my work, I just need to learn more and do more meaningful work to be happy. ↩︎