Getting promoted in software development with the help of a mentor
Tags: Software Engineering, Career Advice, Software Development

At some point in any software developers career they will think about what steps do they need to complete to get promoted to the next level. With a little bit of dedication and interest as you work in most industries over time you will naturally acquire these skills on your own. However this approach will often be longer than proactively driving your career by going above and beyond expectations in projects, working on personal skill development, and finding mentors.

A software developer that comes home and works on independent projects, meets regularly with mentors, gets involved in programming forums, and reads leadership books in the evening will seamlessly have a more accelerated career than a developer that puts in his 40–45 hours a week then comes home and participates in hobbies that are completely separate from his career; which is perfectly fine to do this if you value your hobbies over career progression. If you are this kind of person but you would still like to see yourself progress to the next level of your career then you may be able to get even more value from a mentor to help guide you to that next stepping stone.

How can a mentor help me get promoted faster?

Provided you find the right mentor than they have gone through those processes before already. They understand what requirements are needed to be achieved, they’ve worked through the steps to succeed in the tough projects that demonstrated they were ready for the next level such as leading development of entire software projects, and went through the paperwork to prove to others they were as well. They can give you insight into those processes and have honest conversations on what areas you are demonstrating that you are working at the next level and what areas you can improve. Then they can work with you to come up with a plan to grow those skills and demonstrate them to your peers. Notice I said work with you and not just “hold your hand and spoon feed you a plan”. This should very much be a two party relationship where you should be even more eager to work with them as they are to help you.

After coming up with this plan for your growth areas; a mentor can then be someone to hold you accountable when you do your bi-weekly or monthly check ins based on the goals you set for yourself during those meetings.

With the insight into the promotion process, goal setting, growth area analysis, and accountability a mentor provides this should help you grow three times as quickly as trying to figure out all this on your own.

Who should be your mentor?

Mentors can come from many places but your mentor should have skills at or slightly above what you are trying to achieve. If you are a junior developer looking to keep growing in software development it would be better if a mid-level developer was your mentor then compared to a Senior or Principle developer. This is because they have more recently been in your shoes and have shown that they have overcame the same steps and obstacles you are currently working through. Also they tend to have thinking patterns closer to you. For example a mid-level developer would think more detailed at an application level then a junior and could get you to think about how your coding works in this bigger picture. Where a principle developer thinks more at an organizational level and working through very ambiguous problems, and it has been more than 7 years since they were a junior and likely don’t remember the majority of the problems they faced back then in specific detail.

As a developer you should also have regular 1 on 1s with your manager to discuss progress of your current work, overcoming obstacles you may be facing, and working on career progression plans to fill gaps you may have in your skills. Many managers have been trained to get the most productivity from their employees and have interest in seeing you becoming a better developer and succeeding. This is because not only does it make the team have a better output, but because your bosses are humans too and were once junior developers or rookies stepping into a new role.

A person who should not be your mentor would be someone in the same role as you. Sure it’s fine to work together closely as team-mates and value each others feedback but when it comes specifically to what you need to achieve to grow into the next role it’s best to look to someone that has gone through that.

Also, it’s not always beneficial to have someone in another field be a mentor either because while they may have good general leadership advice they won’t be able to give you specific growth ideas and steps that you should be taking to learn database access patterns, design horizontally scale-able applications, or abstract a code base so that it is more logical and maintainable.

When should I find a mentor?

The sooner you can find a mentor the better but usually you will want to be in your role long enough to get a core understanding of the software your team is working on for you to be able to know what you don’t know well enough to drive meaningful meetings with your mentor.

Typically when you start a new role you will be assigned an on-boarding mentor to help you learn your teams projects and workflows. It is likely you will end up working with this person closely within your team and because of this you may both end up having unconscious bias towards each other that would be counterproductive in an all out mentoring role. In general you should not directly report to your mentor.

Where do I find a mentor?

A mentor should be found outside of your team, within your own industry, and if possible within your own company. This would be the most beneficial because someone in your company knows the direct systems, politics, and set of requirements that are needed to be successful within that medium. It is good to pick someone outside of your team to remove personal bias and end up spending time having conversations about your team and team-members as a whole and instead focus on personal goals and accomplishments. It would also be good to pick someone who is familiar with your work and how people perceive you so that you can work on making more specific goals. For this reason sister teams and internal organizations are a good place to look. After identifying a person that would be a good mentor for you simply go up to them and express you value their skills as a developer and that you would value their time as a mentor. Given they have time available they will often appreciate the fact you proactively came to them and would be happy to meet every few weeks.

If you are in a small organization or are unable to find a mentor with time available to meet regularly you can look to people from outside companies. Again the outside company should be at a tier at or above what you are currently working at to help drive growth in a focused way. You can find these people through different tech forums, development related conventions, or meetups.

Lastly, you can also look towards hiring professional coaches that can work with you to create goals, share experiences, have career progressive conversations, and to still hold you accountable through recurring meetings. While this may be more generalized then finding someone within your same organization; it is much better than trying to navigate the trenches of software development on your own. I personally love helping people grow and currently have open slots to offer career coaching sessions for a fee. This is extremely useful for serious people that want to work on polishing goals towards their growth areas based on their interests and how to translate this into a promotion. Just head over to my contact page and send me an email to setup a discord call.

What should I talk about with my mentor?

Now that you understand the concepts of how a mentor is valuable and where to find them the last thing to know is what to talk about when you meet up. If they are an experienced mentor they may have a plan already and will drive most of the conversation but as a proactive developer you shouldn’t always count on this to be the case. Instead put together a script of questions you put together ahead of time to work through during your mentoring sessions. Ask them about their work history and they navigate difficult situations, how they put together software, how they handle ambiguity in their job, or any other questions that are focused on next level goals. You will likely find they have more refined ways of thinking about things that have allowed them to achieve the level of success you are working towards.

Additionally take the meeting as an opportunity to get feedback on yourself through the perspective of another person. You can ask your mentor questions such as how do people perceive me in the organization, what can I be doing better, How can I communicate myself more effectively.

During the conversations be sure to be courtesy of your mentors time and experience. They have agreed to be your mentor because they value the opportunity to help another developer grow their skills and as such they likely won’t say anything mean to be harsh or abrasive. If something may come off in that way try to look for the deeper meaning of what they are saying and look for the constructive feedback within their context. But if their is generally just no rapport between you and mentor you always have the right to politely excuse yourself from the meeting and find someone you mesh with a little better. I personally don’t mind the tough Gordan Ramsey style of feedback and someone being too overly nice might not push me hard enough so know yourself and have a sense of your mentor as well to find a mentor experience that is mutually beneficial.

After the meeting be sure to review all of your notes to continue driving action items and stay on target to meet any goals you and your mentor came up with before the next meeting. Also think about what questions do what you some more details on and work on coming up with questions you have that you want to discuss in the next meeting. Mentorship is just as much of an iterative process as software. Don’t expect that in one meeting your mentor will give you all the answers to instantly provide amazing results, so be realistic about the process. You will get as much out of it as you put into it when it comes to how prepared you come to the meetings and how much you follow up on the feedback from your mentor.