Skip to content

Latest commit

 

History

History
793 lines (749 loc) · 40.1 KB

ladder.md

File metadata and controls

793 lines (749 loc) · 40.1 KB
title description
The Artsy Engineering Ladder
Career development at Artsy

Engineering Ladder

This documents Artsy's Engineering Ladder. The Engineering Ladder is a framework to help evaluate performance, goals, and compensation for engineers at Artsy. Our ladder was first established and opened in 2015, which you can read more about on our blog.

Since then Artsy has synced up with the Artsy company-wide framework 🔑 for levels and titles and we have added Technical Lead levels to the framework.

This document is open and evolving. We encourage you to submit issues or pull requests to suggest changes and ensure our framework is doing the best it can to help Artsy fairly evaluate compensation and career growth for engineers.

Tracks

The Engineering Ladder encapsulates two tracks—an individual contributor (IC2–IC8) and manager track (M2–M6). The manager track is available to engineers who have achieved an "IC5 Senior Engineer" level on the individual contributor ladder.

Individual Contributor Artsy IC Level Artsy M Level Manager
Intern Intern
Engineer 1 IC2
Engineer 2 IC3
Senior Engineer 1 IC4 M2 Engineering Manager 1
Senior Engineer 2 IC5 M3 Engineering Manager 2
Staff Engineer IC6 M4 Senior Engineering Manager
Senior Staff Engineer IC7 M5 Director of Engineering
Principal Engineer IC8 M6 Senior Director of Engineering

How promotions work

TODO

Individual Contributors

Individual contributor engineers define a "maker" role at Artsy where a person is responsible for writing code on a regular basis and has no direct reports. As an individual contributor engineer grows at Artsy the scale and impact of the code they write and systems they maintain is expected to increase.

From one level to another, the scope of direct impact gradually increases and so does the sphere of influence. Increased mastery is a necessary condition but isn't sufficient to expand impact.

Scope of impact:     Self     >        Team          >  Teams  > Org
Level          : Eng 1, Eng 2 > Sen Eng 1, Sen Eng 2 >  Staff  > Sen Staff+

tl;dr

  • Intern: focuses on learning core skills and applying them to deliver business value
    • TODO: This level still needs to be added to the ladder.
  • Engineer 1 (IC2): Focuses on being an effective individual contributor.
  • Engineer 2 (IC3): Is an effective team member.
  • Senior Engineer 1 (IC4): Consistently drives change and impact across a significant portion of their product team.
  • Senior Engineer 2 (IC5): Consistently drives change and impact across their whole product team.
  • Staff Engineer (IC6): can drive change and impact across multiple teams.
  • Senior Staff Engineer (IC7): can drive change and impact across full Product, Data, Design and Engineering organization
    • TODO: This level still needs to be added to the ladder.

Note: This ladder is heavily inspired by Better's Technical Career Ladder and Rent the Runway's Engineering Ladder, which we believe have the appropriate levels of specificity to enable meaningful career development conversations.

Evaluation criteria

  • Knowledge Leadership
    • Level of knowledge in a specific business area
    • Breadth and depth of technical and soft skills
  • Impact
    • Nature and impact of problems solved and decisions made
    • Value delivered to the business and team
  • Influence
    • Nature and level of influence on projects, strategy, and internal and external contacts
    • Effect on people around you and team dynamics
  • Discretion
    • Nature of guidance received
    • Nature of guidance provided to others

Bragging Document

It can be helpful to maintain a bragging document to really understand the ladder and also to get your work recognized. Julia Evans has put it really well in her blog post explaining that neither you nor your manager will remember everything you did. To help you track your work and also get alignment with your manager on where you are standing in terms of performance you can use this template as a base for your bragging. It also contains some real world bragging examples of fellow Artsy engineers.

Visualisation

To help with the visualisation of the ladder we have created this visual, inspired by honeycomb.io. It is not perfect but it allows for a quick overview of the levels in terms of impact as well as ownership. We wanted to show that each level encompasses the previous levels and there is flexibility in how to interpret and operate on each level based on individual interests. As mentioned in the linked article "...someone might operate at a higher level of ownership in a smaller scope or at a smaller level of ownership at a larger scope, or somewhere in between. Of course, there is value in growing in both dimensions, but it is more common to stretch in one direction or the other at any given point."

Artsy career ladder visualisation

Knowledge Leadership

Knowledge leadership Engineer 1 Engineer 2 Senior Engineer 1 Senior Engineer 2 Staff Engineer
Technical understanding
  • Has broad knowledge of CS concepts (data structures, databases, server/client, DNS).
  • Proactively learns about Artsy best-practices (design system, our internal Technology Radar, etc.).
  • Routinely pushes code through the entire lifecycle from development to production.
  • Is familiar with basic troubleshooting and debugging tools including developer console, error-reporting and monitoring services.
  • Consistently applies Artsy best practices (design system, our internal Technology Radar, workflow, etc.).
  • Exhibits a basic understanding of security, performance, and scalability concerns and can address them by extending existing patterns or soliciting input.
  • Can trace production behaviors or issues across multiple layers.
  • Knows their own technical area well, has basic familiarity with a range of shared systems and developer tools and is eager to continue to deepen and broaden expertise.
  • Can systematically trace and troubleshoot end-to-end issues using all available resources such as data, logs, and metrics.
  • Proactively considers issues of security, performance, and scalability across systems when designing software.
  • Knows the production infrastructure (front-end, back-end, or both) very well and contributes to it within area of expertise
  • Has a good understanding of and is a regular contributor to the entire software development lifecycle: testing, deployment, monitoring, alerting
  • Exhibits advanced understanding of software engineering best practices (including security threats, performance, scalability and reliability) and creates space for necessary investment
  • Leaves systems in a better state after each release, has a multiplier effect on the team by making it easier for others to contribute with high impact.
  • Demonstrates advanced knowledge in specific domains as well as basic expertise across the whole stack.
  • Outstanding technical contributions, widely recognized throughout the whole engineering team as an expert in many parts of the code base.
  • Actively contributes to complex systems (front-end and/or back-end, etc.) or products shared across the engineering team.
  • Routinely contributes to the maintenance of large scale and impactful services.
Technical decision-making
  • Can create or update an API, test, or component by following existing examples or with guidance.
  • Shows an understanding of when to take implementation shortcuts and when it needs to be paid back.
  • Consistently improves codebase while recognizing when to ship vs. invest.
  • Carefully considers the appropriate layer or system with which to satisfy a given need.
  • Routinely designs small-to-medium features within a single application or area that align with best-practices and anticipate basic questions and concerns about security, performance, scalability and reliability.
  • Can identify opportunities to responsibly evaluate new technologies and / or decide to stick with existing technologies.
  • Within a contained service or application, shows excellent technical judgment in terms of when to build from scratch vs. using an external (i.e. library, vendor) solution.
  • Uses a combination of industry practice, Artsy knowledge, and situational awareness to choose technical approaches that are in line with Artsy's overall technical choices.
  • Demonstrates ability to design a medium-to-large feature (crossing multiple system boundaries or domains) that aligns with best-practices, proactively articulates tradeoffs against alternative design proposals, and anticipates questions/concerns.
  • Is trusted to think through all aspects of a problem. Seeks out and effectively weighs input from others.
  • Invests in getting the rest of the engineering group familiar with these decisions.
  • Consistently makes decisions about the engineering team's technical roadmap and overall architecture.
Code quality
  • Writes code that is easy to read and follow, has no obvious bugs and has corresponding unit tests.
  • Can identify minor file-level opportunities to refactor code and sets aside time to do it.
  • Contributes code that is correct, follows accepted patterns, and is commonly mergeable with minimal guidance within their own area of expertise.
  • Identifies and makes time for straightforward refactoring opportunities.
  • Doesn't write tests because they "think they should". Instead, uses tests, QA, monitoring systems, and other tools to guide the right changes and gain confidence.
     
Industry knowledge  
  • Spends some time staying up to date on technology trends by attending practice meetings, lunch and learns, reading blog posts, etc.
  • Generally up-to-date on the current technology landscape and relevant trends within a given area of expertise.
  • Is attentive to the technical landscape and aware of current trends. Can assess when to start using new technology vs. what's worth waiting a bit longer for.
  • Exhibits strong opinions and knowledge about the current technology landscape, can argue for/against technologies and their place at Artsy.

Impact

Impact Engineer 1 Engineer 2 Senior Engineer 1 Senior Engineer 2 Staff Engineer
Team impact
  • Completes well-defined tasks.
  • Actively seeks out learning opportunities in new product areas or technologies.
  • Contributes small improvements to our shared tools and libraries (i.e. chores from practices, fixes outside of immediate product work).
  • Advocates for ways to improve our infrastructure or product in the context of a team's deliverables.
  • Helps prioritize the team's project backlog and assess cost vs impact of the various initiatives.
  • Contributes to the team longer-term planning (OKR definition, roadmap).
  • Translate product/design specs into technical tasks that can be efficiently worked on by the members of the team and make sure team members understand the context behind what they will be building.
  • Brings ideas to the PM and is trusted as someone who can run with and stake out bigger projects.
  • When need be, can take on Tech Lead responsibilities or lead a key project.
  • Often has conversations with the PM about improvements to the product or infrastructure, occasionally comes up with completely new ideas.
  • Comes up with larger ideas of changes to the product roadmap and advocates for them convincingly.
  • Anticipates technical issues at the org level and helps everyone make architectural and design decisions to avoid them.
  • Bonus: Does things to promote Artsy's engineering brand: i.e. writing blog posts, speaking at external events, open-sourcing projects or working with external contributors.
Product impact  
  • Can be relied upon to deliver features on the team's critical path.
  • Delivers significant business value by helping the team deliver on its overall goals.
  • Identifies and delivers technical improvements that benefit the team.
  • Regularly leads larger initiatives (spanning a month or two) that require coordination with 2-3 engineers and / or a high level of technical complexity.
  • Breaks down ambiguous business problems and sequences the tasks to deliver value quickly and incrementally.
  • Can lead a very large initiative (multiple months long) for a complex project, like introducing a new piece of technology.
  • Keeps an eye on the entire team's quality and sets aside time to fix "tragedy of the commons" things (e.g. missing tests or tech debt). Holds team members to a high standard for testing, performance, and code readability.
  • Accelerates team's impact by advocating for and by leading technical plans, spikes, proof of concepts, etc.
  • Keeps an eye on Artsy's general architecture and team-wide technical decisions. Advocates for and is able to drive change when necessary.
  • Has made an obvious positive impact on some engineering or product top line metrics.
  • Drives process changes in the entire engineering team.
  • Has track record of creating sweeping improvements in stability, performance, and scalability across services and reduces complexity to get more done with less.

Influence

Influence Engineer 1 Engineer 2 Senior Engineer 1 Senior Engineer 2 Staff Engineer
Team influence
  • Builds relationships with team members.
  • Actively participates in team rituals.
  • Provides clear, timely updates about tasks' progress or obstacles.
  • Aims to understand others' pull requests and makes time to participate in code review, QA, and releases.
  • Provides constructive feedback and observations during team retrospectives.
  • Suggests process changes in the team
  • Routinely takes ownership for retro action items.
  • Routinely facilitates existing team ceremonies.
  • Proactively organizes retrospectives and other team discussions.
  • Actively works to make the team function more effectively.
  • Can drive change without formal authority.
 
Engineering influence  
  • Provides help and support to other engineers within their area of expertise.
  • Participates in our interviewing process and is prompt and thoughtful in their feedback.
  • Takes time to provide constructive feedback on pull requests.
  • Participates in technical conversations within the team.
  • Mentors and/or trains other engineers in their area of expertise.
  • Participates in decision making at the practice level.
  • Can rally a small group of people beyond their team to solve a well-defined problem.
  • Is a sought after collaborator to help advise and unblock projects that relate to a well-defined part of our stack
  • Regularly administers technical interviews. Is fluent with interview best practices and actively tries to mitigate biases. Clearly identifies pros and cons of the candidate. Can represent the company and speak about the role well.
  • Helps organize team events
  • Thinks about team-wide culture and how to impact it
  • Occasionally sets up internal training or relevant learning opportunities
  • Multiplies the effectiveness of others by facilitating cross-team work.
  • Recognized within engineering as having consistently good judgement and sought out by other team members for design input, code review, and technical guidance.
  • Takes responsibility for the team's culture and morale.
  • Identifies knowledge gaps and sets up whole training program/classes when necessary.
  • Thinks strategically about our hiring needs and advocates for cultivating or hiring necessary skillsets.
  • Improves the interviewing and hiring process.
Cross-functional collaboration  
  • Effectively collaborates with other engineers and with team's cross-functional partners (including PM, Designer, Data Analyst).
  • Can have a conversation with the PM and provide insights to the team about project scope and implementation tradeoffs for small-to-medium features
  • Trusted by PM, Data, Design and team to reliably ships things, to make technical decisions and to be a thought partner for explorations or troubleshooting issues.
  • Proactively partners with PMs, Data, Design, and Business Stakeholders (on your team or other teams) to drive the best possible outcome.
  • Is a frequent thought partner and technical advisor for PMs.
  • Respected by non-technical stakeholders for understanding business needs and providing reliable judgement. Can represent the entire engineering team in such conversations.
  • Proactively shares technical context and relevant information to business and product stakeholders to drive the right outcome for ambiguous and complex initiatives.
  • Can present larger technical initiatives to leadership.
Communication  
  • Knows how to debate important (risky/costly) trade-offs while also exhibiting flexibility.
  • Is always constructive in their communication, even in the face of significant disagreement.
  • Communicates clearly and concisely and with the appropriate level of technical detail depending on the audience.
  • Learns from debate and keeps an open, flexible, constructive attitude
  • Assumes positive intent and models positive, empathetic communication internally.
  • Builds trust and understanding with those beyond engineering.
  • Can effectively present the team's work in larger forums with a non-technical audience.
  • Communicates unambiguously and makes their main points very clear.
  • Encourages ideas and suggestions even when they are wrong; can constructively redirect and improve others' work.
  • Recognizes and graciously handles topics of emotion or defensiveness.
  • Can sell Artsy to external candidates, tailoring the message to the individual.

Discretion

Discretion Engineer 1 Engineer 2 Senior Engineer 1 Senior Engineer 2 Staff Engineer
Oversight
  • Can sequence tickets assigned by the team on a regular basis with guidance and knows how to get more when work is done.
  • Understands team mission, goals, and backlog.
  • Can work autonomously on small tickets with minor supervision.
  • Self-directed, prioritizes own work on a regular basis.
  • Knows when to ask for help and how to get unblocked.
  • Understands business impact and rationale for their and their team's work.
  • Generally knows where the business is going.
  • Makes steady, well-paced progress without the need for constant input from others.
  • Makes tradeoffs between business impact and technical strategy in order to plan own work and guide the team's decision-making.
  • Regarded as a reliable team member who can own complex tasks end-to-end.
  • Has a very good understanding of the team's priorities and why they matter from a business context
  • Demonstrates fluency with team and business OKRs.
 
  • Understands the Artsy business and makes decisions based on its direction.
  • Proactively sets short to medium-term strategic technical direction and positively impacts business direction.
  • Not just aware of the business priorities, but actively promotes knowledge to other people about what's important for the business and how the work fits into that bigger picture.
Initiative    
  • Has a bias for action, preferring to act, learn, and adjust as opposed to waiting for perfect information
  • Jumps on to outages, is not a passive bystander
  • Persistent in the face of roadblocks, dispatches them efficiently, pulling in others as necessary.
  • Takes initiative to identify opportunities and solve problems outside of focus area; interprets role broadly.
  • Trusted to basically run with things with very little supervision beyond manager checking in.
  • Can drive change at the org level by identifying a critical need, spinning up a practice / working group / task force and seeing to completion.
  • Responsible for coordinating technical projects that involve other people and takes ownership to delegate out tasks and hold people accountable
Management relationship
  • Sets the agenda during 1:1s with their manager.
  • Proactively raises issues and obstacles to their manager.
  • Works closely with tech lead, team mates, mentor to get unblocked.
  • Comes to manager with problems and potential causes.
  • Comes to manager with observations and constructive ideas for how to address them
  • Partners with manager on engineering-wide initiatives, proactively suggests problems and potential solutions.
  • Initiates discussion of meaty topics during series of 1:1.
  • Brings constructive ideas and action plans for sign-off.

Technical Leads

Every team at Artsy has a Technical Lead who is part of the Core Team (Product Manager, Technical Lead, Data Analyst, Product Designer and Engineering Manager). The Technical Lead's key responsibilities are:

  • Partnering closely with the rest of the Core Team to jointly lead the team and deliver business value effectively (including proactively defining team strategy, roadmap, project scoping and milestone definitions, etc.)
  • Driving the team's technology choices and aligning their decisions with the rest of the Engineering organization
  • Ensuring successful project delivery.

Taking on a Technical Lead role is a great opportunity for someone to expand their impact (including to expand scope, to achieve team wide impact, or to pave the way towards an Engineering Management career). Throughout their career, an Individual Contributor or an Engineering Manager may swap in and out of this Technical Lead role.

See this document for an expanded set of Tech Lead Responsibilities at Artsy.

Engineering Management

A manager’s role at Artsy balances people management responsibilities with team delivery responsibilities. As a people manager, they are responsible for hiring, retaining, growing and managing the performance of their reports. Additionally, they're expected to significantly impact teams' success through their own technical contribution and/or delivery management. Delivery management is broadly defined here as any non-coding activity that will help the team ship faster, with better quality, and with increased impact (for instance: improving team processes, mitigating risks around release planning, facilitating internal and external communication). As an engineering manager grows at Artsy, their scope of impact will increase from one team to multiple teams and from managing ICs to managing ICs and other EMs.

tl;dr

  • Engineering Manager 1: Transitional from an Individual Contributor role, the main focus is learn how to manage people.
  • Engineering Manager 2: Proficient at managing 6+ Individual Contributors and act as a delivery multiplier on their team.
  • Senior Engineering Manager: Has meaningful delivery impact across multiple teams and starts having engineering org wide impact, can start learning how to manage managers.
  • Director of Engineering: Proficient at managing Engineering Managers and has consistent engineering org wide impact.
  • Senior Director of Engineering: Has consistent company wide impact.

Evaluation criteria

  • People & Business Leadership
    • Nature and level of strategy used in people direction
    • Level of analysis and judgment applied to business issues
  • Impact
    • Nature and level of accountability for results
    • Level and type of impact made via decisions and people direction
  • Influence
    • Nature and level of influence on projects, strategy, and internal and external contacts
    • Size and complexity of managing organizations
  • Discretion
    • Nature of guidance received
    • Nature of guidance provided to others

Engineering Management Ladder

Artsy Level Title People & Business Leadership Impact Influence Discretion
M2 Engineering Manager 1
  • Can own a hiring pipeline (including: JD, sourcing, interview process, closing, onboarding) for a junior role with support from their manager.
  • Can manage effectively Engineering 1, 2 and Senior Eng 1 ICs, ensure engineers have the skills needed to support their team and help them grow to the next level.
  • Can address performance issues with support from their manager.
  • Knows how to run 1:1s effectively; facilitates constructive development conversations and reviews; and participates in Engineering Calibration.
  • Ensures engineers understand how the work they are doing ladders up to OKRs & wider company goals.
  • Ensures that their reports consistently deliver high quality work.
  • Active contributor in a given product / platform team.
  • Proactively monitors team health and delivery.
  • Identifies team dysfunctions and, where necessary, makes them visible in contexts such as team retrospectives or manager forums.
  • Builds strong ties to the rest of the engineering manager community and activity participates in manager-wide forums.
  • Knows how to get high quality feedback from PMs, TLs and other members of their reports' teams.
  • Identifies team staffing needs.
  • Will usually have 2-4 direct reports.
  • Provides timely, actionable feedback.
  • Enlists support from their manager to establish the right growth path for their reports.
  • This is usually a transitional step into management for an established Senior Engineer. This level is internal only (i.e. we won't hire into this level) and we expect EM1 to grow to EM2 within ~18m or so.
M3 Engineer Manager 2
  • Can own a hiring pipeline and drive improvements to successfully fill open roles with high quality candidates without compromising on diversity within a reasonable timeline.
  • Effectively coaches senior engineers in a way that lines up with team goals.
  • Knows how to help engineers identify their superpowers and increase their impact by leaning into their strengths.
  • Addresses performance issues in a timely manner and with empathy.
  • Works closely with the team to meet the sprint goals; significantly accelerates the delivery and increases the impact of the team throughout the quarter.
  • Effectively addresses team health issues both in their own and their reports' teams when need be.
  • Leads some engineering wide improvements.
  • Partners effectively with the tech lead (and the core team) to get their team to a higher performing state.
  • Develops strong collaboration with PMs and can give feedback on the teams' strategy.
  • Facilitates cross pollination to improve quality and delivery processes.
  • Leverages insights from XFN partners to make globally optimal staffing decisions, aligning business needs with their reports' growth opportunities.
  • Can effectively collaborate with XFN partners to drive team wide improvements.
  • Knows how best to leverage strong technical guidance and / or effective delivery management to accelerate team's impact.
  • Will usually have 6+ Eng IC Reports.
  • Establishes the right growth path for their reports with minimal guidance from their manager.
M4 Senior Engineering Manager
  • Optimizes Eng IC hiring at scale and across pipelines.
  • Starts managing Engineering Managers.
  • Can own a EM hiring pipeline with support from their manager.
  • Can grow Tech Leads to have a multiplier effect on their team.
  • Can navigate and lead teams through ambiguous situations, tackle complex issues, and align strategy with company priorities.
  • Significantly accelerates the delivery and increases the impact of multiple teams.
  • Guides teams to provide maximum, user-focused impact. Pushes team to demonstrate greater sense of urgency. Constantly experiments with ways to become more efficient.
  • Regularly drives engineering wide improvements.
  • Develops strong collaboration with PDDE Leadership team members.
  • Can successfully influence XFN partners to drive improvements across teams (and even more so the Tech Leads).
  • Suggest optimal resource allocation given business goals and constraints.
  • Knows how to combine technical guidance, delivery management and coaching to increase teams' impact.
  • Proactively identifies issues across multiple teams and effectively addresses them.
  • Get supports from their manager to establish the right growth path for their EM reports, autonomously drives career of all their ICs reports.
M5 Director of Engineering
  • Manage and coach Engineering Managers to be effective communicators and managers of their people.
  • Can drive and improve EM hiring pipeline.
  • Ensures that EMs and TLs are mentoring and managing teams effectively towards results.
  • Proactively identifies and drives engineering wide improvements.
  • Proactively identifies issues across teams and disciplines and effectively addresses them.
  • Drives execution of large & complex PDDE initiatives.
  • Is accountable for long term technical roadmap to support the business needs and unlock growth.
  • Drives PDDE changes in close partnership with PDDE Leadership team.
  • Actively participates in cross-org leadership activities.
  • Leverages network across the company to develop strong empathy for the various business needs.
  • Can give effective feedback on and influence company strategy.
  • Regularly delegates and increases own impact by helping others to achieve more.
  • Works in partnership (provides input and data) with leadership to set goals and objectives for area of responsibility.
  • Plans the growth of their organization and scales the team.
M6 Senior Director of Engineering
  • Can manage Directors as well as EMs.
  • Can drive Director hiring pipeline.
  • Grows engineering leaders.
  • Provides the right balance of direction and empowerment so EMs, TLs, and teams make decisions that are aligned with the company and engineering strategy and goals.
  • Guide teams and their leaders in setting aggressive OKRs and goals that maximize impact while continually improving their ability to execute more quickly, effectively, and healthily towards delivering results.
  • Drives execution of company-wide initiatives.
  • Builds effective collaboration with other organizations outside of PDDE.
  • Influences future strategy and results through input to leadership teams and management of key business operations.
  • Develops innovative ideas, solutions and market opportunities by integrating expertise in area and understanding of the business and market.