Staff Engineering: Explained
Know what staff engineering means and the roles and responsibilities of a staff engineer.
Staffing engineering was made popular in early 2021 by Will Larson in his book “Staff Engineer: Leadership beyond the management track.” As the concept gained more popularity, the staff engineering track has served as an emerging complementary in the tech career framework in the last few years.
While the term “staff engineering” might be relatively new, the nature of the responsibilities is not. Most engineering professionals with 10+ years of experience will be involved with staff engineering responsibilities in one way or another. Titles such as system architect, software architect, enterprise architect, principle developer, principle engineer, etc., were more commonly practiced in the industry before the popularity of staff engineering.
After being a lead developer a few years ago and leading multiple projects with different complexities, I had to choose between staff engineering and management. While being an architect was one of the dream roles I had when I was a developer, and some of the other architects in the company highly endorsed me for the role, I eventually selected to move on to engineering management. While the management journey has been rewarding intellectually, staff engineering remains a role close to my heart, especially when I have direct management responsibilities to several staff engineers.
This article will explore what staff engineering means and what a staff engineer does.
Technical Direction
Setting technical direction is one of the most important but usually not the most frequent tasks as a staff+ engineer. Realistically, how often do teams need to pick a cloud provider, or how often do teams need to decide whether to go with functional or object-oriented programming? When staff+ engineers must make strategic technical decisions very often for the team, the team might face a different challenge. However, the tactical activities to support the alignment on the technical direction are crucial for staff+ engineers.
Defining a technical strategy, sometimes known as an engineering strategy, requires a lot of input and active craftsmanship from the staff+ engineering team. Engineering strategy depends on product strategy, and product strategy depends on organization strategy. The staff+ engineering team needs to ensure the technical strategy aligns with the bigger picture to serve the products and, eventually, the business. Technical strategy is not always about using the latest technology, it is not equivalent to product strategy, and it is not always about the newest ideas. I have written a few more thoughts on technical strategy.
Depending on the nature of the engineering team, some teams have functional-level technical direction, for example, backend direction moving from RESTful API call to event-driven architecture, SRE direction moving from Kubernetes clusters to serverless architecture, QA investing into contract testing, etc. Some teams (often B2B in nature) have product-level technical direction, for example, moving from shipping software as a package or sending consultants for implementation and integration to the software-as-a-service solution. The former requires more depth, while the latter requires more breadth in technical excellence. Either way, the staff+ engineering team needs to demonstrate a lot of leadership in driving these directions to success.
Coaching and Mentorship
Staff+ engineers are expected to be some of the most experienced technical members of the engineering team. They are often regarded as the technical experts and mentors in the team, and team members will and should reach out to them when facing technical challenges. Providing mentorship to less senior engineers can be one of the most valuable activities for the Engineering team and one of the most rewarding experiences in one’s career. Technical leaders groom more technical leaders.
Providing technical mentorship means sharing past experiences, both successful and unsuccessful implementations tackling technical challenges. Sometimes it can be sharing thought processes in addressing major engineering challenges. Note that mentorship is about sharing relevant engineering experience rather than telling the mentee what to do.
For example, “if I were you, this is what I would do…” or “you should be doing…” Those are the bad examples. A good mentoring conversation will sound like “In this past project, I picked Multi-AZ replication over Geo-replication for data storage because 80% of the customers are within this region, and the cost did not justify due to the volume and criticality of the data at that point of time. Unfortunately, it turned out to be a bad idea because the remaining 20% of the customers contribute more than 70% of the revenue. Some of them have use cases we were unaware of that can benefit from Geo-replication.” See the difference?
Providing technical coaching can be trickier than mentorship. Coaching conversation takes slightly more skills and structure to be effective. It is a conversation of guiding engineers to discover the root cause of the issue or to be aware and fully comprehend the real issue. Then, guiding the engineer to find a solution by asking provoking questions. Again, the staff+ engineer should not be tempted to give instructions or tactical steps on what to do but lead the engineers to find their solutions.
Providing Engineering Perspective Into the Business
Staff+ engineers are often involved in business-critical decision-making, if not driving important and high-value projects. Unlike traditional businesses, where technology is a cost overhead, many modern business models have technology as an enabler to revenue-generating activities. Making strategic technology investments and direction by getting staff+ engineers a seat at the discussion table becomes essential. That means staff+ engineers must be equipped with sufficient business domain to provide contextual input to business stakeholders.
Technical leadership from staff+ engineers goes beyond system implementation. Staff+ engineers who understand the business direction proactively provide Engineering perspective into the business. Based on the systems that are already in place or will take place, staff+ engineer provides the business context in the form of identifying cloud spending forecast and optimization, reviewing vendor cost, investment in tool or alternative, skill set in the team, technical milestones and timeline for delivery, customer integration and migration, technical support needed post-production and so on.
Technology choices potentially unlock business capabilities. For example, when customer data do not sit within the same database, the ability to cross-sell multiple products can depend on how liberated the customer data is and whether there is an appropriate mechanism or platform to allow the data to be shared in a safe, fast, and efficient manner. Such engineering capability unlocks business potential, and staff+ engineers play an important role in bridging the gap between business and engineering.
Research and Development
Innovation is the DNA of every tech company. The lack of innovation is an early indication of the downfall of a tech business. While many companies uphold practices such as 20% time (20% of the engineers’ capacity used for innovation work) or innovation sprint (once every five sprints will be used as an innovation sprint), R&D is embedded into the daily responsibility of a staff+ engineer.
However, that doesn’t mean the staff+ engineer can aimlessly start playing with irrelevant technology. The freedom to research is not free time, after all. Maturity is expected from staff+ engineer to identify targeted areas for R&D work that has the potential to benefit the engineering team and business.
The R&D work can involve studying white papers for a technical approach, developing a proof of concept for a new service in the cloud provider, testing out an optimization technique that can either improve the performance or bring cost lower, performing a pilot implementation for a new SDK, etc.
Such R&D work is often started as just-for-fun pet project ideas for less senior but inspired engineers. The expectation for staff+ engineers will be to channel the R&D outcomes to benefit the engineering team or business. One of the outcomes of R&D is to deliver a white paper for internal communication.
Staff+ engineers can sometimes spend meaningful portions of their productive time writing documentation, whether for strategic justification on technical direction (to answer questions like why do we need to do this again?) or for tactical implementation as guidelines for engineers (to answer questions like now that I understand why, but how do I do it?).
Writing Code vs Management
Do staff+ engineers still write code? For most companies, the answer is — yes, but to what extent depends. It will depend if that is the best way to spend the staff+ engineers’ time for the business on that project. For example, to implement a time-critical proof of concept, a staff+ engineer will take the learnings from the recent R&D together with an understanding of the product domain to build the proof of concept and to share the solution with the rest of the engineers.
It might have taken three times more time if the staff+ engineer were to explain the concept, train the team, review and provide revisions on the solution.
For cadence-based product delivery cycles, can staff+ engineers write codes? Yes, they can. But should they? Maybe not, if the other less senior engineers can achieve the same. Staff+ engineers need to ask themselves, is writing this code the best way for me to contribute to the engineering team and the business?
Although staff engineering is typically an individual contributor role, it will be unrealistic to assume that the staff+ engineer will have zero management responsibilities regarding technical leadership. Often, a staff+ engineer will manage technical initiatives that have the following qualities:
- experimental or filled with a high level of uncertainty
- coordinate cross-functional or cross-business domain technical integration
- manage stakeholders who require detailed technical inputs
- sometimes, have a small number of direct reports (engineers) during the absence of a people manager
However, the percentage of the management responsibilities should not cross 30% of the staff+ engineer’s capacity.
Career Framework for Staff+ Engineer
A well-defined career framework for a staff+ engineer is typically more common in big tech firms than in smaller organizations. Many smaller teams might not even have a career framework defined, and titles are freely thrown around.
If you are into technical leadership and do not think conventional engineering management is for you, staff engineering is certainly a good alternative you should focus on developing your career. Who knows, the staff engineering career path might overtake the mainstream shortly? For now, many companies embracing staff engineering have a parallel track for management and staff+.
It will be an incomplete discussion if compensation is not covered in the career framework. Traditionally, some of the most experienced engineers will make the equivalent of an entry-level manager. Both roles are equally challenging in different ways. In the last few years, as the appreciation for staff engineering contribution has grown, some high-impact staff+ engineers have the potential to make more than a manager, especially those who proactively add business value through the engineering lens.
The ceiling for individual contributors in staff+ capacity has been raised recently. In other words, it is possible to have a higher compensation package as a staff+ engineer than a manager if one is promptly crafting high-quality, impactful, effective solutions for the business.
Summary
Staff+ engineering might be a relatively new term, but it is not a new concept in the tech industry. The staff+ responsibilities have always been there in the business, presented in different forms. Personally, I’m glad to see more tech companies starting to distinguish and embrace the difference between engineering management and staff engineering to provide room for both tracks to grow rather than forcing every engineer into the management track, which can be a mistake sometimes. If you are intrigued by the staff engineering responsibilities, continue your craft passionately, and know that the future is bright for you.