Frontend


Dev Career Framework: Intermediate Frontend Engineer

Dev Intermediate Frontend Engineer


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


Dev Intermediate Frontend 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.
  • Working knowledge of GitLab’s default frontend frameworks
  • Able to construct applications using components
  • Identifying and building re-usable abstract components
  • Proficient or fluent with consuming REST and GraphQL APIs
  • Able to work with third-party libraries when good documentation is available
  • Writes efficient, performant code
  • Show an awareness of and don’t introduce common frontend security exploits (e.g. XSS attacks) into GitLab’s code bases.
  • Ability to analyze page speed performance
  • Debug issues that occur in the Production Environment
  • Develop documentation and instructions explaining how to work with GitLab Products

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 Frontend Engineer

Dev Senior Frontend Engineer


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


Dev Senior Frontend 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

Technical Competencies

Engineering
  • Contributes to the team’s understanding of quality and how it impacts the team’s domain with respect to their role.
  • Able to take on large issues with vague requirements.
  • Able to resolve complex challenges.
  • Acts as a Coach and Mentor to others.
Development
  • Improves the state of our test framework and any other dependencies.
  • Coaches others on improving their tests.
  • Always looks to improve our test coverage with every MR coded or reviewed.
  • Ensures security best practices are followed across many domains and escalate security risks
  • Able to take on large issues with vague requirements and design an implementation.
  • Implements the GitLab Iteration value when faced with an issue that grows in size or complexity by converting the issue into an Epic or breaking it down into smaller issues.
  • Helps to set and enforce coding standards.
  • Looks to maintain coding consistency across the code base.
  • Provides reviews across many domains and be mindful of how changes may impact other teams.
  • Improves the engineering projects at GitLab as a project maintainer. For more information regarding timelines and exceptions, see this page.
  • Able to resolve complex performance issues.
  • Mentors others on best practices.
  • Understands how code in their domain performs in production on GitLab.com.
  • Understands impact of the architecture and dependencies required for the self-managed product.
  • Act as coach for open source contributors.
  • High level of expertise in frontend programming languages and GitLab’s default frontend frameworks
  • Able to provide architectural guidance on REST and GraphQL API design
  • Able to utilize Websockets to create real-time updating UIs
  • Able to work with third-party libraries regardless of the quality of the documentation
  • Identify and address slow and inefficient frontend implementations in GitLab’s code bases
  • Debug production issues across services and multiple levels of the technical stack

Values Alignment

GitLab
Development
  • Engages with the stable-counterparts for their team looking at how to improve the working relationships and processes.
  • Represents their team, and considers the impact to the team, when in conversations with others.
  • Provides feedback that focuses on the business impact of the behaviour.
  • Extensive user of GitLab (dogfooding) and regularly makes helpful suggestions for feature proposals in a variety of stages.
  • Demonstrates ownership of projects that require collaboration with other teams.
  • Leads conversations towards action and encourages bias for action to deliver results.
  • Helps others in their group to achieve their group’s goals.
  • Follows up on suggestions that they make and issues that they create.
  • Seeks out ways to be more effective in their role, while also starting to mentor others in ways to work efficiently.
  • Proactively takes on work that enables greater efficiency of others in the team.
  • Seeks out diverse opinions to improve the quality of the team’s work, for example through code review from outside the team.
  • Uses people’s talents to maximize the results of their group.
  • Independently balances short term gains and long term benefit.
  • Creates proposals for the team that have a wide scope but still contain an iterative proposal for delivering the outcome.
  • Identifies opportunities to improve the processes around iteration.
  • Holds their team to a high standard of transparency and encourages others to work in the open.
  • Directly or indirectly takes part in the hiring process to help ensure that we bring in a wide variety of experience into our teams.
Dev Career Framework: Staff Frontend Engineer

Dev Staff Frontend Engineer


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


Dev Staff Frontend 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 Developer Experience Stage 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.
  • Expert knowledge of frontend programming languages and GitLab’s default frontend frameworks
  • Able to identify and drive large architectural changes
  • Able to analyze and contribute back improvements to third-party libraries
  • Improve engineering standards, tooling, and processes
  • Identify, analyze, and fix slow and frontend code architecture and implementation

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)