I began developing software back in middle school. By high school, I earned my first income from it. Over nearly 20 years, I’ve served as CTO for three different companies—a journey filled with invaluable lessons. Here are some insights I’d like to share, hoping they might help you too.
How to Go Further
Be a Generalist or Specialist
As an engineer, you can choose to either broaden your skillset as a generalist or specialize deeply in a narrower area of technology.
Over my career, I’ve worked with multiple programming languages.
I started with C and C++, then earned my first income using PHP and C#. Today, I write code in JavaScript, PHP/Go, and Python. I’ve also created projects across diverse fields: 3D games, web development, deep learning, computer vision, data processing, DevOps, and more.
I’m not an expert in any single domain, so my abilities are limited. I know there are always more talented individuals out there.
However, I can independently develop complex products and collaborate with experts when needed to achieve even better results. As a CTO, being a generalist has been a huge advantage. Early on, I built platforms myself until we had the resources to hire experts and scale the team.
Today, my team consists of both generalists and specialists, each excelling at solving different problems.
Note: This is a subjective perspective, so make sure being a generalist aligns with your goals.
Stay Passionate
To excel, you must be passionate about what you do.
Find what drives you to code for hours on end. That passion will fuel your journey. For me, it’s about learning and creating new things. Just reading about new technologies and imagining their potential excites me, let alone the rush of starting new projects.
Pursuing this passion and exploring the unknown has taught me a lot—and it still does.
Be Bold
Experiment, explore, take risks, and make mistakes—this is the only way to learn and grow.
Most people prefer to play it safe, avoiding risks. By being bold, you already stand out—sometimes for better, sometimes for worse. But I believe it’s worth it in the long run.
For instance, I started using Node.js before it became mainstream—even before its first major release. At the time, people thought running JavaScript on servers was absurd. But I learned it anyway. When the technology became popular, I already had experience and a significant competitive edge.
On the other hand, I also bet on Web Components and Polymer. Ten years later, they’ve yet to gain traction and are mostly obsolete.
You win some, you lose some. But every risk teaches you something and brings you closer to greatness.
Plan Well
I wish I had done this more often in my journey.
Taking the time to plan before diving in can save you a lot of trouble. I tend to jump straight into coding, solving most issues along the way.
While this approach works, proper planning can often be more efficient. So take time to plan, research, and identify the right tools and solutions before you act.
During research, you might even discover technologies unrelated to your current problem but valuable for the future. Take notes and revisit them when you have time.
The "9-to-5" Myth
If you want to stand out and become exceptional, the concept of a strict 9-to-5 job is a myth.
This doesn’t mean overworking yourself; it means investing extra time in learning and growth. But hey, if you’re passionate about it, you’ll enjoy the process anyway, right? 😉
Jokes aside, build side projects, work overtime occasionally, and experiment with new things. If everyone else sticks to 9-to-5, you’ll need to go above and beyond to grow faster.
For me, it wasn’t easy. Early in my career, I worked full-time during the day and spent nights and weekends on side projects, often getting less than five hours of sleep. Even now, my work hours extend well beyond the typical 9-to-5—but I’m currently focused on a single project, which helps me stay efficient.
Stay Up-to-Date
Throughout my career, I’ve learned that staying updated is crucial for staying on top.
You need to keep up with the latest trends, tools, perspectives, and methods. As the saying goes, “If all you have is a hammer, everything looks like a nail.” The more knowledge you have, the more problems you can solve.
Final Thoughts
These principles helped me achieve my career goals. Make them your own and adapt them to suit your aspirations.
Every journey is unique—let’s enjoy it together!