From someone who has been there, here are some tips for software engineers who want to climb the corporate ladder:
- Be an outstanding software engineer. This can’t be overemphasized. Meet and exceed the expectations for your position. Make sure you know exactly what those expectations are. No matter what career path you’re interested in, technical or managerial or some combination, ensure that you’re excellent at your current job. If you’re not, find a way to get there.
- Demonstrate passion/enthusiasm for software development and for your projects. Work hard, meet deadlines, get things done, and maintain high quality. Complaining about management, schedules, testing, documentation, customers, etc. is counterproductive, and saps your energy and the energy of those around you.
- Be a team player. Work well with people in your team, as well as others outside your team. If there is a test/Q&A group, work cooperatively and productively with them. Don’t take offense when someone finds a problem in your code. Fix it, learn from it, and catch that class of error with your own tests so that it will never happen again. When there is disagreement, friction, or tension within the team or between teams, find a way to help resolve it. Humor, as long as it isn’t destructive or inappropriate, is a great help here. When you need to be a naysayer, propose a feasible alternative approach.
- Ensure that your verbal and written communication skills are excellent. You’ll need to be great at writing crystal clear technical specifications, communicating effectively with non-technical people, presenting to groups of all sizes, using email effectively, communicating effectively with others who don’t share the same spoken first language, etc. For many software engineers, this requires a lot of effort and a willingness to step outside your comfort zone.
- Tell the truth and be diplomatic. Your integrity is incredibly valuable. If you lose it by lying or cheating, it’s very difficult to win back the trust of others. If you need to provide negative feedback to someone, don’t do it in front of other people.
- Care about others. I know this sounds odd, but you might be surprised at how many engineers are so narrowly focused that they don’t want to be bothered with people.
- Find out exactly what the requirements and expectations are for the next level, whether it’s technical, managerial, team lead, etc. You can typically get this information from an employee handbook, human resources, or your manager. Then, start meeting those expectations. And then start exceeding those expectations. The easiest promotions for a manager to push through the system are those for employees who are already operating at the next level. And, some of the promotion requirements can be waived if you’re already operating at the new level.
For example, I once got a promotion that officially required five years at the previous level, but the promotion came after only six months. How? By consistently meeting and exceeding the expectations of the new level. Even though it was 4.5 years too early by official standards, it was clear that I was already operating at the next level.
- Be an expert, a mentor, a resource. Be the person that others come to for solid advice and information. Avoid being judgmental or condescending. Share what you know. Let others benefit from your knowledge and experience.
- Express your interests. Managers and team leads are not mind-readers. If you’re interested in a particular career path, or even just some specific project or responsibility, say so.
After changing from a team lead position at one company to an individual contributor position at another company, I casually mentioned to my manager that I was interested in leading a team at some point. When an opportunity came up, my manager remembered my expressed interest and recognized that I had already been demonstrating the required skills.
- Learn the business. Gain an understanding of the roles and responsibilities of other teams, departments, and divisions. Understand how each contributes to the success of the business. Strive to have a good grasp of the big picture, and then strive to grasp an even bigger picture.
- ABL – Always Be Learning. Keep proactively adding to your skill set. This might happen naturally on the job, or might require taking a course or learning on your own. Don’t remain stagnant. Balance improvement of hard technical skills and soft skills.
- Be the type of person that others look up to and aspire to be. The best way to earn respect is to be respectful of others (at all levels), to help them succeed, to lead by example, to remain humble (no matter what level you’re working in), and to make the effort to truly understand problems and solutions. Respect is not something you can demand or require or buy. You need to earn it.
Some of this may seem like common sense. Some may seem incredibly daunting. Some of it can happen naturally, with experience. Some might require significant effort. Which ones require extra effort will vary from one person to another.
You might also find these blog posts relevant: