106 A software engineer has quite a few career tracks to consider as he/she grows within the engineering domain. I often hear –How do I get promoted? From enthusiastic fresh graduates and junior engineers, ready to prove their mettle to mid-level engineers feeling stagnated, disillusioned and not valued for not getting promoted though they’ve all been doing their job. Finishing work in hand in a timely manner and with high quality is why good engineers are hired. That’s the baseline. You don’t get a reward, recognition, a salary raise for just doing your job— You get a salary for that. You get a raise when you exceed expectations, or you raised the bar and brought additional value in some consistent way. Enthusiastic fresh hires disillusioned by lack of recognition or clarity in how to begin ascending the corporate ladder often find themselves attracted to career tracks which may seem more lucrative from title or salary perspective. The grass seems greener on the other side but often is not aligned with passion or skillset. There are also a few potential career tracks in closely related fields such as product management, program management, project management, tech services, and customer solutions engineering. Career Tracks A software developer could move into product management and go on to becoming senior product manager or principal product manager. PMs are individual contributors and drive the vision, strategy, design, and execution of their product. Product management is a popular field that a lot of software developers consider as a career path. A software developer could find their passion in project management, managing multiple projects, timelines, dates, priorities, scope creeps, bug management etc. Project managers are individual contributors and go on to become senior projects managers, principal and then consulting/director project managers. Program managers are slight variations of project managers in that they manage multiple programs, multiple product releases, bug management, hotfix. They also patch maintenance, test cycles, retrospectives and process improvements. All entry level software engineers wanting to continue in software engineering/software development track first need to grow into a mid level engineer. A software developer who decides to stay on individual contributor tracks go on to become a software engineer followed by senior software engineer, then a principal engineer, consulting, followed by distinguished and some organizations have a concept of fellow as well. If an engineer has people management aspirations, a good way to try it out is to aspire for a technical lead position. In this case, the path would look like software developer, software engineer II, senior software engineer, tech lead followed by engineering manager position. Getting from Entry level to Mid level As an Entry level [1-3 years] software developer, begin by being dependable, finishing the given work in a timely manner with high quality. You want to show a high sense of urgency towards customer issues. You also want to show curiosity and self motivation to learn beyond what is directly assigned (this is the key). Show ownership towards the product and be self driven to contribute to product and process improvement creatively. To become a software engineer II, demonstrate the ability to work independently with minimal guidance. Prove yourself to be trustworthy and reliable; someone who can be counted on to execute and deliver results (there is no shortcut to this; work timeliness and quality will directly influence reliability factor). If stuck, this person has figured out the right resources to reach out to for guidance, brainstorming and help. Demonstrate not only the readiness for next role but that the new workload/responsibilities are manageable. Voluntarily expand to take care of a few showing you are operating like one. The checklist below is in place to help own your growth from entry level to mid level and analyse more logically. Knows functional area wellYes/NoUnderstand the product end to end decently wellYes/NoHave been contributing outside the direct assignments (volunteering)? Yes/NoSuccessfully meet = finish tasks on time with high quality. Leave no broken glass behind. Show full accountability for any bugs that follow. Has innovative potentialConsistently exceed = finish tasks on time and exceed expectations by doing extra along the way (self driven enhancements, self motivated product improvements, documentation, process improvements, mentoring along the way, learning new areas without being asked and stepping up to solve customer problems. This could also be helping support with creative tools or better logging/ monitoring without being asked. Yes/NoAre you innovative. Progressively bring new ideas, perspectives and suggestions to existing and emerging products and practices.Yes/NoIs considering trade-offs in their decisions and importantly sharing that insight. An example of a typical trade-off decision could be picking a technology that’s faster to go to the market rather than the one that may enable use-cases in future, cost/benefit of design A vs B; thinking resource optimization as they design and implement code big(O), thinking performance, scalabilityYes/NoIs this person bringing visibility to extra credit work they did. If the person doesn’t share what they did it is called leaving credit on the table and in worst cases someone else could take credit for it.Make sure that higher authority such as the manager or lead gets regular visibility into their achievement Yes/NoNeed oversight. (25% dependent (1:4) Yes/No Getting From Individual Contributor to Leading Engineers If a mid level engineer has an aspiration to lead teams, he/she needs to start demonstrating soft skills along with pure technical mastery. Here is a checklist of some big bucket items from soft skills perspective that would help make a strong case enabling you in your conversation with your manager. Mentoring juniors, interns while knowledge sharing with your teamYes/NoBeing a team player. Being able to give and take feedbackYes/NoAble to enhance team building and camaraderieYes/NoDevelop collaborative relationship/fosters cross functional coalitionGood at resolving conflicts and putting out firesYes/No Self aware (self-learning) Self regulating (reacting to outbursts, conflicts) Empathy (better communication and conflict management) Compassionate Must have for a good leadThinks like a leader (anticipates future trends and helps the group to respond)Yes/NoAnticipates customer needs, enables team to solve problems as well as builds customer trust and loyaltyYes/NoShow organizational influence Assert perspective on issues Leverage global resources Proactively develop relations Yes/No Moving From Tech Lead to People Management Comes Next ! The ideas expressed in this blog are influenced by the wisdom gathered not only by years of experience, but also from various YouTube videos I’ve seen, and blogs I’ve read and people who’ve made my experiences richer with their advice from time to time. Hope you found a few pointers worth your time. Comments and feedback appreciated! Photo by Markus Spiske on Unsplash