For those of you who don't know, I spent most of this past week at a conference in Chicago put on by my employer. This was a bit awkward as I was working out the second week of my three week notice with them. Nevertheless I went and a good time was had by all. During this trip I received a lot of unsolicited feedback from various co-workers most of which was positive and very much appreciated. Somewhere along the way, while discussing my impending departure for the umpteenth time, I reached an important conclusion: I am obsolete.
What do I mean by that? Well I essentially mean that when presented with the standards that my fellow professionals measure themselves by, I don't measure up. While I'm comfortable writing front end code and doing basic UX (well maybe) the bulk of my skills are dedicated to and have been honed by the years I've spent designing, developing and maintaining server side code. As a professional I'm more interested in back end APIs, threading strategies, concurrency, caching and database access layers than futzing with any of the flashy stuff on the front end. To me UX is noting more than a means to an end. For many though it appears to be the actual end.
Okay so while I work in the full stack, my emphasis is on the back end. Not a big deal right? Well that's just the start of my problems I'm afraid. Another point on which my colleagues and I differ is that of the cloud. To put it bluntly: I'm skeptical of the cloud and I don't like it. The reality is that the cloud really is just somebody else's computer. While cloud providers make it stunningly easy to spin up new instances and start using their services, none of this stuff is cheap. In addition to that, you really have no idea how well any of this stuff is being managed. If you are storing private data in a cloud service, you have no idea how secure it actually is. The one thing that scares me most about the cloud is how much people are willing to trust it by default.
So yeah, I prefer on-premise hosting. That's my jam. If possible, I'd prefer to run my software on a low powered device (e.g. a reputable ARM SBC) rather than some power sucking x86 box with a few hundred cores and a few terabytes of RAM. That's the kind of thing that excites me. I can already hear you asking, "How can you host a big cloud system on that kind of hardware?" My response to that is another question: "Why bother?" How are customers really benefiting from having their data housed in a system with a bunch of other people's data? Does it really make their lives easier? For the most part, it does not. Arguably it actually increases their risk factor as the bigger a cloud provider gets, the more of an attractive target they become.
This thought process really sits at the core of why I believe that I have become obsolete. While I have worked for cloud companies for years now, spreading the reach of "The Cloud" is not a mission that I really believe in. That having been said, I do love grappling with the technical challenges that arise from the kinds of situations that you are unlikely to see outside of the cloud. I literally spent the last year and a half designing and writing a load testing framework that gathers data, statistically analyzes raw data and provides live reporting of summarized results for huge load tests run with tens of thousands of virtual users. That was an amazing experience that I would not cease to repeat as I learned more in the last 18 months than I did in the five years prior to that.
Nevertheless as I prepare to move into the next chapter of my career I can't help but wonder how this incongruity will ultimately play out. Will I benefit from going against the tide or will I suffer for it? Only time will tell I'm afraid. The only thing I can say for sure is that I definitely didn't plan any of this. It just happened to work out this way.