Mark Ku's Blog
Open in ChatGPTOpen in Claude

歡迎收聽 Mark 的技術雜談,我是主持人璦廷。你是否曾經納悶,為什麼有些技術能力不是最強的人,卻能順利升遷呢?今天我們就來聊聊軟體工程師的晉升之路。 許多工程師以為,把程式寫好就能步步高升。但這個重點值得注意:隨著職級提升,公司看重的不再只是單一技術,而是整合與溝通的能力。從初階到中階,你需要獨立產出高品質程式碼;到了資深階段,則必須主動發掘問題,並在不同技術架構中做出取捨。 讓我們來看看晉升管理職的關鍵。當你準備走向主任或經理,焦點將從個人產出轉向團隊建設與商業目標。文章特別點出,員工和直屬主管並非競爭關係。事實上,幫助團隊取得戰功、協助主管達成目標,往往是你獲得晉升的最佳途徑。 總結來說,晉升是一場從個人技術走向團隊影響力的蛻變過程。下次在精進程式碼的同時,不妨思考看看:你目前的溝通與當責能力,是否已經準備好迎接下一個職級的挑戰了呢?

Podcast ConversationAI dialogue version of this article · Mandarin audio
Audio for this article is powered by VoAIVoAI

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 PositionRole & ResponsibilityPromotion 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.

Author

Mark Ku

擁有 10+ 年經驗的資深軟體工程師,現為 AI 應用 Builder,專注於大型平台架構與簡化複雜系統設計,從電商系統到訂閱與收費平台,結合 AI Agent、AI 整合與自動化開發,打造高效率且可持續演進的產品技術基礎。Read More

Found this useful?

The author's free tools, daily podcasts and newsletter are all here.

Mark Ku · This article is licensed under CC BY 4.0. Credit the author and link back to the original when reusing it.

Comments

Subscribe to Newsletter

Subscribe to get new posts delivered instantly — never miss a tech share.

By submitting, you agree to receive emails. You can anytime.

Popular Posts

View all
Mark Ku
··602

Oracle Cloud Always Free Tier: Linux Host and Static IP for a $0 Cloud Solution

Oracle Cloud Always Free Tier: Linux Host and Static IP for a $0 Cloud Solution
Mark Ku
··490

Say Goodbye to Postman's Fee Trap! A Hands-on Guide to Bruno, the Open-Source Git-Native API Testing Powerhouse.

Say Goodbye to Postman's Fee Trap! A Hands-on Guide to Bruno, the Open-Source Git-Native API Testing Powerhouse.
Mark Ku
··333

A Free, Open-Source, Notion-like Knowledge Base — A Complete Guide to Deploying and Backing Up Outline Wiki

A Free, Open-Source, Notion-like Knowledge Base — A Complete Guide to Deploying and Backing Up Outline Wiki
Mark Ku
··264

Training Your Own AI Voice: Hardware Requirements, Open-Source Model Comparison, and LoRA Fine-Tuning

Training Your Own AI Voice: Hardware Requirements, Open-Source Model Comparison, and LoRA Fine-Tuning
Mark Ku
··221

Building an Efficient API Management Platform: Deploying Kong Gateway from Scratch - Part 1

Building an Efficient API Management Platform: Deploying Kong Gateway from Scratch - Part 1
Mark Ku
··215

Setting Up Samba on Ubuntu to Share Folders with Windows 11

Setting Up Samba on Ubuntu to Share Folders with Windows 11
淺談軟體工程師的晉升 - Mark Ku's Tech Notes