--- layout: job_family_page title: "Frontend Engineer" --- ## Frontend Engineering Roles at GitLab Frontend Engineers at GitLab work on our product. This includes both the open source version of GitLab, the enterprise editions, and the GitLab.com service as well. They work with peers on teams dedicated to areas of the product. They work together with product managers, designers, and [backend engineers](/job-families/engineering/backend-engineer) to solve common goals. Unless otherwise specified, all Frontend Engineering roles at GitLab share the following requirements and responsibilities: [values]: /handbook/values/ [collaboration]: /handbook/values/#collaboration [efficiency]: /handbook/values/#efficiency [iteration]: /handbook/values/#iteration ### Requirements - Professional experience with VueJS **or** another modern JavaScript web framework (React, Angular, Ember, etc) - Experience with writing automated tests (eg. Jest, Karma, Jasmine, Mocha, AVA, tape) - Experience using Git in a professional/workplace environment - A solid understanding in core web and browser concepts (eg. how the browser parses and constructs a web page) - A solid understanding of semantic HTML, CSS, and core JavaScript concepts. - Proficiency in the English language, both written and verbal, sufficient for success in a remote and largely asynchronous work environment - Demonstrated capacity to clearly and concisely communicate about complex technical, architectural, and/or organizational problems and propose thorough iterative solutions - Experience with performance and optimization problems and a demonstrated ability to both diagnose and prevent these problems - Comfort working in a highly agile, [intensely iterative][iteration] software development process - Demonstrated ability to onboard and integrate with an organization long-term - Positive and solution-oriented mindset - Effective communication skills: [Regularly achieve consensus with peers][collaboration], and clear status updates - An inclination towards communication, inclusion, and visibility - [Self-motivated and self-managing][efficiency], with strong organizational skills. - Demonstrated ability to work closely with other parts of the organization - Share [our values][values], and work in accordance with those values - Ability to thrive in a fully remote organization - Ability to use GitLab #### Nice to have: - Working knowledge of Ruby on Rails and Haml - Experience in a peak performance organization, preferably a tech startup - Experience with the GitLab product as a user or contributor - Product company experience - Experience working with a remote team - Enterprise software company experience - Developer platform/tool industry experience - Experience working with a global or otherwise multicultural team - Experience contributing to open source software - Domain knowledge relevant to the product stage in which you are looking to join (eg. someone with CI/CD experience applying for the Verify & Release team) ### Responsibilities - Develop features and improvements to the GitLab product in a secure, well-tested, and performant way - You’ll work with Product Management and other stakeholders (Backend, UX, etc.) to iterate on new features within the GitLab product. - Craft code that meets our internal standards for style, maintainability, and best practices for a high-scale web environment. Maintain and advocate for these standards through code review. - Confidently ship small features and improvements with minimal guidance and support from other team members. Collaborate with the team on larger projects. - You'll help improve the overall experience of our product through improving the quality of the Frontend features both in your [group](/handbook/product/categories/#hierarchy) and features that benefit other groups. - You’ll help identify areas of improvements in the code base, both specific to your [group](/handbook/product/categories/#hierarchy) and outside your group (eg. component library) and help contribute to make it better - You’ll learn, collaborate and teach other Frontend Engineers. Everyone can contribute something new to the team regardless of how long they’ve been in the industry. - You’ll fix prioritized issues from the issue tracker. These are typically bugs listed in a GitLab issue with an attached severity and priority label. - You’ll contribute to and follow our workflow process, alongside the rest of the Frontend Engineers and the GitLab community as a whole. ### Frontend Engineer Performance Indicators Frontend Engineers have the following job-family performance indicators. - [Frontend Unit Test Coverage](/handbook/engineering/development/performance-indicators/#frontend-unit-test-coverage) - [Mean Time to Merge (MTTM)](/handbook/engineering/development/performance-indicators/#mean-time-to-merge-mttm) ## Levels Read more about [levels](/handbook/hiring/#definitions) at GitLab here. ### Junior Frontend Engineer Junior Frontend Engineers, while sharing the same requirements and responsibilities outlined above, typically join with less or alternate experience than typical Frontend Engineers. ### Intermediate Frontend Engineer Intermediate Frontend Engineers are expected to meet the requirements and execute the responsibilities with minimal assistance. ### Senior Frontend Engineer The Senior Frontend Engineer role extends the [Frontend Engineer](#requirements) role. #### Responsibilities - Advocate for improvements to product quality, security, and performance that have particular impact across your team. - Solve technical problems of high scope and complexity. - Exert influence on the overall objectives and long-range goals of your team. - Experience with performance and optimization problems, particularly at large scale, and a demonstrated ability to both diagnose and prevent these problems - Help to define and improve our internal standards for style, maintainability, and best practices for a high-scale web environment. Maintain and advocate for these standards through code review. - Represent GitLab and its values in public communication around broader initiatives, specific projects, and community contributions. - Provide mentorship for Junior and Intermediate Engineers in your section to help them grow in their technical responsibilities and remove blockers to their autonomy. - Confidently ship moderately sized features and improvements with minimal guidance and support from other team members. Collaborate with the team on larger projects. - Improves the [engineering projects](/handbook/engineering/projects/) at GitLab via [maintainer trainee program](/handbook/engineering/workflow/code-review/#how-to-become-a-maintainer) at own comfortable pace, while striving to become a [project maintainer](/handbook/engineering/workflow/code-review/#maintainer). --- A Senior Frontend Engineer may want to pursue the engineering management track at this point. See [Engineering Career Development](/handbook/engineering/career-development#engineering) for more detail. **Note:** Staff and above positions at GitLab are more of a role than just a "level". We prefer to bring people in as Senior and let the team elevate them to Staff due to an outstanding work history within GitLab. --- ### Staff Frontend Engineer The Staff Frontend Engineer role extends the [Senior Frontend Engineer](#senior-frontend-engineer) role. #### Responsibilities - Advocate for improvements to product quality, security, and performance that have particular impact across your team and others. - Solve technical problems of the highest scope and complexity for your team. - Exert significant influence on the overall objectives and long-range goals of your team. - Shepherd the definition and improvement of our internal standards for style, maintainability, and best practices for a high-scale web environment. Maintain and advocate for these standards through code review. - Drive innovation on the team with a willingness to experiment and to boldly confront problems of immense complexity and scope. - Actively seek out difficult impediments to our efficiency as a team ("technical debt"), propose and implement solutions that will enable the entire team to iterate faster - Represent GitLab and its values in public communication around broad initiatives, specific projects, and community contributions. Interact with customers and other external stakeholders as a consultant and spokesperson for the work of your team. - Provide mentorship for all Engineers on your team to help them grow in their technical responsibilities and remove blockers to their autonomy. - Confidently ship large features and improvements with minimal guidance and support from other team members. Collaborate with the team on larger projects. ### Distinguished Frontend Engineer The Distinguished Frontend Engineer role extends the [Staff Frontend Engineer](#staff-frontend-engineer) role. - At this level the person's contribution plays to their strength and role on the team. These contributions come in different forms such as: Ship _large_ feature sets with team, completes _feature discovery_ independently, publishes technical blogs and speaks at conferences, interfaces with customers and provides technical direction to stakeholders (Product, Sales, others) - _Generate_ technical and process improvements - Contribute to the sense of psychological safety on your team - Work cross-departmentally - Be a technical mentor for other frontend engineers - Author architecture documents for epics - Hold team members accountable within their roles ### Frontend Engineering Fellow The Frontend Engineering Fellow role extends the [Distinguished Frontend Engineer](#distinguished-frontend-engineer) role. - Advocate for improvements to product quality, security, and performance that impact all of Engineering at GitLab. - Solve technical problems of the highest scope and complexity for the entire organization. - Exert significant influence on the overall objectives and long-range goals of GitLab. - Ensure that our standards for style, maintainability, and best practices are suitable for the unique problems of scale and diversity of use represented by the GitLab product. Maintain and advocate for these standards through code review. - Drive innovation across Engineering with a willingness to experiment and to boldly confront problems of immense complexity and scope. - Actively seek out and prioritize our toughest technical challenges with a goal of creating significant improvement for GitLab's use, ease of development, and/or technical efficiency. - Represent GitLab and its values in public communication in all aspects of our software development lifecycle and public relations. Interact with customers and other external stakeholders as a consultant and spokesperson for critical projects and aspects of our technical architecture. - Provide mentorship for Senior and Staff Engineers at the company to help them grow in their technical responsibilities and to share your great expertise across the organization. - Confidently ship immense or otherwise extremely high-impact features and improvements with minimal guidance and support from other members of the organization. - Help create the sense of psychological safety in the department ## Hiring Process Candidates for a Frontend Engineering position can expect the hiring process to follow the order below. Please keep in mind that candidates can be declined from the position at any stage of the process. To learn more about someone who may be conducting the interview, find her/his job title on our [team page](/company/team). - Selected candidates will be invited to complete a short written assessment. - Next, candidates will be invited to schedule a 30 minute [screening call](/handbook/hiring/#screening-call) with our Global Recruiters - Next, candidates will be invited to schedule a 90 minute technical interview with either a Frontend Engineer or a Frontend Hiring Manager - Next, candidates will be invited to schedule a 45 minute behavioral interview with a Frontend Hiring Manager - Candidates will then be invited to schedule a 60 minute interview with a Director of Engineering - Successful candidates will subsequently be made an offer. Additional details about our process can be found on our [hiring page](/handbook/hiring). --- ## Engineering Management Roles at GitLab View the [engineering management](/job-families/engineering/backend-engineer/#engineering-management-roles-at-gitlab) job family page for more details on engineering management roles. --- ## Team Specialties As a frontend engineer, in one of the following team specialities, you should expect to ... ### Manage Increase user productivity by improving the user experience across the entire GitLab UI, driving initiatives such as internationalization and analytics, as well as refreshing the design across well-trafficked parts of the UI. ### Plan Enable people in any size organization the ability to manage and analyze projects, from ideation to execution. You will work on our project management applications, including Issue Management, Kanban Boards, and Agile Portfolio Management. ### Create Build and improve features related to creating projects using GitLab. This includes dealing with Source Code of projects including Snippets, Code Reviewing (Merge Requests), the Web IDE, projects' Wiki and Design Management. ### Verify Focus on building functionality related to the Continuous Integration stage of the DevOps lifecycle. This includes contributing to Performance and Testing tools, Cross-Project Pipelines, Visual Review Apps, and CI Recipes. Our mission is to help developers feel confident in delivering their code to production. ### Package Create a consistent user experience for developers to interact with our integrated universal package management solution. Our focus is to simplify package sharing within organizations and teams while providing an extra layer of confidence in external dependencies. ### Secure The tools you build will be used by developers and security engineers alike, to help their teams to detect and mitigate potential vulnerabilities before they hit production. This involves displaying results of our automated security scanning, for example Dependency Scanning. The UI we build display aggregated data of scanning results in a user-friendly way. ### Release Focus on building functionality related to the Continuous Delivery stage of the DevOps lifecycle. This includes contributing to Review Apps, Feature Flags, Merge Request Pipelines, and GitLab Pages. Our mission is to provide the best experience to developers as they deliver their changes to production with zero-touch software delivery. ### Configure Become an expert in Auto DevOps, Kubernetes and Serverless. You should also expect to create fantastic user experiences that help guide users through configuring their application and infrastructure in an intuitive way. ### Monitor Build charts and dashboards to help users monitor metrics so that users know how changes in their code impacts their production environment. You should expect to become a leader in charting and data visualizations at GitLab and to become very familiar with our charting library, ECharts. ### Defend Defend is a new group which will be bootstrapped during 2019. Secure helps to improve security during the development of an application, while Defend does so during the production phase of an application. You should expect that there are a lot of interfaces to be built from scratch in Vue and VueX, potentially with real time updates and charting capabilities. ### Geo Geo is an enterprise product feature, built to help speed up the development of distributed teams by providing one or more read-only mirrors of a primary GitLab instance. This mirror (a Geo secondary node) reduces the time to clone or fetch large repositories and projects, or can be part of a Disaster Recovery solution. ### Fulfillment Move data-driven product decisions forward by working on telemetry initiatives, understanding how users interact with GitLab. Work at the core of how GitLab earns revenue, working on our licensing and transaction applications. ### Ecosystem The Ecosystem team is responsible for seamless integration between GitLab and 3rd party products as well as making GitLab products available on cloud service providers’ marketplaces such as AWS. The team plays a critical role in developing APIs and SDK and expanding GitLab market opportunities. ### Distribution The Distribution team closely partners with our greater engineering organization to build, configure and automate GitLab deployments. GitLab's distribution team is tasked with creating a seamless installation and upgrade experience for users across a multitude of platforms. ## Relevant links - [Engineering Handbook](/handbook/engineering) - [Engineering Workflow](/handbook/engineering/workflow) ## What it’s like to work here at GitLab: The [culture](/company/culture/) here at GitLab is something we’re incredibly proud of. Because GitLab team-members are currently located in 50+ different countries, you’ll spend your time collaborating with kind, talented, and motivated colleagues from across the globe. Some of the [benefits](/handbook/benefits/) you’ll be entitled to vary by the region or country you’re in. However, all GitLab team-members are fully remote and receive a "no ask, must tell" paid-time-off policy, where we don’t count the number of days you take off annually. You can work incredibly flexible hours, enabled by our asynchronous approach to [communication](/handbook/communication/). Also, every nine months or so, we’ll invite you to our [Contribute](/company/culture/contribute/) event.