Discover more from Tech Field Notes
The Software Engineering Career Ladder
Understanding the stages of a career in Software Development
In the early days, my friend Doogie (a fellow developer at the time) and I used to meet in the lower level of our building’s parking garage and talk about where we saw ourselves in 5 years. These meetings were clandestine since he was supposed to be quitting smoking. In our meetings, Doogie would take a “break” from his quitting and then resume quitting with renewed vigor when our parking garage discussions were over. Sometimes we met once a week and sometimes…multiple times a day.
Doogie and I were both very ambitious and had big dreams. In these sessions we talked about one day being able to “write our own ticket”, a phrase we used to describe freedom and financial independence. We even specified what that might mean; my dream back then was to be able to afford a 32” flat-screen TV. That was 25 years ago. I didn’t know it then but these were my first career development discussions and without even realizing it I was developing a habit that would reward me throughout my whole career.
There’s no single industry standard Career Ladder so I’m sharing one here, based on time spent shipping software in FinTech, Life Sciences, Big Tech, and the Startup world.
Everyone should have a Career Development Plan (CDP) - some sort of direction or compass for their career over the long term. It can be formally written down or just a high-level direction you keep privately in your head. The key is to have a direction. Don’t obsess over it, but don’t leave your career to chance.
To figure out your CDP you should be having periodic conversations with the people that can impact and inform your development, typically your manager, your mentor, or a sponsor. To have any type of discussion you need a common language so a pre-requisite is understanding the concept of the “Career Ladder”.
What is the Career Ladder?
An individual’s career path traverses multiple “levels” from Software Engineer I through to Senior Principal Engineer and beyond. Your journey is informed by the levels in your organization and the associated career paths available to you. Commonly referred to as a “Career Ladder” this construct typically describes what the company expects of a person at each level in the organization. It might also hint at which lateral transitions you might be able to take advantage of.
Show Me The Ladder!
There’s no standard software engineering Career Ladder so I’ve compiled one that I’m sharing here, based on time spent in different industries; FinTech, Life Sciences, Big Tech, and the Startup world. Some of what I describe here may overlap your own organization’s view or contradict it. That’s ok, after all, what you’re reading is just my opinion. It could be wrong! My goal here is to give you a foothold to begin the conversation.
Software Engineer I
Welcome! Your journey starts here at Software Engineer I. This is your first job, straight out of school. As a Software Engineer I, you focus on well-defined tasks and Sprint Stories that enable the overall delivery of a larger initiative. Your manager helps you prioritize your work and removes any blockers you might encounter. Your work is fairly well contained without too many dependencies and typically stays within a single team. At this time you are learning your craft and developing good habits that will become part of your DNA throughout your career.
You are ready for the next level when your work starts to span multiple modules and impacts a larger part of the team. When you have developed an area of expertise and you have started to become familiar with areas outside your core competencies it’s time to consider the next level.
Software Engineer II
As a Software Engineer II, you are competent within your team’s focus area. You can understand Product requirements and translate them into User Stories and prioritize. When presented with a problem you can propose a solution and determine the right course of action with some guidance from your manager or more senior peers. You have a good degree of influence within the team and even start getting involved in the interview process.
You are ready for the next level when your team regularly seeks you out for guidance or feedback on PRs. When your knowledge has grown to exceed the team and you have begun representing the team in larger conversations with groups outside the immediate squad. E.g. Product managers or peer groups.
Software Engineer III
Congratulations - you’ve reached a major milestone as a Software Engineer III and whilst further growth is possible (and likely) many people have highly effective careers that never progress beyond this level. That holds true of the remaining levels. They are all potential positions you may dive deep in, without progressing upwards and still have a fruitful career in technology.
As a Software Engineer III, you are highly effective within the group and capable of dealing with significant ambiguity in your daily tasks. You display a high degree of ownership over your work and can break down complex problems into manageable components and drive them to completion. Your estimation and planning skills are developing and you can anticipate and avoid risks in your team’s delivery.
You actively mentor other members of the team and routinely participate in the hiring process, new member onboarding, and overall team development.
You are ready for the next level when your judgment and counsel are sought out to solve gnarly and complex problems (using your domain expertise and estimation skills) and your manager is beginning to view you as a trusted partner and someone who reduces risk on the team.
Thanks for reading Tech Field Notes! Refer a friend or Subscribe for free to never miss a future post.
Senior Software Engineer
As a Senior Software Engineer, your leadership skills and delivery track record allow you to take up large and ambiguous initiatives with minimal support from your manager. By this stage, you have participated in the full product development cycle and have shipped large features on several occasions. You know when and how to effectively escalate before risks turn into delays or issues. Maybe you own a complex component or critical piece of the infrastructure. Your guidance is regularly sought out due to your reputation as an expert and proven track record in a given domain and your skillset begins to resemble a “T” shape; deep in some area(s) but with familiarity in a wide range of tangential areas.
You are a regular participant in the recruiting process and also influence how that process is shaped. You are also a key mentor for new members of the engineering team and ensure effective Onboarding and support for new members.
Your knowledge of the ecosystem and industry combined allows you to see opportunities in the future that might improve the team’s delivery or reduce the operational overhead of the team's software. You can anticipate and avoid risks and your input is sought out and included in the technical roadmap for your team.
You are ready for the next level when your influence has grown to be able to delegate to other team members and collaborate with other teams with minimal oversight. When your design skills begin to span multiple teams and sub-systems and can scale reliably both vertically and geographically. Your thinking is elevated to the overall system and you have delivered several large-scale organizationally impactful solutions.
Staff Software Engineer
Staff Software Engineers excel in both leadership and technical expertise. You may begin to consider deep specialization in a chosen field (go deep) or continue to broaden your overall expertise (go broad). You exhibit a high degree of ownership with relentless member focus and can drive large-scale complex initiatives where the solution is ambiguous and uncertain.
You are a trusted partner for management and can define a technical roadmap out over multiple quarters. Your contribution over time leads to less complex systems, more reuse with consistently lower maintenance costs, and consistently improved SLAs within a given area. You routinely partner with other related disciplines such as SRE, QA, and Infrastructure. You can map out and deliver solutions that span multiple teams (again within a given domain).
You are ready for the next level when your work starts to span multiple domains. When the impact of what you deliver starts to drive change across the overall organization as a whole and you can see the direct (and significant) impact your influence has on the business.
Senior Staff Engineer
A Senior Staff Engineer is working across several teams consistently and guiding multiple initiatives simultaneously, keeping multiple plates in the air while also focusing and anticipating the road 1 to 2 quarters ahead. You can anticipate the needs of the organization and map these back to the team’s situation and plan accordingly ensuring the team is well positioned for success. You are opinionated but not dogmatic and capable of driving consensus through data and diplomacy. You are a true partner for your management team and able to balance driving down technical debt and other tough choices with prioritizing new feature development.
You are ready for the next level when you begin to develop critical insight around longer-term technical strategy and investment. When you successfully influence business outcomes at a large scale through strategic technology investment to benefit multiple product lines, you are ready to contemplate the next step...
As a Principal Engineer, you carry significant responsibility as a standard bearer for the Engineering organization. Your vision drives the long-term (multi-year) technology roadmap for a specific area of the engineering organization. As a Principal, you not only see opportunities within a given domain but can look across multiple perhaps disparate areas of the business and “connect the dots”. You are skilled at identifying large-systemic problems and proactively offering solutions without prompting.
You have excellent judgment born through expertise, experience, and practicality with a high degree of empathy for your stakeholders. Your counsel is regularly sought out by key partners (engineering, product, and design leadership alike). Your expertise is known within a specific area of the software engineering industry, and you routinely define and share best practices within the organization's given space. This might even include publishing academic papers or presenting at industry conferences.
As a Principal Engineer you think big and may be called to take up special assignments that fall outside typical delivery for example; determining the feasibility of an innovation or concept. Although coding is likely NOT your primary function at this level you are still hands-on and can dive deep to implement new ideas or blaze new pathways as needed. This may lead to intellectual property filing and patent issuance (although all levels are eligible to create new intellectual property). You may also begin to get involved in M&A activity and know how to evaluate the strategic value of technology assets.
You are ready for the next level when you begin to build the next generation of senior engineers within the organization. As a Principal you are a Culture Carrier, setting the tone for others to aspire to. Your behavior sets the direction for a large area of the organization and when you’ve demonstrated competency in this capacity you are ready for the next challenge.
Senior Principal Engineer
Welcome to Senior Principal Engineer - you will be given the hardest problems to solve (not kidding)! As a Senior Principal Engineer, you have broad influence across the organization’s engineering landscape both technically and culturally. You regularly mentor and develop the next generation of engineering leaders and are seen both internally and externally as a thought leader in the company.
Your scope is broad and highly impactful and your judgment and intuition are commensurate. You are capable of tackling highly complex engineering and business challenges and breaking these down into difficult but achievable milestones to be shared and coordinated across multiple parts of the business and multiple years.
VP of Engineering and above
…from here on it gets fuzzy. Being effective at this level depends on the size of the company and the stage it’s at in its growth. “Discretionary” is the word I would use. I know VPs of Engineering who have a huge mandate, much larger than most “CTO” (chief technology officers). And I know CTOs who can and do still code. Personally, I modulate between both extremes.
That’s a high-level fly-through. Did you notice any trends? As you progress things tend to get fuzzier. Entropy and Ambiguity grow. Risk management, strategy, and forward-thinking become increasingly important. I’ll talk more about the hidden dimensions that are critical to success at every level in a future chapter.
In closing; If you don’t know where you’re going, any road will take you there. Don’t leave your career up to The Fates. When I set out 25 years ago, dreaming in the parking garage I had no idea where I’d end up. My plan was grandiose and turned out to be useless…it didn’t survive first contact with reality! Yet the act of planning was incredibly valuable.
Over the years my career has been blessed with good fortune and good people including Doogie (MD if you’re out there, it’s been way too long)…but in all these years I never did get that 32” flat-screen TV.
This article’s imagery is a photo I took last month of “The Taipei 101”. The 101 was the tallest building in the world until 2009 when the Burj Khalifa surpassed it, proof again that when you think you’ve peaked, there’s always another hill to climb.