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 to understand that he/she has a proper balance of technical skills and soft skills as well as proper mindset?
Should you 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.
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.
Basic model
To give you a clearer picture, let’s use the widely spread and simple model of the T-shaped skillset.
So every professional has:
- Some fundamental knowledge that is related to the professional area. Without this it would be extremely hard to build up your career. For example, to become a Machine Learning engineer you should have strong math skills.
- Basic skills across overlapping disciplines. For example, for Frontend Web Developer it would be Design, UX, Backend development, Project management, etc. This kind of knowledge helps you to communicate effectively with your colleagues.
- Soft skills in areas like leadership, emotional intelligence, self-control, mentorship, social intelligence, etc. You need this to be able to communicate your ideas and work results clearly, build trust with your teammates, manager and subordinates, handle your and your team’s failures and build non-formal relationships which are extremely important.
- And of course, you have deep knowledge if one or a few specific areas. This is usually the reason why you were hired. And this is your most powerful weapon to conquer the market.
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 we go.
Junior Engineer
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 and 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.
Middle Engineer
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 to 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! 😉
Senior Engineer
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 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.
Team/Tech Leader
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…
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.
Architect / Head of the department
At this stage, you usually need to make a decision about your future career. Are you a more technical guy that wants to keep coding forever? Or do you want to become a manager and pursue positions like Director of Engineering, CTO, CEO?
Architect
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 as a result the resources you have (ex: it’s usually a bad idea to suggest usage of Rust language if you have Go developers team). 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.
Head of department
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.
A lot of articles already cover this topic so I don’t want to repeat everything here.
Summary
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 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.
Leave your comments and remarks below. It is always exciting to hear opinions or stories about alternative experiences from colleagues 😉
Also I want to say a big thank you to Namecheap, Inc for help with this article.