Essential Functions of a Senior Software Engineer
Hello everybody, I am Nima, an experienced software engineer with more than 15 years of experience. I want to share with you my experiences with the seniority level, It does not mean that I am (not) a senior developer, but it's more about what it means.
What does seniority mean?
Levels of seniority are those that measure the level of experience and knowledge of a person in their career path. Sometimes companies define this level by the responsibility level and the rank that the worker has. Experience is more defined by skills and abilities than by the number of years worked.
By Heinsohn
Actually, your seniority could be different from company A to company B, which means you can be a junior developer in company A, while it's possible to be senior in company B, based on their conditions, experiences, needs, and projects.
How can we evaluate our seniority level?
A true story
Let me start with a true story about the past when I experienced being a CTO in 2012, it was my first official role in a company. before that, I was a freelancer, without any teamwork experience. Bad experiences will give you good insights into the future. I was 21 and the company had no technical team till that day, I had this opportunity to convince them that I am a good developer, I was a Java and PHP developer at the time, and in my opinion, that was a reason why they convinced with my skills. There was no technical guy to interview me. I can say that I was the first technical person in the team who could interview others who were better than me. At that time, I understood, that my seniority level would be evaluated at the company level. It was not a good choice for me to be a CTO and that was the reason the candidates were better than me. Some years later, I went to an interview as a candidate and it was so funny, They rejected me because my level was more than that of a senior developer, but it wasn’t; the interviewer had the wrong attitude. So you can not be sure that you are a Senior developer everywhere; there are a lot of factors that influence the seniority level.
Interviewer influences
This is a term I came up with. Company decisions are very effective; you need to be sure there is someone who is better than you ( not even the same as you ) if you want to evaluate our seniority level. At most interviews, you will know the name of the interviewer; it would be helpful if you looked at her/his LinkedIn page.
Hard skills
As you can guess, “Hard skills” are very important; IMO, they are half of the way there. Hard skills are learned abilities that are acquired and enhanced through practice, repetition, and education. Hard skills are essential because they increase employee productivity and efficiency and subsequently improve employee satisfaction. “investopedia“. Hard skills can be a good indicator of being a senior. who has more abilities, would have the chance to be evaluated as a Senior in the company. At most, developers misunderstand the meaning of “more abilities" Usually, the interviewer will count the skills that you have mastered on them, not a bunch of skills that you are a beginner in. so be careful about what you are writing in your CV.
Soft skills
“Soft skills, also known as common skills or core skills, are skills applicable in all professions. These include critical thinking, problem-solving, public speaking, professional writing, teamwork, digital literacy, leadership, professional attitude, work ethic, career management, and intercultural fluency. This is in contrast to hard skills, which are specific to individual professions.” Wikipedia As the “soft skill” is wide knowledge, I can just share my experiences. These are some titles for which you have to be an expert: Teamwork, leadership, a professional attitude, and public speaking are the most important things.
Teamwork
Having good collaboration in projects, meetings, and other stuff in the team is a big point.
How can you improve it?
Do not hesitate to ask questions.
Ask your colleagues’ strength to help you with problems.
Clarify the tasks and organize meetings for this purpose.
Digital literacy
Don’t be afraid to use new technologies, it does not mean experiencing new programming languages ( Do not switch between languages too much), it means increasing your knowledge to use new tools and having the courage to work with new frameworks, libraries, architecture, and techniques to increase your confidence.
Leadership
Improving your leadership skills will help you to promote your seniority, as it will help you to be a valuable asset in the team.
There are 9 famous steps to improve your leadership skills; let’s take a look at them together.
Practice discipline: A good leader has good discipline, If you are naturally disordered, you may shorten your workload.
Take on more projects: having more responsibility would help you to be more disciplined.
Learn to follow: A true leader has no problem transferring control to another person if necessary, try to be transparent with your team.
Develop situational awareness: A good leader could see big problems before they occur, which will help others trust you more.
Inspire others: Inspiration is one of the most important things that makes you a good leader, a good leader tries to encourage the team to learn more and be more energetic.
Keep learning: You have to be the most up-to-date on the team. No matter how good you are at coding, try to stay up-to-date and enhance your experience.
Resolve conflicts: Every team has some conflicts due to different cultures and personalities, a good leader can resolve these types of conflicts in the team.
Be a discerning listener.
Empower your teammates.
If you like to improve your leadership skills, highly recommend you read some self-help books like "How to Win Friends and Influence People" by Dale Carnegie which is the most famous confidence-boosting book.
Subscribe to my newsletter
Read articles from Nima Habibkhoda directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Nima Habibkhoda
Nima Habibkhoda
I'm Nima, a seasoned software engineer and self-educated programmer based in the Netherlands, with a strong focus on full-stack development. He has extensive experience in various programming languages and frameworks, including JavaScript, Node.js, React, Go, PHP, and more.