Introduction
This framework allows software engineering managers to have meaningful conversations with their direct reports around the expectations of each position and how to plan for the next level in their career ladder.
Although the framework uses roles and levels that are somewhat standard in the US tech industry, every company is different. Please use the information provided as a baseline and feel free adjust it to your needs.
The framework relies heavily in radar charts to show visually the different perspectives and expectations of a given position:
Career Ladders
The framework has 4 different ladders:
- Developer: role also known as programmer or software engineer, requires a deep level of technical expertise
- Tech Lead: role also known as dev lead, is the owner of the system and requires a unique balance between hands-on development, architecture knowledge and production support
- Technical Program Manager: role responsible for coordinating and driving to completion initiatives that span multiple teams
- Engineering Manager: role also known as dev manager, is responsible for the consistent delivery, career growth and level of happiness of the team
If you are confused about the difference between a Tech Lead and an Engineering Manager, please refer to the Tech Lead vs Engineering Manager page for a detailed comparison.
| Level | Senior | Developer | Tech Lead | Technical Program Manager | Engineering Manager |
|---|---|---|---|---|---|
| 1 | No | D1 | |||
| 2 | No | D2 | |||
| 3 | No | D3 | |||
| 4 | Yes | D4 | TL4 | TPM4 | |
| 5 | Yes | D5 | TL5 | TPM5 | EM5 |
| 6 | Yes | D6 | TL6 | TPM6 | EM6 |
| 7 | Yes | D7 | TL7 | TPM7 | EM7 |
(click on position name for more details)
Axes
The chart shown above has the following 5 axes:
- Technology: knowledge of the tech stack and tools
- System: level of ownership of the system(s)
- People: relationship with the team(s)
- Process: level of engagement with the development process
- Influence: scope of influence of the position
The influence axis can be seen as a different dimension since it is orthogonal and applies to all the other axes.
Each axis has 5 different levels of performance. It is important to highlight that every level includes the previous one(s). For example, someone that evangelizes technology, specializes and adopts it as well.
Keep reading to better understand each level.
Levels
Technology
- Adopts: actively learns and adopts the technology and tools defined by the team
- Specializes: is the go-to person for one or more technologies and takes initiative to learn new ones
- Evangelizes: researches, creates proofs of concept and introduces new technologies to the team
- Masters: has very deep knowledge about the whole technology stack of the system
- Creates: designs and creates new technologies that are widely used either by internal or external teams
System
- Enhances: successfully pushes new features and bug fixes to improve and extend the system
- Designs: designs and implements medium to large size features while reducing the system's tech debt
- Owns: owns the production operation and monitoring of the system and is aware of its SLAs
- Evolves: evolves the architecture to support future requirements and defines its SLAs
- Leads: leads the technical excellence of the system and creates plans to mitigate outages
People
- Learns: quickly learns from others and consistently steps up when it is required
- Supports: proactively supports other team members and helps them to be successful
- Mentors: mentors others to accelerate their career-growth and encourages them to participate
- Coordinates: coordinates team members providing effective feedback and moderating discussions
- Manages: manages the team members' career, expectations, performance and level of happiness
Process
- Follows: follows the team processes, delivering a consistent flow of features to production
- Enforces: enforces the team processes, making sure everybody understands the benefits and tradeoffs
- Challenges: challenges the team processes, looking for ways to improve them
- Adjusts: adjusts the team processes, listening to feedback and guiding the team through the changes
- Defines: defines the right processes for the team's maturity level, balancing agility and discipline
Influence
- Subsystem: makes an impact on one or more subsystems
- Team: makes an impact on the whole team, not just on specific parts of it
- Multiple Teams: makes an impact not only his/her team but also on other teams
- Company: makes an impact on the whole tech organization
- Community: makes an impact on the tech community
FAQs
What if some of the people don't meet all the points?
That is very normal, people are usually stronger in some areas and weaker in others. The framework should not be used as a checklist to promote people but instead as guidance to have meaningful career conversations.
What if my organization's career ladder is different?
Since the framework is open source, you have the opportunity to adapt it to your organization. Feel free to use the chart template to define your own levels.
When is a person ready to move to the next level?
Companies usually expect a person to be performing at the next level consistently for several months before formalizing a promotion.
How do I collect evidence to support the discussion with my direct reports?
Different teams collect evidence in different ways. A recommended approach is to use a combination of:
- 1:1 conversations
- Feedback from peers and other teams
- Self-evaluation
Could the framework provide more specific examples of behavior to support each level?
Specific examples of behavior require knowledge about the way that the team works, the system architecture and its technology stack. It is recommended to allow each team to define their own examples.
Why does the framework stop at level 7?
Levels 8 and above vary drastically from company to company. Organizations of different sizes tend to assign a diverse level of scope to positions so high in their structure.
Do you have any additional resources about the topic?
-
The Manager's Path: Camille Fournier does an excellent job at describing the expectations and challenges of many engineering positions. Also, she provides good advice about writing a career ladder in chapter 9.
-
How to Be Good at Performance Appraisals: Dick Grote explains in simple terms how to define job responsibilities and how to evaluate performance (results and behaviors).
Developer
Role also known as programmer or software engineer, requires a deep level of technical expertise.
| Level | Senior | Position |
|---|---|---|
| 1 | No | D1 - Developer 1 |
| 2 | No | D2 - Developer 2 |
| 3 | No | D3 - Developer 3 |
| 4 | Yes | D4 - Developer 4 |
| 5 | Yes | D5 - Developer 5 |
| 6 | Yes | D6 - Developer 6 |
| 7 | Yes | D7 - Developer 7 |
D1 - Developer 1
- Adopts: actively learns and adopts the technology and tools defined by the team
- Enhances: successfully pushes new features and bug fixes to improve and extend the system
- Learns: quickly learns from others and consistently steps up when it is required
- Follows: follows the team processes, delivering a consistent flow of features to production
- Subsystem: makes an impact on one or more subsystems or team pods
D2 - Developer 2
- Adopts: actively learns and adopts the technology and tools defined by the team
- Designs: designs and implements medium to large size features while reducing the system's tech debt
- Supports: proactively supports other team members and helps them to be successful
- Enforces: enforces the team processes, making sure everybody understands the benefits and tradeoffs
- Subsystem: makes an impact on one or more subsystems or team pods
D3 - Developer 3
- Specializes: is the go-to person for one or more technologies and takes initiative to learn new ones
- Designs: designs and implements medium to large size features while reducing the system's tech debt
- Supports: proactively supports other team members and helps them to be successful
- Challenges: challenges the team processes, looking for ways to improve them
- Team: makes an impact on the whole team, not just on specific parts of it
D4 - Developer 4
- Evangelizes: researches, creates proofs of concept and introduces new technologies to the team
- Owns: owns the production operation and monitoring of the system and is aware of its SLAs
- Mentors: mentors others to accelerate their career-growth and encourages them to participate
- Challenges: challenges the team processes, looking for ways to improve them
- Team: makes an impact on the whole team, not just on specific parts of it
D5 - Developer 5
- Masters: has very deep knowledge about the whole technology stack of the system
- Evolves: evolves the architecture to support future requirements and defines its SLAs
- Mentors: mentors others to accelerate their career-growth and encourages them to participate
- Adjusts: adjusts the team processes, listening to feedback and guiding the team through the changes
- Multiple Teams: makes an impact not only on the whole team but also on other teams
D6 - Developer 6
- Creates: designs and creates new technologies that are widely used either by internal or external teams
- Leads: leads the technical excellence of the system and creates plans to mitigate outages
- Mentors: mentors others to accelerate their career-growth and encourages them to participate
- Adjusts: adjusts the team processes, listening to feedback and guiding the team through the changes
- Company: makes an impact on the whole tech organization
D7 - Developer 7
- Creates: designs and creates new technologies that are widely used either by internal or external teams
- Leads: leads the technical excellence of the system and creates plans to mitigate outages
- Mentors: mentors others to accelerate their career-growth and encourages them to participate
- Adjusts: adjusts the team processes, listening to feedback and guiding the team through the changes
- Community: makes an impact on the tech community
Tech Lead
Role also known as dev lead, is the owner of the system and requires a unique balance between hands-on development, architecture knowledge and production support.
| Level | Senior | Position |
|---|---|---|
| 4 | Yes | TL4 - Tech Lead 4 |
| 5 | Yes | TL5 - Tech Lead 5 |
| 6 | Yes | TL6 - Tech Lead 6 |
| 7 | Yes | TL7 - Tech Lead 7 |
TL4 - Tech Lead 4
- Specializes: is the go-to person for one or more technologies and takes initiative to learn new ones
- Owns: owns the production operation and monitoring of the system and is aware of its SLAs
- Coordinates: coordinates team members providing effective feedback and moderating discussions
- Adjusts: adjusts the team processes, listening to feedback and guiding the team through the changes
- Subsystem: makes an impact on one or more subsystems or team pods
TL5 - Tech Lead 5
- Evangelizes: researches, creates proofs of concept and introduces new technologies to the team
- Evolves: evolves the architecture to support future requirements and defines its SLAs
- Coordinates: coordinates team members providing effective feedback and moderating discussions
- Defines: defines the right processes for the team's maturity level, balancing agility and discipline
- Team: makes an impact on the whole team, not just on specific parts of it
TL6 - Tech Lead 6
- Masters: has very deep knowledge about the whole technology stack of the system
- Leads: leads the technical excellence of the system and creates plans to mitigate outages
- Coordinates: coordinates team members providing effective feedback and moderating discussions
- Defines: defines the right processes for the team's maturity level, balancing agility and discipline
- Multiple Teams: makes an impact not only on the whole team but also on other teams
TL7 - Tech Lead 7
- Masters: has very deep knowledge about the whole technology stack of the system
- Leads: leads the technical excellence of the system and creates plans to mitigate outages
- Coordinates: coordinates team members providing effective feedback and moderating discussions
- Defines: defines the right processes for the team's maturity level, balancing agility and discipline
- Company: makes an impact on the whole tech organization
Technical Program Manager
Role responsible for coordinating and driving to completion initiatives that span multiple teams.
| Level | Senior | Position |
|---|---|---|
| 4 | Yes | TPM4 - Technical Program Manager 4 |
| 5 | Yes | TPM5 - Technical Program Manager 5 |
| 6 | Yes | TPM6 - Technical Program Manager 6 |
| 7 | Yes | TPM7 - Technical Program Manager 7 |
TPM4 - Technical Program Manager 4
- Specializes: is the go-to person for one or more technologies and takes initiative to learn new ones
- Designs: designs and implements medium to large size features while reducing the system's tech debt
- Coordinates: coordinates team members providing effective feedback and moderating discussions
- Adjusts: adjusts the team processes, listening to feedback and guiding the team through the changes
- Multiple Teams: makes an impact not only on the whole team but also on other teams
TPM5 - Technical Program Manager 5
- Specializes: is the go-to person for one or more technologies and takes initiative to learn new ones
- Designs: designs and implements medium to large size features while reducing the system's tech debt
- Coordinates: coordinates team members providing effective feedback and moderating discussions
- Defines: defines the right processes for the team's maturity level, balancing agility and discipline
- Multiple Teams: makes an impact not only on the whole team but also on other teams
TPM6 - Technical Program Manager 6
- Specializes: is the go-to person for one or more technologies and takes initiative to learn new ones
- Owns: owns the production operation and monitoring of the system and is aware of its SLAs
- Manages: manages the team members' career, expectations, performance and level of happiness
- Defines: defines the right processes for the team's maturity level, balancing agility and discipline
- Company: makes an impact on the whole tech organization
TPM7 - Technical Program Manager 7
- Specializes: is the go-to person for one or more technologies and takes initiative to learn new ones
- Evolves: evolves the architecture to support future requirements and defines its SLAs
- Manages: manages the team members' career, expectations, performance and level of happiness
- Defines: defines the right processes for the team's maturity level, balancing agility and discipline
- Community: makes an impact on the tech community
Engineering Manager
Role also known as dev manager, is responsible for the consistent delivery, career growth and level of happiness of the team.
| Level | Senior | Position |
|---|---|---|
| 5 | Yes | EM5 - Engineering Manager 5 |
| 6 | Yes | EM6 - Engineering Manager 6 |
| 7 | Yes | EM7 - Engineering Manager 7 |
If you have other managers as direct reports, you might want to read the Managing Managers section since it provides more information about the "Manages People" aspect of the role.
EM5 - Engineering Manager 5
- Evangelizes: researches, creates proofs of concept and introduces new technologies to the team
- Owns: owns the production operation and monitoring of the system and is aware of its SLAs
- Manages: manages the team members' career, expectations, performance and level of happiness
- Adjusts: adjusts the team processes, listening to feedback and guiding the team through the changes
- Team: makes an impact on the whole team, not just on specific parts of it
EM6 - Engineering Manager 6
- Evangelizes: researches, creates proofs of concept and introduces new technologies to the team
- Evolves: evolves the architecture to support future requirements and defines its SLAs
- Manages: manages the team members' career, expectations, performance and level of happiness
- Defines: defines the right processes for the team's maturity level, balancing agility and discipline
- Team: makes an impact on the whole team, not just on specific parts of it
EM7 - Engineering Manager 7
- Evangelizes: researches, creates proofs of concept and introduces new technologies to the team
- Evolves: evolves the architecture to support future requirements and defines its SLAs
- Manages: manages the team members' career, expectations, performance and level of happiness
- Defines: defines the right processes for the team's maturity level, balancing agility and discipline
- Multiple Teams: makes an impact not only on the whole team but also on other teams
Developer Career Ladder in text form
Note: All members of the technology team are expected to exhibit the company values in their work.
Engineer 1:
Displays solid understanding of core CS fundamental concepts. Focused on growing as an engineer, learning the team’s tools and current processes, and developing productivity skills, as well as learning about the best-practices of software engineering such as testing, source control, and agile planning.
Capable of taking well-defined tactical sub-tasks from a larger project and completing these tasks in a reasonable time frame.
Focused on learning about a specific component or product sub-area and mastering that component.
Communicates status to their manager and team, and strives to learn the Rent the Runway core values and exhibit these values in their daily work.
Engineer 2:
An engineer two will enter this level capable of taking well-defined tasks and completing them in a way that is considered by the team to be high-quality with supervision from more senior team members. The progress through this level is focused on taking tasks of increasing complexity, scope and importance and completing them with very high quality with a lessening need for manager/tech lead oversight.
This level is the bread-and-butter level of engineering growth. Engineers at this level should be focused on becoming great engineers, learning how to set high quality bars for their work without sacrificing productivity. All engineers at and above this level should religiously follow stated best practices for the team without excessive handholding. Engineers at this level will continue to make mistakes, but should be improving the speed at which they learn from these mistakes. By the time an engineer 2 is ready to be promoted s/he will have focused on some technology as their expertise and become capable of mentoring interns and new engineers in these areas. They will start to participate more in the technical design process, often with guidance from senior engineers.
Engineers at this level are assumed to be constantly making steady progress on tasks that are assigned to them and know when to ask for help when they are blocked. They can own their independent small-to-medium features all the way through from technical design to launch. They are capable of prioritizing the work in front of them and able to make forward progress, avoiding the temptation to focus on unimportant details or excessive bikeshedding.
The impact at this level is focused on task completion and depth in a small area of the code base. Engineers at this level should be capable at release responsibilities for their area as well as on-call support for simple incidents in areas that they are not always familiar with.
They communicate well and are capable of delivering feedback to peers and their manager. When given a task with unclear requirements they know how to ask for clarification, and ensure that all assumptions are vetted before work starts to reduce the need for re-work. They understand how their work fits into the larger picture for their team, and use this to identify conflicting requirements to their tech lead and product manager. An important focus of this level is developing empathy for the users of their software, whether they be internal employees, customers, or other developers on the team. A team member at this level is seeking out the context they need to understand the why of a particular feature and nurturing this empathy via that understanding.
Senior Engineer 1:
The senior engineer 1 should be seen as a rock-solid engineer who is a master of their specific domain. The senior engineer 1 is capable of owning technical design for projects of moderate complexity, and understands the tradeoffs in creating good software in their area. They hold a depth of knowledge in systems that enables them to debug those systems effectively without flailing. In addition to writing consistently high-quality code they are aware of industry best practices and trends, and have acquired at least one major skill outside of programming such as monitoring, performance optimization, documentation, integration testing, visual design.
The senior engineer 1 gets a lot done. They are responsible for complex tasks and complete them despite roadblocks, grabbing others for help or insight as necessary. The senior engineer 1 requires very little oversight beyond high-level direction; they can take a complex user story, break it down into sub-tasks, and complete their sub-tasks with relative ease. The senior engineer 1 shows initiative beyond knocking tasks off a list; they are able to identify and suggest areas of future work for themselves or their teams. They seek evidence to support their ideas and start to build cases for these ideas. They deliver products to QA that they believe are well-baked and bug-free.
The senior engineer 1 has end-to-end responsibility for projects of increasing complexity that encompass more than their own development. They contribute to the common code bases and standards for the team. They understand the business that their code supports, and possess empathy for the users of their software; they use this understanding to influence their task prioritization. They assist QA in identifying and validating test cases and can identify regression risks in their features. In general, they can identify risks in code, features, and design, and communicate these to the appropriate parties.
The senior engineer 1 is known outside of their core team as a technology leader. They participate extensively in code reviews, and mentor others via code reviews and pairing, as well as frequently presenting at Drinks and Demos and team meetings. They work effectively with non-tech members of their pillar. They are able to identify problems with requirements and help their team course-correct around these issues. Recommended reading: http://www.kitchensoap.com/2012/10/25/on-being-a-senior-engineer/ Senior Engineer 2: The senior engineer 2 exhibits leadership and influence well beyond themselves. This leadership comes in the form of team leadership (acting as a tech lead for a large group), exceptionally strong individual contribution, or something between these two extremes (extensive mentoring of junior team members while maintaining deep individual contribution, for example). Given a nebulous project, a senior engineer 2 will appropriately scope it, find a solution, implement and launch that solution.
The senior engineer 2 is viewed as the go-to expert in some significant area of the code base, and not just because they are the only person who has ever worked in that code base. They are involved in setting the standards for the entire organization and providing technical advice and decision-making that affects not only their group but other teams or the company at large. They research and propose new technologies, and have a broad understanding of the entire architecture, as well as very detailed understanding of their area. They may not write as much code day to day but they still deliver features and have learned how to balance leadership and individual contribution.
The senior engineer 2 helps large groups of engineers deliver complex projects. They are known for drama-free launches, and own the technical testing and performance planning side of these projects. The senior engineer 2 knows how to do project management. They take long projects or complex groups of user stories and break this work down into milestones to avoid large monolithic deliverables. They strive to deliver software on-time and improve the accuracy of their team’s estimations.
Beyond the day-to-day, the senior engineer 2 is starting to have a bigger impact beyond themselves and their immediate projects. They identify big issues and opportunities in the technology and organization, and work across teams to create solutions to these issues. They proactively identify and clean up technical debt before it turns into a long-term problem, and encourage and enable their team to do the same. They are setting direction in some major part of the technology for their pillar and have a major role in the pillar or team’s decision-making process.
As a leader, the senior engineer 2 contributes widely to making others better via code reviews, mentoring, and training. They will sit on architecture review boards as appropriate and may be asked to provide feedback on projects outside their area. They understand the tradeoffs between technical, analytical and product goals, and strive to create solutions that satisfy all of these goals. They know how to not only identify technical problems and create solutions, but are also able to get cross-team buy-in for their solutions and manage projects to make these solutions come to life.
TECH LEAD:
The tech lead role is not a point on the ladder, but a set of responsibilities that any engineer may take on once they reach the senior level. This role may or may not include people management, but as it does, the tech lead is expected to manage these team members to the high management standards of RTR tech. These standards include: regular (weekly) 1-1 touchbases Regular feedback on career growth, progression towards goals, areas for improvement, and praise as warranted working with reports to identify areas for learning and helping them grow in these areas via project work, external learning, or additional mentoring
If a tech lead is not managing directly, they are still expected to provide mentorship and guidance to the other members of the team.
The tech lead is learning how to be a strong technical project manager, and as such, they are scaling themselves by delegating work effectively without micromanaging. They focus on the whole team’s productivity and strive to increase the impact of the team’s work product. They are empowered to make independent decisions for the team and are learning how to handle difficult management and leadership situations. They are also learning how to partner effectively with product, analytics, and other areas of the business.
It is not required that an engineer work as a tech lead to progress, but it is the most common way for engineers to grow from senior engineer 1 -> 2 and is required to grow from senior engineer 2 to engineering lead. Realistically it is very hard to grow past senior engineer 2 without ever having acted as a tech lead, even on the individual contributor track, due to the importance at senior levels of leadership and responsibility.
TRACKS SPLIT note: at this point, expectations ramp up dramatically from level to level, because each successive level now represents a different job role than the previous level. It is possible to reach senior engineer 2 as a focused, high-quality individual contributor. But on either track the expectations for the following levels indicate a level of broad leadership that requires more than generalized “thought leadership”, but also the ability to engage groups of people within technology and outside of technology to make bigger and bigger things happen. MANAGEMENT TRACK
Engineering Lead: The engineering lead has gone from a tech lead of a small to mid-sized team to the manager of an entire pillar team’s worth of engineering team members (may have tech leads reporting to them). They are fully comfortable with agile management practices, and proven project managers who have delivered many large projects successfully. As a technical leader they ensure that they are tracking the team’s efficiency and quality of deliverables at SDLC and regularly adjusting processes and timelines to ensure high quality is delivered. They own large responsibility for producing software that is HA, monitorable, and maintainable over time.
The engineering lead will spend less time writing code, but there is an expectation that they still engage in small technical deliverables such as bug fixes and small features, without blocking or slowing down the progress of their team. More than writing code, they hold responsibility for identifying bottlenecks in the process and roadblocks to success for their team and clearing these roadblocks.
This role is expected to have a large impact on the success of their pillar as a whole. In particular, leaders in this role are capable of identifying the most high-value projects and keeping their team focused on these projects. As part of keeping the team focused the engineering lead will partner closely with the product lead to manage project scope and ensure the technical deliverables are met. In addition to focusing the team, they are capable of identifying headcount needs for the team and planning and recruiting to fill these needs.
The engineering lead is an independent manager. They are comfortable managing team members with different skill sets from their own. They communicate expectations clearly to all team members, solicit and deliver individual feedback frequently (not just in the scope of review periods). In addition to strong management skills, the engineering lead acts as a leader for the technical roadmap for the pillar. They clearly communicate the timeline, scope and risks to their pillar partners, and lead the delivery of major initiatives on clear timelines. Additionally, they identify areas of strategic technical debt, do the cost/benefit analysis for resolving this debt and communicate suggested timelines for prioritizing this to the management team.
Engineering Director
The engineering director is responsible for a significant area of the technology team. With the size of technology in 2015, the engineering director will typically lead engineers across multiple pillars, or multiple technology functions, with both tech leads and individual contributors reporting into this person. The engineering director is not generally expected to write code on a day-to-day basis. However, the engineering director is responsible for their organization’s overall technical competence, guiding and growing that competence in the whole team as necessary via training and hiring. They should have a strong technical background and spend some of their time researching new technologies and staying abreast of trends in the tech industry. They will be expected to help debug and triage critical systems, and should understand the systems they oversee well enough to perform code reviews and help research problems as needed. They should contribute to the architecture and design efforts primarily by serving as the technically-savvy voice that asks business and product questions of the engineers on their teams, ensuring that the code we are writing matches the product and business needs and can scale appropriately as those needs grow. The engineering director is primarily concerned with ensuring smooth execution of complex deliverables. To that end, they focus on ensuring that we continually evaluate and refine our development/infrastructure standards and processes to create technology that will deliver sustained value to the business. They are responsible for creating high performance, high velocity organizations, measuring and iterating on processes as we grow and evolve as a business. They are the leaders for recruiting, headcount management and planning, career growth and training for the organization. As necessary, directors will manage vendor relationships and participate in the budgeting process. The impact of an engineering director should reach across multiple areas of the technology organization. They are responsible for creating and growing the next generation of leadership and management talent in the organization, helping that talent learn how to balance technical and people leadership and management. They are obsessed with creating high-functioning, engaged and motivated organizations, and they are expected to own retention goals in their organization. Additionally engineering directors are responsible for strategically balancing immediate and long-term product/business focused work with technical debt and strategic technical development. Directors are strong leaders, and set the example for cross-functional collaboration both between technology and other areas of the company, and across divisions of technology. The goal of this collaboration is to create both a strategic and tactical tech roadmap that tackles both business needs, efficiencies and revenue as well as fundamental technology innovation. The director is a very strong communicator and can simplify technical concepts in a way to explain them to non-technical partners, and take business direction and explain it to the technology team in a way that inspires and guides them. Directors of engineering help to create a positive public presence for Rent the Runway tech and are capable of selling the company and their area to potential candidates. Due to their breadth of exposure to both technology and the business drivers, Directors are responsible for guiding the OKR process for all of the teams in their organization, helping these teams articulate goals that support both business initiatives and technology and organizational quality.
It is important to note that each director may have specific responsibilities given their area of oversight. For example, the director of operations is ultimately responsible for all critical infrastructure (databases, servers, etc) and must ensure continued support and uptime of these systems. The director over warehouse operations has specific responsibilities to the uptime and responsiveness of warehouse systems. The director of storefront has responsibility for the performance of the website. These are not written into the general job description but understanding of the scope of the responsibility is important for understanding the scope of the job.
TECHNICAL TRACK STAFF ENGINEER:
An engineer at this level has shown strategic impact over some combination of a large team, a very large technical problem, and/or a long time horizon. The problems that the staff engineer is solving are very open-ended even to the leadership who presented the problem. Most engineers at Rent the Runway would not be able to own and solve the problems that this person is attacking.
The staff engineer is sought-after for technical guidance across the team. They have a track record of anticipating technical problems that will fall out of major products and designing solutions to overcome those problems. They are deeply knowledgeable in major parts of our technology stack and are the technical owner of large parts of our code base. They have a sustained track record of creating major improvements in large business-critical systems around stability, performance, and scalability.
A staff engineer is still acting in a very hands-on role, and as such, they are a prolific contributor to both core projects at Rent the Runway as well as side and experimental work. When presented with a complex problem, process or existing system they are consistently able to reduce the complexity in order to get more done with less work. This ability to manage and simplify complexity is the hallmark of the staff engineer; working with this person should leave team members feeling like they are going to leave with something significantly better than they came into.
The staff engineer has broad impact across Rent the Runway tech. They create architecture that shapes large parts of our business, and ship complex projects including many systems or major pieces of infrastructure. The impact of their work is felt across the team in the quality of the engineering that we produce, the ways we write code, the core libraries that we use, and the underlying design of systems. There are multiple obvious large technical contributions that can be pointed to as originating from this team member.
The staff engineer has excellent abilities to influence without requiring reporting authority to do so. They effectively facilitate cross-team work and are influential far beyond their individual group. They are capable of driving groups of disparate interests to decisions, and clearly communicating and seeing those decisions through to impact. The staff engineer is capable of setting short to medium term strategic direction for part of the technology stack, identifying areas of critical need based on future growth and developing roadmaps to attack those problems.
The staff engineer may act as a tech lead but is probably not acting as the reporting manager for most or all of the team.
Senior Staff Engineer
This person acts as the “chief architect” for a major area of our business. They have significant strategic vision and can take a high-level 3-5 year plan for growth at a business level and translate that into a strategic technology roadmap. They are deeply technically savvy and their primary job is focusing on the architectural and technology needs to grow the business over the longer-term horizon.
Final details of this role are TBD