Member-only story

As a Software Engineering Manager, a lot of people on my team had asked me: how can they become a Software Engineering Manager? And even some people have asked me: how can they become a CTO?
Becoming a CTO might be the highest level you can achieve as a Software Engineer. I mean, it might be higher levels than CTO like becoming a CEO or winning a Nobel prize for writing an ultra-compression algorithm and achieving world peace, but for now, let’s say you just want to become the Ultimate Software Engineer.
That makes me think of the UFC (Ultimate Fighting Championship), which is a company that promotes mixed martial arts, including but not limited to: Boxing, Kickboxing, Jiu-Jitsu, Sambo, Muay Thai, Karate, Taekwondo, and Judo.
For a fighter that only knows 1 martial art is almost impossible to win this kind of competency. The knowledge of multiple styles allows them to have a variety of options to choose from at the right moment to get the best results.
And I think that is exactly what it takes to be the Ultimate Software Engineer; to reach a good level of expertise in multiple disciplines. A person that can think on the best approach for any kind of Software necessity by choosing the correct components to use between a wide range of options.
What components? Well, is the year 2021 and at this moment we have 6 main pillars:
1. Back-end
There are a lot of options in this area, let’s check the back-end languages by popularity and highest salaries worldwide:
Which one do I recommend? Well, I can’t tell. First of all, I don’t know you, I don’t know who you are, I don’t know your background. But, let’s assume the following backgrounds:
If you are a Front-End developer with JavaScript background; you certainly want to try Typescript with Node.js.
If you are a DevOps engineer with a particular cloud experience check this diagram of correlated technologies, it will give you an idea of which cloud services are related to which languages (i.e. Azure is highly related to…