As a new engineer, you would first want to become a master at building a foundation to build a simple cottage. You may be able to make this primarily alone, but getting support from somebody who has done it in the past will help you tremendously to gain and master the skills you will need to build tiny houses quickly and with high quality so that they do not collapse in the first windstorm. It surprises me that many organizations claiming to be 'flat' say that they do not believe in titles. I have heard it said about data stores that 'all databases have schemas...even the ones that say they do not, and I think the same applies to organizations more significant than a small handful of individuals. They may claim or even believe that they are not burdened by the politics of titles and organizational hierarchy, but that means that the power structure is there but not based on clear milestones or competencies. When engineering teams grow past a handful of people, the engineering leadership has to explicitly document what they consider a senior engineer's competencies to be and not leave that up to interpretation. Fundamental competencies are easily coloured by personal bias, both implicit and explicit. And these biases are a quick way to lose competent engineers.
As you become proficient at building great foundations and tiny houses, you start making larger houses with more detailed floorplans. You begin learning and mastering different techniques. Your places become multi-story. As your projects become more complicated, you realize that you can't build them alone; you have to get help and create with others as a team. A team that trusts you and works with you to construct impressive buildings efficiently and with quality. All this requires not just solid skills and mastery of building a foundation but also powerful skills in design and skills in making your team as excellent and effective as it can be.
To continue to master your skills and build even greater structures, you also have to develop a reputation of being a great engineer and builder – your reputation and track history need to be grounded in 360 feedback. This can manifest in terms of design patterns that others can subsequently leverage and architectural influence on related projects. This is when you start to value and expand your skillset in creating excellent transparency about what your team can construct. One of the great ways to convince partners to keep trusting you is to leverage data and transparently communicate how you evaluate quality, e.g. how you make sure they withstand rain, wind, and earthquakes. You also have to be crystal clear about your construction schedule and any complications with handing off keys to the building on time. You have to become good at understanding your customers and what they need from your building.
Part of scaling to larger construction projects realizes that you have to leverage partners to get things done. Knowing when to roll up your sleeves and when to leverage expertise or apply existing solutions is an art you'll master. In addition, while embracing working with partners, you generate alignment and shared purpose to get the project done while being flexible and communicating effectively to achieve a great outcome.
When you are a world-renowned leader and master of construction, you may have the opportunity to lead the construction of iconic structures. This can take many forms of leadership, from general contractor managing a team to build the facility, architect/engineer detailing/guiding the project plan and execution, master plumber/HVAC/electrician contractor tackling the most critical systems, etc.
You should master delivering software at task and feature level at this career stage and reliably deliver against your high confidence (90% probability of hitting the goal) commitments. As an engineer in this band, you should be productive in a codebase known to you (after you ramp up). Your productivity should reflect in the speed of development and your ability to debug the code base and follow common design patterns and coding standards. Part of the critical engineering foundation that you have to develop at this stage is ensuring the quality of your changes through proper testing (both automated and manual) and monitoring of all changes. It would help if you strived to always ship your changes in a manner that does no harm and can be easily undone (e.g. with flights/ramps/etc.) so that any regressions discovered can be reverted immediately.
It's expected that you become proficient at planning, tracking and communicating the progress of your work. It's also likely for you to show curiosity about your customers and start applying the customer-driven mindset to the features you develop. At this stage of your career, it's not expected for you to contribute significantly to the growth of others. Still, it's likely that you start developing collaboration skills and that you can work with highly supportive partners.
Software Engineer 2 (Middle Engineer)
At this stage of your career, you are expected to master your engineering and service health foundation. You should be highly productive in the codebase that your team/feature crew stewards and achieve mastery in testing, monitoring and releasing your changes with quality. You should be setting an example for others when testing and monitoring the changes you are shipping. Engineers at this career stage should strive to be the most prolific contributors to the codebase of their team and an example to others when it comes to applying coding standards. As an SWE 2, you should start to develop the skillset of effectively disambiguating between multiple design options and presenting the tradeoffs of each option.
In addition to mastering your engineering foundation, as an SWE 2, you are expected to start having more contributions to operational and product direction leadership. You are also likely to begin to contribute to the growth of others.
Specifically, as an SWE 2, you should achieve mastery of planning/scoping, tracking and communicating the progress of your work. It will help if you become very effective at setting and monitoring goals for your projects so that business impact is clear to the rest of your team and organization. You should leverage your customer knowledge foundation and start contributing to the group's product direction by influencing product direction at the feature level. We expect you to begin to help others grow, for example, by lightweight coaching, mentoring new hires, and providing constructive feedback that helps others improve.
Senior Software Engineer
As a senior software engineer, you should be highly effective at generating impact by delivering implementation across feature areas. It would help if you were a role model to other engineers on how to set accurate goals, measure progress towards those, and evaluate your end performance against those goals objectively. You are expected to have an exemplary engineering and service health foundation at this stage of your career. You should positively influence the engineering excellence of your broader team and help others improve their engineering foundation. You may no longer be the most prolific engineer on the team but instead consistently and critically contribute to making other engineers around you more effective, efficient and prolific. Tangibly, your success is evaluated increasingly by your positive impact on your team vs your contributions alone. It would help if you emerged as a technical leader on the team.
As a senior engineer, you should meaningfully contribute to the product direction starting within the scope of your team and learning to grow beyond the team, for example, by suggesting new features. It would help if you also were an effective collaborator and starting to develop the ability to handle complicated collaborations with contentious partners. A senior engineer should meaningfully make others around you better, including your engineering and non-engineering peers.
While not a formal distinction, generally, principal engineers are considered part of the broader engineering leadership team, regardless of role (IC, EM, GEM). These engineers lead the team to take on challenges appropriate for their position that enable the team's success in critical ways. As a principal software engineer, you should be a leader on the team. Your influence and leadership should span well outside of the team and into the more comprehensive organization, depending on your level. You should consistently look for and materialize opportunities to deliver business impact at a scope of exclusive products. You should contribute to the goal-setting of your team and ensure that your team has measurable, high-quality goals and an effective way to measure progress towards reaching them. You should be the go-to person on your team for engineering excellence. It would help if you significantly contributed to the architectural direction of products and systems your team and the broader organization develop.
You should be an active customer advocate and leverage your understanding of customer problems and needs to influence the product direction positively and, depending on your level, possibly also wider org's. You should collaborate with other engineers on your team and within the org to identify new sources of business impact, prioritize those, and act on the most promising opportunities as appropriate. It would be best if you were a role model to others when taking the initiative to improve the organization around you.
Principal Engineering Manager
This role carries most of the exact expectations of scope and impact as Principal SWE; however, the focus shifts very tangibly to success through others as a people manager. Tangibly, you should be committed to understanding the growth and happiness of each individual you manage, as well as understanding the health of the team as a whole. You control the work the team takes on, and just as importantly, what work the couple chooses to defer. You model E2E ownership of the outcomes you take on, from framing to design to implementation to iteration to support.
You build relationships with the engineers you manage, understanding each engineer's career aspirations and seek opportunities to align challenges with those aspirations. You meet regularly with your engineers 1:1. You coach the individual with both positive encouragements as well as constructive advice. You serve as an advocate for each individual's career while maintaining balance and maturity, evaluating each individual's demonstrated impact and sustained growth and readiness for career progression.
Principal Group Engineering Manager
This role carries most of the exact expectations of scope and impact as Principal EM; however, the focus shifts even more towards the team as a system and as a talent portfolio. Your team's success will be critically dependent on the EMs you choose, the talent you attract, and how you structure the team to maximize the talent on your team.
You partner with peer disciplines to define the strategy and outcomes for your team as a whole. You do this by understanding the organization's broader process, constraints, and critical timeframes and contextualizing this for leaders within your team. You clarify essential commitments while setting aggressive but achievable P90 goals (strong commits) with an ambitious set of P50 goals (stretch/aspirational opportunities). You allocate your team's resources at a macro level to ensure the success of critical commitments while empowering your EMs to make resource tradeoffs to achieve the broader set of outcomes your team takes on.
You proactively manage the careers of everyone on your team. You trust and support your EMs to grow individuals they work with; however, you are an engaged partner on career strategy for everyone. You ensure a regular heartbeat of connections, people and promotion discussions, career check-ins, and hold your team accountable for 100% completion within your team. You have regular skip 1:1s with all individuals on the team in addition to the regular 1:1s with the EMs. You advocate for your team effectively in broader talent and promotion discussions by being well-prepared, clearly able to articulate impact as well as demonstrated skill growth.
Satya Nadella began his prolific career at Microsoft in 1992. At only 25 years of age, Nadella quickly demonstrated his commitment to learning when, despite already having a master’s degree in computer science from the University of Wisconsin - Milwaukee, he chose to commute each weekend to Chicago to complete his MBA at the University of Chicago’s Booth School of Business. He travelled between Washington and Chicago for many years, eventually earning his degree in 1997.
Quickly rising through the ranks, Nadella became vice president of Microsoft bCentral in 1999, leading the web services for small businesses. Continuing his rise within the organization, Nadella became the corporate VP of Microsoft Business Solutions in 2001 where he was responsible for developing software to handle business-process management for small and midsize businesses. Continuing his tenure at Microsoft, Nadella became the senior VP of Microsoft Online Services in 2007, where he oversaw the Bing search engine, Microsoft Office programs and Xbox Live. And he wasn’t done yet. In 2011, Nadella was promoted to president of the Server and Tools Division at Microsoft. It was in this role that he was responsible for the strategy, engineering, marketing and product development for Microsoft’s server and cloud computing efforts for business customers. After 22 years working in different departments of Microsoft, through many iterations of technology, learning the company inside and out, Satya Nadella was named the CEO in February of 2014.
After this role, many organizations may have Director, Vice President or Chief Vice President roles before a person could get to CEO :) How is it in your company?