Development Department Career Framework

Development Department Career Framework


Engineering | Development | Incubation Engineering | Infrastructure | Quality | Support


These are the expected competencies of team members at GitLab by Job Title and job grade.

  • Engineer
  • Engineering Manager
    • Frontend, Backend, Fullstack
    • Senior
  • Director of Engineering
  • Senior Director of Engineering
  • Vice President of Development

Development Sub-departments


Dev Career Framework

Dev Career Framework


Dev Framework | Development Framework | Engineering Framework


These are the expected competencies of the Dev Sub Department team members at GitLab by Job Title.

Intermediate

Senior

Staff

Principal

Development Department Career Framework: Intermediate

Development Department Competencies: Intermediate


Dev Framework | Development Framework | Engineering Framework


Intermediates at GitLab are expected to exhibit the following competencies:


Intermediate Leadership Competencies

Engineering
  • Assumes goodwill, and is able to disagree and commit.
  • Capable of delivering work despite periodical distractions.
  • Constructively raises concerns.
  • Communicates in a clear, timely, and effective manner.
  • Capable of adapting their messaging to technical audience.
  • Understands organization structure and processes.
Development
  • Still largely concentrates on growing themselves.
  • Seeks out opportunities to expand their technical and non technical skills through continuous learning practices.
  • Often works with other team members to grow their own understanding of the team’s domain through code reviews, pair programming or mentoring sessions.
  • Participates in code reviews and uses best practices when giving and receiving feedback.
  • Provides additional feedback whenever possible (i.e. 360s, Pulse, etc).
  • Communicates clearly and effectively, especially in writing, when working with peers, stable counterparts or their manager on technical tasks or issues.
  • Adheres to the GitLab communication guidelines.
  • Seeks assistance in clearly managing expectations around the delivery of their work.
  • Delivers work given clear requirements within the context of their team.
  • Makes responsible decisions in alignment with GitLab’s CREDIT values by ideating options, identifying the consequences of each option, evaluating trade-offs and seeking advice from others when necessary.
  • Thinks critically by understanding why something needs to be done, determining the root cause of the problem, identifying objectives and examining previous efforts.
  • Remains calm under pressure.
  • Demonstrates knowledge about how their work aligns with their Product section, stages, groups and categories.
  • Works effectively within established processes, and keeps themselves current as processes change.
  • Seeks to understand how their work integrates with processes across the company.

Intermediate Technical Competencies

Engineering
  • Considers quality, security, and performance of assigned tasks.
  • Independently plans, estimates and, delivers small and moderate solutions.
  • Seeks guidance when blocked and iterates to a solution.
  • Performs thorough reviews within their domain and provides helpful feedback to team members.
  • Encourages participation and engages with contributions from those in the community.
Development
  • Writes tests with every MR and works to uplift the quality of the code.
  • When working in an existing area of the code base, is able to recognise and propose an improvement.
  • Able to give an estimate and execute on proposals that do not affect deliverables.
  • Is aware of company established development processes that are aimed at reducing security related issues.
  • Adopts a security minded software development approach by following Secure Coding Guidelines early in the development process.
  • Able to take on security related issues, come up with an effective approach and deliver a working solution.
  • Able to tackle all but large issues independently. Large issues with provided clear requirements and design implementation require little effort, issues that are not clearly defined require team assistance.
  • Asks for help when an issue is taking longer to implement, works with the team to split the issue into smaller issues.
  • Proactively looks for opportunities to eliminate technical debt by creating technical debt issues, resolving technical debt issues and writing quality code that reduces additional technical debt.
  • Performs thorough reviews within their domain and submits helpful comments.
  • Knows which tools are available to them to debug performance problems and understands how to use them.
  • Understands how their code would be used in a production instance and how they can access monitoring information (if available for their group).
  • Encourages participation from those in the community.
  • When working in an existing code area, leaves it in a better state than before.

Intermediate Values Alignment

GitLab
Development
  • Independently brings in expertise from other contributors to raise the standard of their work.
  • Gives positive feedback in public and negative feedback privately with care.
  • Executes tasks in team projects, demonstrating ownership of them from conception to completion.
  • Requires supervision to deliver projects in time, growing bias for action.
  • Recognises complexity of the team’s product or the team’s process, and proposes solutions accordingly.
  • Capable of implementing solutions based on the complexity, and asks for guidance when the complexity increases unexpectedly.
  • Analyzes team processes and proposes areas where efficiency improvements can be made.
  • Requests expert help from others recognizing that diverse opinions/experience improve the quality of their solution.
  • Collaborates and consults with stable counterparts including understanding their roles and responsibilities and focusing on fostering productive working relationships.
  • Shows that they are aware of differing priorities between groups.
  • Prioritizes work by following GitLab Priority and Severity label guidelines, focusing on high-value activities, completing tasks with the earliest deadlines, and when in doubt, seek clarification regarding the priorities.
  • Balances short term gains and long term benefit with team’s help. For example, advocating for technical debt resolution and understanding the opportunity cost in comparison to a quick customer win.
  • Creates proposals for their team that clearly defines the problem, offers alternatives, and proposes a solution. These proposals are small in scope, looking to address problems with a small surface area.
  • Incorporates Iteration in every aspect of your job (examples: development, issue creation, planning, process improvements)
  • Provides context and background on projects and issues so that those with no prior knowledge are able to contribute to the discussion.
Development Department Career Framework: Intern

Development Department Competencies: Intern


Dev Framework | Development Framework | Engineering Framework


Interns at GitLab are expected to exhibit the following competencies:


Intern Leadership Competencies

Engineering
  • Assumes goodwill, and is able to disagree and commit.
  • Capable of delivering work with clear requirements and guidance.
  • Constructively raises concerns.
  • Communicates in a clear, timely, and effective manner.
  • Able to clearly and effectively convey their thoughts and reasoning.
  • Demonstrates interest and proactivity in learning about the organization and processes
Development
  • Maximize your productivity through effective time management
  • Be proactive and take the initiative when the opportunity presents itself
  • Demonstrate flexibility by being open and adaptable when assigned work tasks

Intern Technical Competencies

Engineering
  • Exhibits proficient problem-solving skills.
  • Skilled at delivering small iterative deliverables supported by Senior Team Members
  • Seeks guidance when blocked and iterates to a solution.
Development
  • Writes tests with every MR and works to uplift the quality of the code.
  • Proactively partners with mentor to solve technical challenges.
  • Asks for help when an Issue is taking longer to implement, works with the team to split the Issue into smaller Issues.
  • When working in an existing code area, leaves it in a better state than before.
  • Identify skills gaps and take the appropriate GitLab offered training
  • Consult GitLab Documentation to expand knowledge related to the GitLab Product

Intern Values Alignment

GitLab
Development
  • Gives positive feedback in public and negative feedback privately with care.
  • Executes tasks in team projects, demonstrating ownership of them from conception to completion.
  • Requires supervision to deliver projects in time, growing bias for action.
  • Requests expert help from others recognizing that diverse opinions/experience improve the quality of their solution
  • Incorporates Iteration in every aspect of your job (examples: development, issue creation, planning, process improvements)
  • Provides context and background on projects and issues so that those with no prior knowledge are able to contribute to the discussion.
Development Department Career Framework: Principal

Development Department Competencies: Principal


Dev Framework | Development Framework | Engineering Framework


Principals at GitLab are expected to exhibit the following competencies:


Principal Leadership Competencies

Engineering

A principal engineer generally operates at an organizational (sub-department or stage, for example) level scope, serving as their organization’s technical lead and connecting their organization to other parts of GitLab.

  • Helps team members of all levels understand their organization’s domain and technology through clear and effective communication.
  • Makes responsible decisions and evaluates tradeoffs impacting their organization and various aspects of the business.
  • Exhibits a deep understanding of their organization’s features, how customers use them, and how they fit into the larger business.
  • Improves processes at the organization level.
  • Recognizes good solutions to complex problems impacting multiple domains and clearly explains their merits to relevant stakeholders.
  • Unblocks and enables team members and counterparts across multiple teams.
  • Participates in processes which address complex technical challenges, such as the Architecture Design Process, as a DRI and as a coach.
  • Advises on resourcing requirements and provides feedback on promotions into technical leadership roles.
Development
  • Able to deliver results despite starting from unclear requirements.

Principal Technical Competencies

Engineering
  • Has a broad skill-set with in-depth expertise in several areas.
  • Blends technical, product and design strategy, helping their organization to be more productive.
  • Represents their organization as a domain expert when interfacing with other teams and departments.
  • Reaches beyond immediate needs, independently considering the longer-term, and is always looking beyond for ways to have a broad impact.
  • Addresses cross-team challenges related to customers, quality and security.
  • Able to take on cross-team complex requirements and decompose them into a proposal of small deliverables.
  • Engages in processes, such as the Architecture Design Process, to contribute to their organization’s most challenging technical initiatives.
Development
  • The Principal Engineer role acts as the individual equivalent of a Senior Engineering Manager, Development.
  • Extends that of the Staff Frontend Engineer or the Staff Backend Engineer responsibilities
  • Collaborates and makes proposals across several teams on their engineering work, and helps their team members make informed decisions in alignment with the sub-department strategic plans.
  • Exposes technology and organizational needs across their sub-department.
  • Teach, mentor, grow, and provide advice to other domain experts, individual contributors, across several teams in their sub-department.
  • Play a central role in technical, business, and organizational contributions affecting the sub-department/department.
  • Plan improvements and features with a 6 month view.
  • Solves technical problems of the highest scope, complexity, and ambiguity for their sub-department.
  • Interfaces with EMs and Senior management, and enables Staff Engineers to engage on department-level aspects of larger (sub-department wide) initiatives.
  • Looks for innovation opportunities between several teams with a willingness to experiment and to boldly confront problems of large complexity and scope.
  • Proposes initial technical implementations which support architectural changes that solve scaling and performance problems.
  • Ensures that OKR level goals are aligned across several teams in their sub-department.
  • Guides conversations to remove blockers and encourage collaboration across teams.
  • Provides a point of escalation for sub-department teams facing complex technical challenges.
  • Attain a measurable impact on the work of sub-department teams.
  • Interact with customers and other external stakeholders as a consultant and spokesperson for the work of your sub-department.
  • Exposes the work of the sub department and their business impact internally.
  • Knowledgeable in all specialities practiced within the department or sub-department

Principal Values Alignment

GitLab
Development
  • Regularly engages with teams other than their own.
  • Identifies situations where collaboration between teams will yield good results.
  • Iteratively works towards results on cross-team projects without over-analysis.
  • Works with the Senior Engineering Manager to assign work to the team.
  • Is able to take a long term goal and turn this into small actionable steps that can be implemented in an iterative way.
  • Identifies and prevents decisions that are not “two-way door decisions”.
  • Champions a no-blame culture and encourages learning from mistakes.
Development Department Career Framework: Senior

Development Department Competencies: Senior


Dev Framework | Development Framework | Engineering Framework


Seniors at GitLab are expected to exhibit the following competencies:

Senior Leadership Competencies

Engineering
  • Communicates clearly and effectively, both written and verbally, when advising, setting expectations, or suggesting improvements. This applies whether interacting with team members, customers, or the wider community.
  • Able to deliver work, even when given unclear requirements, within the context of their team.
  • Demonstrates knowledge about how their group and stage fit into the larger business.
  • Able to suggest alternative solutions to customer problems based on what they know about other areas of GitLab.
  • Looks for opportunities for process improvements within their team and works with others to implement process changes.

<%# ##### Development %> <%# No differences between engineering and Development senior leadership competencies %>

Development Department Career Framework: Staff

Development Department Competencies: Staff


Dev Framework | Development Framework | Engineering Framework


Staff at GitLab are expected to exhibit the following competencies:


Staff Leadership Competencies

Engineering

A staff engineer generally operates at a team level scope, serving as the technical leader for one or more of their team’s domains of responsibility.

  • Helps others across the organization understand their team’s domain and technology.
  • Communicates clearly and effectively with team members and stable counterparts.
  • Makes responsible decisions and evaluates tradeoffs impacting their team’s domain.
  • Exhibits a deep understanding of their team’s features, how customers use them, and how they fit into the larger business.
  • Improves team processes.
  • Recognizes good solutions and clearly explains their merits to relevant stakeholders.
  • Unblocks and enables team members and counterparts.
  • Participates in processes which address complex technical challenges, such as the Architecture Design Process, as a DRI.
Development
  • Able to deliver results despite starting from unclear requirements.

Staff Technical Competencies

Engineering
  • Has a broad skill-set with in-depth expertise in their team’s technical domain.
  • Blends technical, product and design strategy, helping the team to be more productive.
  • Represents their team as a domain expert when interfacing with other teams.
  • Reaches beyond immediate needs, independently considering the longer-term, and is always looking beyond for ways to have a broad impact.
  • Addresses challenges related to customers, quality, and security.
  • Able to take on complex requirements and decompose them into a proposal of small deliverables.
  • Engages in processes, such as the Architecture Design Process, to contribute to their team’s most challenging technical initiatives.
Development
  • Advocates for quality and makes sure it is everyone’s responsibility.
  • Mentors others on how to maintain and continue to raise the level of quality in everything we produce.
  • Holds MRs to the high standards of our definition of done and collaborate with others to improve their implementation, tests and prevent any future regressions.
  • Takes on initiatives that address performance issues and work with the Quality Department on any initiatives that would simplify life for our developers and contributors.
  • Advocates for tech debt, customer issues, and high severity bugs.
  • Advocates for security.
  • Works closely with our internal security team.
  • Provides guidance to others regarding how to properly address security issues and vulnerabilities.
  • Expert at using the security features of our product and mentor to others to ensure we adopt our own tools.
  • Provides feedback to the Secure team and act as a customer for this stage of the product.
  • Able to take on complex requirements and decompose them into a proposal of small deliverables.
  • Able to quickly pivot a solution based on feedback or complexity.
  • Acts as a gate keeper for quality as a Maintainer of your team’s primary project (usually GitLab CE & EE).
  • Able to guide and discuss performance issues from customers and quickly provide solutions that align with product direction.
  • A champion of technical initiatives in this area and works closely with product to help prioritize the work.
  • Understands how code for their group performs in production on GitLab.com and the impact of the architecture and dependencies required for the self-managed product.
  • Actively participates in open source.
  • Contributes bug fixes and features to upstream dependencies where appropriate.

Staff Values Alignment

GitLab
Development
  • Regularly engages with teams other than their own.
  • Identifies situations where collaboration between teams will yield good results.
  • Iteratively works towards results on cross-team projects without over-analysis.
  • Works with the Engineering Manager to assign work to the team.
  • Is able to take a long term goal and turn this into small actionable steps that can be implemented in an iterative way.
  • Identifies and prevents decisions that are not “two-way door decisions”.
  • Champions a no-blame culture and encourages learning from mistakes.