Thoughts on Software Engineer Promotions
Anyone who's been in the workforce has probably heard this complaint: "My manager isn't that skilled, so how did they get promoted?" This thought crossed my mind too when I was more junior. It wasn't until I had worked for many years that I understood that every manager has a different set of skills that puts them in that position. The nature of the work is different, so there's really no point in comparing.
For more senior roles, the company doesn't promote you based on strong technical ability alone. You also don't need to compare your individual skills with your manager's. Most of the time, your manager's ability in any single skill might not even be stronger than yours. That's because a manager's main job is to focus on integrating the team's abilities—through communication, coordination, people management, and course correction—to improve the overall results.
From the company's perspective, technical ability is just the baseline. No matter how strong your individual skills are, if you can't align with the company's vision, cooperate with the team, and work with your manager to achieve company goals or create more value, then you're likely not a suitable candidate for promotion.
Promotions to more senior roles—like Senior Engineer, Lead, or Manager—often happen when there's an opening in the organization. Barring special circumstances, the best strategy is to work closely with your direct manager, help the team rack up more wins, and in turn help them get promoted. When the company expands, that's when your own promotion opportunity will arise.
On Responsibility and Authority
A promotion is really about taking on different job responsibilities. For software engineers, the responsibilities you take on also change. You typically need to demonstrate the skills required for the next level for six months to a year before you'll get the chance to be promoted, and maintaining a good relationship with your direct manager is key. As you advance in seniority, your individual tasks will decrease while your team-oriented work will increase.
| Job Position | Role & Responsibility | Promotion conditions |
|---|---|---|
| Junior Web Developer (1 year) | A newcomer to software development with basic software engineering knowledge. Can reliably complete assigned requirements or new features, but pays less attention to code performance. Needs to discuss with senior team members to determine the general direction in unfamiliar areas. Will need to discuss with other engineers when stuck on a coding problem. | Has basic programming skills and is receptive to guidance from others. |
| Middle Web Developer II (2 years) | An engineer with some experience who has their own ideas about assigned features or requirements. Usually proposes different solutions to problems. Has good communication and collaboration skills, and discusses the pros and cons with senior colleagues before choosing a solution. | Can not only get the job done, but get it done well, with minimal supervision. Familiar with organizational standards, works independently, and requires less guidance. When encountering unfamiliar problems, can propose and discuss solutions, technical issues, or directions. Capable of breaking down tasks into a work list. Can write maintainable code. Good teamwork spirit and work attitude. Has a track record of successful projects. Willing to listen and accept suggestions from colleagues. |
| Senior Web Developer (3~5 years) | A backbone of the department who can quickly learn and provide various solutions for any unfamiliar domain or project. Able to quickly learn the necessary knowledge from various documents, project examples, and tutorials, extracting the essentials to solve problems. Can lead the team technically and make critical decisions. | Solid technical skills, able to work independently, and passes relevant team skill assessments (usually by the next level or a manager). (Has in-depth knowledge in areas like front-end technology, refactoring, databases, CI/CD, architectural design, system analysis, performance optimization, etc.; capable of developing projects both independently and as part of a team). Accountable and proactive. Doesn't wait to be assigned tasks and takes initiative to tackle new issues or problems the team faces. Can proactively identify problems and use appropriate technical methods and processes to optimize the team. Keeps up with new technologies, continuously improves, and makes a significant impact on the team from a technical perspective, while being happy to share knowledge. (e.g., saving future time, increasing future efficiency, boosting company revenue, improving website conversion rates, etc.) When faced with a problem, can learn quickly, propose multiple solutions, and understands the trade-offs between different solutions and design architectures. Good leadership skills, guides the team to do the right thing, and has a record of successfully leading others or major projects. Can prioritize tasks and handle them differently based on urgency (trade-offs). Besides doing their own work well, can also teach or lead others to do theirs. Able to clarify ambiguous problems and break them down for junior employees. Willing to listen, is coachable, accepts different opinions, and can acknowledge their own shortcomings and make real changes. |
| Supervisor of Web Development (5~7 years) | Technically, they have special expertise in certain areas. Upper management consults them on technical issues for major project decisions. Possesses irreplaceable technical skills and abilities within the team and serves as the core technical leader for key products. On the management side, the small group they lead plays an indispensable role in the larger team. They can clearly define the future direction for their group and guide everyone to achieve goals step-by-step. | Able to resolve and coordinate complex and difficult problems. Has led important projects, demonstrating strong leadership and management skills. Provides necessary technical support and guidance to the team, which may involve selecting the right tech stack, solving major technical issues, etc. Excellent technical insight and strategic planning for technological development. Able to think from a business or company-interest perspective and flexibly apply technology to make significant contributions to the organization. There is an open position within the company. |
| Manager of Web Development (over 7 years) | Manages the entire development department, sets technical and departmental development strategies, is responsible for team building and talent development, and coordinates resources and personnel. | Extensive leadership, management, and cross-departmental resource coordination skills. Proven experience in cross-departmental collaboration and successfully managing large teams. Ability to solve problems and communicate across the organization. Deep understanding of industry trends and ability to set departmental goals, leading the team to achieve company objectives. Able to think from a business or company-interest perspective and flexibly apply new technologies to make significant contributions to the organization. There is an open position within the company. |
Finally
You and your direct manager are not in a competitive relationship. You are already at different levels and are not competing for the same position. Furthermore, your direct manager has a significant influence on whether or not you get promoted.
Unless you join a team that has no manager—which is usually a chaotic environment—where if you can handle the pressure and stick it out for 2-3 years, you might get promoted on your own merits. Otherwise, the path is to collaborate with your direct manager to help achieve their manager's goals. And in a larger organization, you'll have to align with even more senior colleagues and bosses.




























Comments