As I was progressing in my career, from being a beginner in web development to leadership positions in a global company, it was always hard to understand what kind of skills I needed to develop in order to move forward.
Same goes for the moments when I was interviewing candidates for various positions within my teams. How could I understand that they had a proper balance of technical skills and soft skills as well as proper mindset?
Do you need to try to catch up with all modern technologies within your profession, or be focused on one specific area and be excellent in it?
So let’s try to answer those questions and create a simple career development model that you can use as a guiding point as you move forward.
Note: I appreciate that the seniority levels and job titles used below may not align 100% with your organization’s structure. Simply use them as reference points for your career and progress.
To give you a clearer picture, let’s use the widespread and simple model of the T-shaped skillset.
So every professional has:
Keep in mind, this is an “average” representation of the career path. But we’re all not average, right? So make corrections according to your strengths and weak points as you go.
So you were lucky enough to get hired as “Junior [your tech] Engineer” after several years of intense learning. Very likely your T-shaped skillset looks somewhat like this:
As a graduate of university/courses, you have some basic understanding of the fundamental disciplines. Your soft skills are good but if it’s your first job you still don’t have an understanding of the “corporate” culture and how to behave in certain situations.
Your main skill is at the level that you can do something not really complex under supervision. And this is the main characteristic of the Junior engineer I would say.
As you grow within your company and get more experience in commercial development, you shift your diagram to something similar to this:
Usually, it’s possible to almost double your main skill set in the first 1–2 years, get some understanding of the work your colleagues (with different specialties) are doing and enhance your soft skills.
Now you can do almost everything under the supervision of a more experienced colleague. Check if you can say this about yourself… Be honest.
This step is much harder to do compared to the previous one, as you really need to make a shift in all of the areas. If you succeeded — it should look similar to this:
Same as above, you really need to develop your main skill, as it will be a foundation for your future career and give you the ability to be secure in the competitive market.
Here you also usually need to develop the fundamental disciplines a bit, as they are necessary to solve the most complex tasks and write effective code. So it’s time to dust off those books about Computer Science, networking, algorithms, etc…
Your new description: this guy can do everything w/o supervision (and can supervise others) if there are requirements available.
It’s also worth mentioning that this is the right time to start practicing mentorship. It will help you to strengthen your communication skills as well as polish your main skills.
At some point, you will be asked to kick off a new project and gather a team or become a leader in your current group. Or you may move to another company and obtain a higher position. And the trick is, this is only the beginning of the story.
Now you usually need to learn a lot of new things really quickly. And “surprisingly” after all this mess with learning and adaptation period your skills will look something like this:
No progress in your main discipline, at all!. In fact, you may even lose some sharpness there, but let’s be optimistic.
In this new role, you really need to progress in your soft skills as you now need to take care not only of yourself but also about the whole team. Your main goal is to ensure that the team works in the most effective way possible. So you are not obliged to work within the team, but you must work on the team. This includes things like optimization of internal processes, facilitation of task discussion and planning, helping team members with their self-development, etc.
A critical aspect of responsible leadership is taking care of your employees. PayPal CEO Dan Schulman once explained, “When I think about multi-stakeholder capitalism, and the responsibility I have to multiple constituents, the most important one to me is my employees. Our workforce is the biggest single competitive advantage we have, and I think there are two things that attract employees to a company: one is your mission and values, and the second is the ability to feel financially healthy and secure.”
You can even stop coding (which may not be a good idea as you will lose your skill completely) if your team performs well.
And try to lead by example and constantly grow your team members.
At this stage, you usually need to make a decision about your future career. Are you a more technical person that wants to keep coding forever? Or do you want to become a manager and pursue positions like Director of Engineering, CTO, or CEO?
At this position, you will be actively interacting with stakeholders in order to envision, model, and provide initial designs that can be built by the team, as well as validate more low-level decisions made by the team. So you need to improve your fundamental knowledge in order to be able to make objective decisions that are based on facts and knowledge rather than experience and feelings.
Also, I would say that architecture is not only about technical systems design but also about people. You always need to account for the people you work with, and the resources you have (e.g. it’s usually a bad idea to suggest using the Rust language if you have a team of Go developers). And even if you have a chance to build a brand new team, you should be able to form proper position profiles and hire the right people.
So you should really progress in your understanding of the overlapping disciplines and the ways different specialists collaborate with each other in order to design a system that can be built by the people you have (or will be able to hire) in optimal time. And yes, sometimes it’s ok to sacrifice technical excellence in order to make solutions “doable” for your team.
If you selected the “alternative” way for your career, I have a surprise for you… this is how your skills will look soon:
In this new role, you really need to progress in your soft skill set as you won’t be doing a lot (if any) hands-on work now. You will be delivering results with the help of your team(s) and you should be able to keep them in shape, help to solve issues, improve the skills of the individuals, find the right people, etc.
Consequently, you’re going to lose some of the deep knowledge you had before as your knowledge will become outdated and your mind will adapt to a new type of work.
As you progress in your career path, the qualities needed to obtain the next position can be really different from what you currently have, as well as your responsibilities. So I would generally recommend reading not only literature that is related to your current role, but also things that your boss and colleagues from overlapping areas read.
As for the race to catch all ‘hype technologies ’— I would recommend staying up-to-date with all the new tools and products in the field of your deep knowledge, and familiarize yourself with the technologies that have come out or come close to the “plateau of productivity” in overlapping disciplines. This will allow you to stay on-trend while still being focused.
I wish you all the best in your self-development process and career success.