Fullstack


Dev Career Framework: Intermediate Fullstack Engineer

Dev Intermediate Fullstack Engineer


Intermediate Fullstack | Senior Fullstack | Staff Fullstack | Dev Framework | Development Framework | Engineering Framework


Dev Intermediate Fullstack Engineers at GitLab are expected to exhibit the following competencies:


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.

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.

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.
Dev Career Framework: Senior Fullstack Engineer

Dev Senior Fullstack Engineer


Intermediate Fullstack | Senior Fullstack | Staff Fullstack | Dev Framework | Development Framework | Engineering Framework


Dev Senior Fullstack Engineers at GitLab are expected to exhibit the following competencies:


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 %>

Dev Career Framework: Staff Fullstack Engineer

Dev Staff Fullstack Engineer


Intermediate Fullstack | Senior Fullstack | Staff Fullstack | Dev Framework | Development Framework | Engineering Framework


Dev Staff Fullstack Engineers at GitLab are expected to exhibit the following competencies:


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.

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.

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.
Last modified December 5, 2023: Move careers pages and files in to place (f9a98472)