Skip to content

Latest commit

 

History

History
472 lines (433 loc) · 18.2 KB

seniority.adoc

File metadata and controls

472 lines (433 loc) · 18.2 KB

Seniority por Nivel

En muchas empresas se habla de distintos niveles de seniority. Sin embargo es un concepto muy ambigüo ya que varía entre cada empresa. Para poder estandarizar un poco, se detallará lo que se espera de un profesional en cada nivel. Basado según los criterios de la empresa Ockam Network.

Es la responsabilidad de la empresa y del equipo de trabajo proveer un ambiente donde cada indiviuo este empoderado para ser y crecer al nivel mundial (world-class) en su rol y habilitarlos para alcanzar más de lo que pensaban posible para ellos mismos.

Esta guía pretende ayudar para alinear las expectativas y crear un marco de trabajo donde se tenga un lenguaje en común para describir los caminos de desarollo profesional y permitir conversaciones honestas.

Se debe usar como una guía de auto evaluación. Primero hay que definir si el cargo es para un miembro del equipo de desarollo (ejemplo: Engineer) o es para un miembro del equipo de gestión (CTO). No se espera que un candidato cumpla con todos las características en la tabla a cabalidad. La tabla es una guía y una forma de facilitar la conversación. Es probable y totalmente válido, que un ingeniero Senior (Nivel 5) pueda tener algunas cualidades nivel 4 y otras nivel 6.

También considerar que una oferta de trabajo para Nivel 6 (Arquitect) pudiera ser perfectamente viable para un Nivel 3/4 bien sólido. Ya que las tareas, exigencias, expectativas y perfil de desarollo profesional puede ser adaptado para las necesidades de cada candidato y puesto de trabajo.

Además de este marco de trabajo puedes revisar los disponibles en https://www.progression.fyi/

Engineering - Individual Contributors

Junior Engineer Engineer Senior Engineer Architect Senior Architect
Level 1 - 2 3 - 4 5 6 - 7 8
Responsibility abstraction "Tasks" “Solutions” “Problems” “Spaces” “Frontiers”
Existing knowledge
  • Has an engineering and programming foundation based upon several years of study.
  • Expected to spend the majority of time learning about code and development best practices.
  • Understands scope of small features.
  • Has a basic understanding of what all components in their product are.
  • Has a solid understanding of development best practices and comfortable writing code in a team and open source setting.
  • Writes clean and simple code that performs its intended functions.
  • Can design abstract interfaces and construct modular libraries.
  • Uses and understands tools needed to debug and diagnose issues in a test and/or simple production environment.
  • Understands the scope of medium sized features.
  • Has a solid understanding of all product components under their responsibility.
  • Has in-depth understanding of development best practices.
  • Highly attuned to various coding styles used in the open source community and his hyper-focused on writing simple, well designed, human readable code.
  • Has mastered the tools needed to debug and diagnose issues in any type of environment.
  • Understands the scope and relationships of large features and production stack for their area.
  • Has subject matter expertise in several components.
  • Has an intricate understanding of all components of their product.
  • Has mastered development best practices.
  • Understands the limits of our tools, and when a problem that exceeds those limits, produces a new tool.
  • Understands the scope and relationships of large features and production stack for their area.
  • Has subject matter expertise on multiple components across multiple products.
  • Has a strong understanding of all products relevant to their own areas of expertise.
  • Has deep knowledge of the entire system, and can jump into code in any component, fire-fight, and contribute.
  • Makes decisions on product direction and internals based on deep subject matter knowledge.
Complexity of role
    Performs basic programming tasks:
  • Contributes to functional specifications and participates in code reviews.
  • Writes and executes test plans.
  • Can accurately forecast and deliver today and tomorrow’s deliverables.
    Performs standard programming tasks:
  • Contributes to functional specifications and participates in code reviews.
  • Writes documentation and examples that ship along with their code.
  • Writes and executes sophisticated test plans.
  • Has the network, and ability, to recruit ‘A player’ engineers at their own level.
  • Can accurately forecast and deliver a mile (2 week) deliverables.
    Performs complex programming tasks:
  • Can write functional specifications for features.
  • Can sign off on test plans and code reviews.
  • Participates in requirement building with architects.
  • Gathers feedback and ‘pulse’ from Ockam's open source community.
  • Has the network, and has demonstrated the ability, to recruit engineers above their level.
  • Can accurately forecast and deliver Race (8 weeks) OKRs.
    Performs expert programming tasks:
  • Handles large-scale technical debt and refactoring.
  • Shapes coding methodologies, style, DX, and best practices across wide areas of the Ockam code base.
  • Leads code reviews and can sign-off on large features.
  • Participates in requirements gathering with direct contact with customers.
  • Has the ability to recruit other Architects in areas where they lack technical expertise.
  • Can accurately forecast and deliver Campaign (8 months) OKRs.
    Sets product direction and has ownership over large components:
  • Thinks both strategically and tactically, keeping in mind both technical goals and company business/GTM goals.
  • Understands trade offs of OKRs across the entire company.
  • Contributes to and shapes company-wide Horizon scale OKRs.
  • Can influence customer and partners product roadmaps.
  • Can accurately forecast and deliver Horizon (18 months) of OKRs. And can also set guidance and a vision for 2-4 years into the future.
Professional Character
  • Shows initiative and is motivated to learn.
  • Provides basic guidance to external open source contributors.
  • Shows initiative and offers assistance when needed without being asked.
  • Provides guidance to entry-level engineers, the open source community, and to technical partners.
  • Constructively escalates problems and issues.
  • Delivers feedback across the entire team in a constructive manner.
  • Provides guidance to internal and external engineers.
  • Works well with technical leads, incorporating feedback as needed.
  • Helps focus discussion on the most important aspects that align with OKRs.
  • An approachable mentor who is viewed as an expert and acts like one.
  • Constructively challenges assumptions.
  • Guides engineers to correct solutions while encouraging collaboration.
  • Builds strong relationships industry wide.
  • Understands the merits and faults of multiple points of view and can drive a process to conclusions in a timely and respectful manner.
Independence
  • Given an introduction to a small task from a more senior engineer, can drive a task to completion independently.
  • “Can fill in the blanks”
  • Given a medium sized understood problem, can design and implement a solution.
  • Given an introduction to the context in which a task fits, can design and complete complex tasks independently.
  • “Can create blanks and then fill them in”.
  • Given a medium-to-large loosely defined problem, can drive to an understanding / definition of the problem that can then be shared across the team.
  • Can design and implement a solution to the problem and delegate tasks to others.
  • Participates in the open source community.
  • Given a large, poorly understood problem, can explore a broad solution space (possibly with numerous POCs) to determine the correct course of action and its tradeoffs.
  • Participates in and supports initiatives outside of their main area of responsibility.
  • Provides technical leadership for multiple projects.
  • Is respected by and known to the open source community.
  • Given long term strategic goals, can lay out a product roadmap path across multiple versions.
  • Participates in and supports initiatives outside of the main area of responsibility.
  • Provides technical leadership for projects with customers.
Personal Growth Plan Focus “Learning” “Practicing” “Teaching” “Empowering” “Industry influencer / Luminary”

Engineering - Management

Lead Director CTO
Level 5 6 - 7 8
Responsibility abstraction “Ship the Code” “Build the Team” “Create the Product”
Existing knowledge
  • A senior engineer, who in addition, has very broad knowledge of the entire product, and can help with any component, or type of issue.
  • Strong awareness of the state of the product and team at all times.
  • A great lead engineer, who knows how to allocate resources among projects and understands how company priorities map to their tasks.
  • Has subject matter expertise on multiple components across multiple products.
  • Recognizes strengths in others and empowers them to make decisions.
  • Knows the entire product, how customers use it, what they want, and where it should go.
  • Makes decisions on product specifications.
Complexity of role
  • Contributes to code at a Senior Engineer or Architect level ~ 70%
  • Prioritizes tasks and issues across projects and people ~20%
  • An expert firefighter who is often called in to make things right ~ 10%
  • Has the network and has demonstrated the ability to recruit engineers at or above their level.
  • Helps build Race (8 weeks) OKRs.
  • Balances strategic and tactical goals, distributes work across the team.
  • Manages large-scale technical debt and refactoring.
  • Shapes code methodologies, style, and DX.
  • Participates in code reviews and can sign-off on large features.
  • Has the ability to recruit Architects (L6-7) outside of their technical expertise.
  • Helps to build Campaign (8 months) OKRs.
  • Sets product direction.
  • Thinks both strategically and tactically, keeping in mind both technical goals and company business/GTM goals.
  • Understands trade offs of OKRs across the entire company.
  • Can influence customer and partners product roadmaps.
  • Builds OKRs at the Race, Campaign and Horizon scale.
Professional Character
  • Delivers feedback across the entire team in a constructive manner.
  • Provides guidance to internal and external engineers.
  • Works well with other technical leads, incorporating feedback as needed.
  • Helps focus discussion in their team on the most important aspects that align with OKRs.
  • An approachable mentor who can work with individuals that have stronger technical expertise than them in many areas.
  • Constructively challenges assumptions.
  • Guides engineers to correct solutions while encouraging collaboration.
  • Builds strong relationships industry wide.
  • Understands the merits and faults in multiple points of view and can drive a process to conclusions in a timely and respectful manner.
Independence
  • Leads projects and/or small teams.
  • Participates in and supports build initiatives outside of main area of responsibility.
  • Manages multiple teams and projects.
  • Responsible for team retention and hiring.
  • Is a great leader, and sets direction for the product.
  • Understands vision / mission, and drives it forward.
Personal Growth Plan Focus “Teaching” “Empowering” “Industry influencer / Luminary”

Note:

It is assumed that an engineer at a high level would still focus on all of the attributes associated with levels that they’ve already surpassed in their career. For example, even though "Learning" is a Level 1 | 2 focus, everyone should be on a virtuous learning cycle, even at Level 8.

The converse is also true. A lower level engineer is likely to check several boxes at levels 1 or 2 above their current level. This is particularly true on our small team. Everyone should have stretch tasks as part of their role.

Anti-Patterns

Levels 1-2:

Poor code quality. Not self-motivated; needs someone to tell them what to do next. Constantly veers into the weeds. More inclined to blame-complain than roll up sleeves. General helplessness. Disregards team process.

Levels 3-4:

Disappears into projects that don’t matter to the business. Fails to identify or communicate big roadblocks. Us-vs-them attitude. Continually underestimates timelines. Doesn’t take operational excellence seriously. Solutions are more complicated than necessary.

Levels 5:

Arrogant jerk. Doesn’t delegate. Always says "yes" and suffers burn-out. Jumps into execution without careful consideration. Lets details slip through the cracks. Fails to raise awareness of projects at risk or people-problems. Doesn’t follow new technologies or industry trends. Thinks that some work is ‘beneath them’.

Levels 6-8:

Over-emphasis on scaling or high availability far beyond business needs. Spends too much time chasing the newest "shiny" technology simply to satisfy ego. Doesn’t collaborate or ask questions. Condescending. Has a “pet” agenda. Pisses off senior leadership.