How to get promoted to a Senior Software Engineer
Becoming a Senior Software Engineer requires gaining experience and knowledge over time. This article outlines what you should cultivate within you to become one.
Read on Medium (opens in a new tab)Our careers are a journey that we walk through our whole life. There are ups and downs and we learn and improve every day. We learn new technologies and gain experiences that shape the way we think and approach a problem. All of these help you in advancing in your career further. While it may seem like a junior engineer may be able to develop an application just as well as a senior developer, there are many other aspects that differentiate them. It isn’t simply the number of years that you have worked as a professional Software Engineer, but your actual skills and capabilities that make you a Senior Software Engineer.
Based on more than five years of experience and being rapidly promoted to a leadership role within less than three years, I am outlining my thoughts on what makes a senior engineer stand out from other junior Software Engineers. I hope that this helps all of you out there improve yourselves.
Without further ado let’s get started.
Battle Scars
With experience comes wisdom. While this is not true for everyone, in general, everyone learns with experience. Making mistakes and going through hard problems hones the skills of an engineer. When a future problem occurs, experienced engineers can draw from their experiences and handle it better.
Moreover, with time, you tend to develop your own methods and practices, which speed up your work. This is why, in general, Senior Software Engineers are expected to finish tasks faster as well.
But isn’t it just something you obtain with time?
Yes, it is to some level. But also at the same time, it is also based on what you learn from others and the situations you deal with. For example, while many people hate meetings, I always liked them because I get to hear the thoughts of senior engineers and other leaders. Especially simply even being present in situations like production incidents and learning from others' thoughts and decisions can give you valuable experiences more than coding for hours and hours at a desk. So, while it will take time, you should be thirsty for these experiences and learn as much as you can from them as well. Even the mistakes and failures that you do during these situations become battle scars that make you a much better Software Engineer.
Guiding other Engineers
Everyone learns and improves throughout their career and it’s a never-ending process. This is why once you become more experienced and knowledgeable, you should start to share it with others who need it. Also, this is another major expectation of Senior Software Engineers. While the exact level of leadership required varies (from being a mentor to an Engineer to leading a team of Engineers), it is always expected from them to guide relatively junior engineers.
While your capabilities in teaching and guiding someone might always not be great, the good news is that practice can make you better at it. So try to teach and guide others at any chance you get and be genuinely interested in seeing them improve. It will help you improve as a mentor and a leader, which will in turn help you advance in your career.
Thought Leadership
Not everyone gets opportunities to lead a team of engineers. The employers always have to choose the best person for the position and that generally means that others have to follow the leader and work as a team. However, this does not prevent you from having and showing your Thought Leadership.
Thought leadership is basically demonstrating your expertise in an area and also taking the initiative to make a difference and improve. However, this should come from actually building expertise and experience. Trying to feign Thought Leadership by spamming everyone with unconstructive ideas or using others' ideas as your own, cannot help you in going very far in your career as you cannot fake Thought Leadership (at least not for long). The ability to take initiative and lead the direction of a team is a very important trait that a Senior Software Engineer will need throughout their career.
To effectively take the initiative, it is also important to have a growth mindset and question and improve the current status quo. This mindset combined with the knowledge you build over time, will give you many opportunities to showcase your Thought Leadership as well as the output of everyone around you.
When you do show genuine Thought Leadership and the ability to guide others, more often than not, you get the opportunity to take more responsibilities and even opportunities to lead other engineers as well. While how you can become a better leader is out of the scope of this article, it requires you to have more people skills on top of the Thought Leadership related mindset we talked about above. You can read more about how you can become a better Leader in another article I wrote on leadership (opens in a new tab).
Keeping the Sails Up in a Storm
All engineering teams and organizations as a whole will go through many problems. This may come in many forms such as production incidents, deadlines due to races with competitors to capture markets, and serious customer complaints. In many of these scenarios, you need to be able to keep a cool head and navigate through the issue. Your technical knowledge combined with your problem-solving skills will come in handy in doing so.
If you are managing your own deployment (For example a SaaS offering of your product), it can be quite normal to have production incidents due to various reasons. Handling these situations methodically, prioritizing, and getting the system up and running as soon as possible, is one of the many skills that you have to cultivate. Sometimes knowing when to use a workaround without implementing the perfect solution so that your end users are less impacted is required. Intuition and expertise required to operate in this manner without panicking in these cases is something that sets apart a Senior Software Engineer from a Software Engineer.
That Gut Feeling
Having a correct gut feeling is one of the important aspects in day-to-day work, such as guiding other engineers as well as production incidents that we talked about above. This helps a Senior Software Engineer in taking the correct decisions and moving towards success. This also reflects on the general judgment and technical knowledge of a Senior Software Engineer. While this is in a way a combination of all the different aspects we talked about above, actually having this capability makes you a more skillful Senior Software Engineer.
Even in general situations where you are working with a new technology or framework that you are not familiar with, if you are an experienced Senior Software Engineer, with a little knowledge about the fundamentals of it, you tend to be able to know at a high level what the technology or framework is about. This helps you to learn exactly what is required without going over every small inch of it, resulting in much faster and improved output.
To wrap things up, while it may seem like becoming a Senior Software Engineer is simply a matter of the years of experience that you stack up on your resume, it is much more than that and it requires developing your skills and capabilities to handle the challenges you face along the way.
Hope this article was helpful for you in improving yourself for the better.