My friend Gabriel Garcia Marengo shared a great article by Arthur Brooks a few weeks ago, and it prompted me to reflect on how developers cope with age. This is not a new subject for me; but it is one that, as I approach the glorious age of 50, becomes more and more present in my thoughts.
As Mr. Brooks says in his article and video, professional decline is unavoidable. In the software development world, technology moves so fast that the usual recommendation of specializing in a single technology, is a double-edged sword. Specializing is a great idea in the short term, but can be a terrible curse in the long run.
I, for one, have chosen to embrace being a generalist. I love knowing a bit about everything, and that has certainly helped me in my career, which can be roughly sketched out as a continuous hyperjump from one technology galaxy to another, following the market and the opportunities therein.
The first large-scale technology keynote I watched online was the introduction of .NET by Bill Gates in June 2000. Watching that keynote, and then installing the first beta of Visual Studio.NET in August that year, it dawned on me that my career as a “VBScript developer” was over. Here was Microsoft telling everybody, “this is the new place we’re going”, and although I had not seen such a thing before, I could feel the winds of change and the rug being pulled under my feet.
Lo and behold, 2 years later I found my first job as a C# developer. In the meantime I taught myself as much as I could about .NET, went to Microsoft events, installed every single Visual Studio.NET version I could, and my career moved on.
But I must thank my curiosity once again; because just as I was working with C# and .NET, I bought an Apple iBook G3, and started learning about Objective-C in the evenings (I know, I didn’t have much of a social life back then. I give you that.)
And by 2007, when the iPhone emerged as the hottest technology in town, and Microsoft was drowning under the incompetence of Steve Ballmer, I started a business making iPhone (and later Android) apps full-time.
I stayed in this galaxy for 10 years, until 2018. But during that time I also watched the emergence of Docker and Kubernetes; mostly because many iOS projects I worked on required a small backend, too, so keeping up with “server-side” technologies was a must.
And, when I moved away from the iOS and Android galaxy… I ended up in the Docker and Kubernetes one.
In a way, I did specialize, but only for smaller amounts of time. I was a VBScript specialist for 4 years. I was a .NET specialist for 8 years. I was a mobile app specialist for 10 years. And now I’ve been a working exclusively with Docker & Kubernetes for almost 3 years.
These days I can rely on all of this baggage of 25 years of experience and follow what Arthur C. Brooks said in the article above; I reached a point where I can teach and “connect the dots” across galaxies, find similarities and divergences. De Programmatica Ipsum is, to a large degree, an expression of that situation in life; not only mine, but also that of my friend and co-author Graham.
(Speaking about Graham, he dives in such “dot connecting” experiences in his Twitch channels DosAmigans and ObjCRetain together with Steven Baker. Check them out.)
These days I am familiar and fluent in various programming languages at once; not that I’m an expert in any of them, but I can recognize their mutual advantages and suitability for different problems. I have witnessed in person quite a few historical events in our industry. I have been even able to smell the evolution of technology a few years in advance.
And, to be honest, it’s no miracle of me; it’s actually because all of it is just a little bit of history repeating. Reading about the history of computing has actual, tangible, benefits.
Being a generalist is like being able to finish a decathlon decently and survive the experience, instead of being a 100 meter olympic champion and subsequently retire at the age of 30.
Some people want the gold medals on their shelves. I prefer to look back and be happy that I was there, and that whatever happened, it happened, and it was good.
Docker and Kubernetes have already both reached the point of commodity, and they are at the peak of their popularity right now. It is going to go down, inexorably, and will be replaced by other things. This is just me preparing for the “next big thing”, learning other new things and being curious as always.
And reading these words you can see the thing I’m actually specializing in: developer relations and communications. Whatever technology life throws at me, there’s always going to be people interested in learning about it, and that’s a lifetime opportunity.
Tech moves on, but people stay.