How to Grow From Mid-Level to Senior Software Engineer (Full Guide)

In this instructional video, a former senior engineer turned manager shares the criteria he uses to promote engineers to senior roles and outlines five concrete ways mid‑level engineers can position themselves for promotion. He defines a senior engineer as someone who can independently understand problems and devise appropriate solutions across technical, communication, and collaboration domains. The five growth areas are: (1) showing drive and continuous learning by acquiring new knowledge and sharing it; (2) making others better through mentoring, feedback, code reviews, pair/mob programming, and onboarding; (3) focusing on building the right things by understanding product and business context, challenging requirements, and thinking about user impact; (4) taking ownership and initiative by identifying problems, proposing and implementing solutions, writing documentation, and unblocking teams; and (5) proactively communicating promotion aspirations via one‑on‑ones, maintaining a brag list, and aligning with manager priorities. The speaker also promotes his Engineering Leadership newsletter for further guidance.
Chapters
How to grow from mid-level to senior software engineer? Well, that is the common question that a lot of engineers are asking and trying to get to know more about. I grew to senior software engineer in my career and later became a manager and grew all the way to CTO. And today I'll be sharing my perspective as a manager who promoted a lot of engineers to senior roles on how you get promoted to a senior software engineer position. Let's get straight into it. So what do I look for in a senior software engineer as a manager? There are so many different things that make a senior engineer. If I can sum all of them in one sentence, that would be: a senior software engineer should be able to independently understand the problem and find the right solution to it. And I'm not just talking about technical solutions here. I mean solutions across different areas, including communication, collaboration, mentoring, and helping others. And by no means do I mean that you need to have the right answers on the spot. A senior engineer is able to find and gather solutions from various different sources. Software development is too broad of a field to be an expert in everything or to know everything up front. As a manager, I wish to rely on a senior to make good decisions, do the right things, and inspire others to do the same. So how to grow as a mid-level engineer? As a mid-level engineer, you should already have a good understanding of various different parts of software development. You're able to take the requirements and deliver the solution. But what particular skills do you need to demonstrate in order to grow? I'll be giving 5 points on how you can grow next. The first point is show the drive and the motivation to learn, grow, and improve. One of the great things about our industry is that it's a never-ending process of learning new things, and everyone should be learning new things all the time, no matter the title or seniority. And that's what I wish to confirm with a particular individual. Are they going to keep learning new things, or they will stagnate and rely just on their current skill set? It's really important that you showcase that, and here are some of my suggestions for doing that. Have you learned something new? Share that newly acquired knowledge within the team. You're always looking for ways to make improvements to the codebase or the overall architecture. You become an expert in a certain domain, and you're continuously learning and looking at latest trends. People see you as the go-to person. Now let's go to the second point. You're making others around you better. Software development is a team sport, and great teams build great software, not individuals. It's important that you are not just focusing on your own contribution, but you increase the scope from your own tasks to the team's tasks and outcomes. The impact becomes very important, and you should always ask yourself, is what I'm working on at the moment considered the most impactful thing? Here are my suggestions. You are mentoring and helping others to grow.. You give feedback when you see fit, and you look at code reviews as a way to help others to learn. You share your knowledge by doing pair or mob programming sessions. You take pride in creating a great onboarding experience for a new person who became a part of the team. The third one, you're focusing on building the right things. One of the biggest indicators of seniority is that you understand the importance of building the right things. You focus not only on delivering a great technical solution, but you focus on creating solutions that the customers are going to love. You can build the greatest technical solution out there, but if the users are not going to use it, it won't mean much. You expand your view from technical solutions to business and product. You no longer just build straight from the requirements. You are challenging requirements and proposing simpler alternatives. My suggestions are: increase the scope of your work from your own tasks to the team organizational level. This ensures that you know and understand the big picture. Don't go straight into code when you're given a task. You want to understand the why behind it first. Be curious about the business and the product and learn more about it. Try to put yourself in the shoes of the users. Now let's go to the fourth one. You are taking ownership and responsibility, and you also take initiative. If you see a certain problem in the codebase, you take the initiative to resolve it. You don't blame others for the problem, but you take action to improve it and define steps to prevent it in the future. You especially take extra care of the functionalities and the code that you have introduced. You're continuously creating documentation and doing great code reviews so that everyone can easily understand what you have built. One of the great ways to showcase that is to find an impactful improvement that you can do in the codebase and you own the implementation. The more impactful the problem is, the more value you're going to bring to the organization. Which results in a faster promotion. Here are my suggestions. As mentioned before, choose a problem in the codebase, propose a solution, and own the implementation. Focus on doing great code reviews, creating documentation, and making sure that everything that you and your team builds works well and is providing value to the users. You take pride in great communication, and you take the initiative when your team is blocked to talk with necessary people to unblock the team. Last but not least, point 5: Make sure to let your manager know about your aspiration to grow to a senior position. The reason is that your manager might not see all the great things that you are doing and might not be focusing on giving you the promotion. I recommend letting them know during your one-to-one meeting and also be curious about what skills to showcase in order to achieve that. If you're already showcasing the skills mentioned before, the conversation is going to be much easier. These are my suggestions: keep a brag list of all the wins that you have achieved. That ensures that your manager knows what you have contributed, and it will keep you motivated to progress as well. Treat your one-to-one meetings not as a status update, but take advantage of them for you to grow and progress in your career. Try to find out what is the most pressing thing for your manager and find ways to resolve that. I'm curious to hear what are your top suggestions for growing from mid-level to senior software engineer. Make sure to share them in the comments. To learn more, you can subscribe to my newsletter. It's called Engineering Leadership, where I share similar tips and advice on how to be a great engineering leader. There are more than 100,000 people already reading it, and I publish 2 new articles every week. Thank you for watching, and I'll see you on the next one.
More from Gregor

How I Grew My Newsletter Engineering Leadership to 165k Subscribers in 3 Years









