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.