Example career ladder
Text Career Ladder, public Rent a runaway example
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.