Skip to content

Latest commit

 

History

History
83 lines (53 loc) · 10.7 KB

readme.md

File metadata and controls

83 lines (53 loc) · 10.7 KB

The Engineering Ladder

Packback's engineering ladder is a set of skills and expectations we use as job descriptions at each level of the engineering organization. They are used both for assessing candidates for new roles and determining when someone is ready for a promotion.

The general Software Engineer levels are common to all engineer paths. At the Senior Engineer level, roles split into different paths focused on management or individual contributorship (project management is integral to both paths). People on the management path will be expected to take on people and team management responsibilities. People on the technical path will be expected to continue growing their breadth and depth of technical knowledge.

Levels

A visual representation of the sequencing engineering career pathway

Engineering leveling is not a checkbox exercise, that said, this document contains a representative set of behaviors that should be demonstrated by an engineer to be considered for promotion to the next level. Titles and level changes are lagging indicators of growth, driven by an individual personally choosing to demonstrate the behaviors of the next level of growth. Outside of formal reporting structure changes, higher levels are not "assigned" to an individual to disseminate greater responsibility; rather, the individual assumes the responsibility and their level changes to recognize their growth. To be considered a solid candidate for promotion, it will be considered necessary to demonstrate sustained mastery of the relevant skills.

All engineers at Packback should be positive and knowledgeable representatives for the Packback brand in professional interactions with both technical or non-technical individuals, and take personal responsibility to stay abreast of new technologies and their own education to make well-informed decisions and remain personally challenged. In addition to these shared expectations of all engineers, at a high-level the following descriptions of the levels can be applied:

  • Software Engineer
    • Apprentice (IC1): Rapidly growing into a solid engineer, works on a predetermined project with more senior resources, is hungry to learn, takes feedback graciously, finds a work-life balance.
    • Engineer I (IC2): Builds defined features, investigates and fixes bugs, writes tests, communicates progress, identifies blocking issues.
    • Engineer II (IC 3a): Owns a functional area. Breaks large requests down into sub-tasks, gives higher-level status updates, writes test plans, takes operational responsibility. Sets measurable goals, and meets them. Reviews code changes, helps mentor new hires.
    • Engineer III (IC 4a): Takes undefined projects and proposes both the possible functional solutions and the recommended technical solutions.
  • Managing Engineer
    • Team Lead (IC 5): Coaches a team on major projects. Tracks the team's efficiency and quality of work. Champions process and leverages their experience to ensure the team hits their goals.
    • Engineering Manager (Manager 5): Runs an agile engineering team. Comfortable with management practice. Strong project managers. Track the team's efficiency and quality of work, assist in regularly adjusting processes and timelines to deliver high quality work.
    • Director of Engineering (Manager 7): Runs a "slice" of the engineering organization. Grow the next generation of leadership at Packback. Manage other engineering managers. Strategically balance immediate and long-term product/business focused work with technical debt and strategic technical development. Guide the planning process for their team.
    • VP of Engineering: Runs of multiple sectors of the engineering organization. Works cross-functionally to solve problems for the product or company. Builds a healthy, robust engineering organization.
  • Technical Engineer
    • Senior Engineer (IC 5): Owns the development for an entire product, or large project. Champions process, writes tech specs and identifies risks before starting major projects. Sets standards. Goes out of their way to reduce complexity.
    • Staff Engineer (IC 6): Owns cross-team shared projects. Works with leadership to choose new technologies, and promote culture/process. Has deep technical expertise in a business-critical area. Does serious research to evaluate and test options. Understands implications (and trade-offs) of reliability, scalability, operational costs, ease of adoption by the organization, recruiting, etc.
    • Principal Engineer (IC 7): "Chief architect" for 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.

Internal Levels

In addition to the formal job titles listed above, we have internal, standardized levels (denoted IC # and Manager #). These levels map to our internal HR systems, and are used primarily for compensation band tracking purposes. They are not intended to be used in day-to-day conversation, but are included here for reference.

As a side effect of how our HR systems work, the Manager levels are one "higher" than the corresponding IC levels (for example, Team Lead/Senior Engineer is Manager 4 or IC 5). This is simply a quirk of the system and the corresponding levels as pictured in the diagram above are considered equivalent for both seniority and compensation.

Senior Pathways

Along all senior pathways, 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 as a focused, high-quality individual contributor. But beyond that 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.

Important notes about senior pathways:

  • Pathways within the engineering organization (management and technical paths) are considered -- and will continue to be considered -- equally valued regarding seniority and salary.
  • The availability of more senior positions within these pathways is subject to the needs of the business. Even if an engineer is ready for a promotion, Packback cannot guarantee that such a position will be immediately available.

Opportunities for Leadership:

Packback engineering is structured so that there are many paths an engineer can take to demonstrate leadership and take on more responsibilities. These include (but are not limited to)

  • Project lead: Engineers can act as the directly responsible individual (DRI) on a project, and take on accountability for collaborating with the product team to deliver a feature
  • Backlog owner: engineers can become the owner of a specific backlog of work (e.g. technical debt, accessibility, security, site reliability), and take on accountability for prioritizing and advocating for the work on that backlog during sprint plannings.
  • Code owner / sign-off: Engineers can become accountable for the quality of a fraction of Packback's codebase, and take on a more structured role in ensuring code quality in all pull requests that touch that code.
  • Affinity group leader: Engineers with a specific technical skillset may become leaders of an affinity group, and begin to facilitate further learning opportunities for all engineers in that realm.
  • Team leadership and/or mentoring: Engineers (typically those who plan to head down the management pathway) can take over team leadership responsibilities.

Changing Pathways

If they haven't already decided on a pathway, engineers should use the Senior Engineer level to explore which pathway best suits their skills and goals. If a Senior Engineer embarks down one pathway only to discover that it is not the best fit for them, they may change to a different path (assuming a position is available) without any loss of compensation or seniority. If this change happens beyond the Senior Engineer level, Packback will do it's best to accommodate a change but will need to take qualifications and experience into consideration (e.g. a VP may not necessarily be qualified to become a Principal Engineer.)

Pay Equity

In our effort to create a diverse, inclusive team, each level of the engineering ladder has a defined salary range associated with it.

Associating salary ranges with engineering levels ensures that all engineers at a given level are similarly compensated. It prevents situations where a team member with fewer skills and less experience could get paid more than someone higher on the ladder.

Salary ranges also offer the opportunity for growth within an engineering level. An engineer may earn a raise within their current level even if they're not ready for promotion yet.

Performance Reviews and Promotions

Aligning objective, clear levels to the messy reality of being a software engineer is a tough problem. Levels are "step functions" where an engineer jumps overnight from one level to the next. The reality of working on a team is far more messy. The engineering levels are written such that so far as possible we can point to concrete behaviors that differentiate between the levels. Titles at Packback are a lagging indicator of performance, and to be considered for promotion, an engineer should have been

  • performing at the next level,
  • across all aspects of the role (communication and values stewardship are considered just as highly as technical acumen),
  • for a sustained period of time.

All engineers should know (or feel empowered to ask their manager) how they are tracking against their current and next level at any given time.

Credits

Packback's engineering ladder was inspired by documentation published by Rent the Runway, Kickstarter, GitLab on their engineering ladders. Thanks to them for open-sourcing that information.