Skip to content
Snippets Groups Projects
Verified Commit cd3fd39d authored by Jamie Maynard's avatar Jamie Maynard
Browse files

Fixes for engineering

parent d4bb2a92
No related branches found
No related tags found
Loading
Pipeline #821648739 passed
Showing
with 72 additions and 705 deletions
{
"clips" : [
{
"content" : "{{< cardpane >}}\n{{< card-code header=\"**Markdown**\" lang=\"mkd\" >}}\n\n{{< \/card-code >}}\n{{< card header=\"**Output**\" >}}\n<div style=\"padding-left: 5%; padding-top: 5%\">\n\n<\/div>\n{{< \/card >}}\n{{< \/cardpane >}}\n",
"name" : "code+output",
"scope" : "editor",
"syntax" : "markdown"
},
{
"content" : "{{% alert color=\"warning\" %}}\n\n{{% \/alert %}}",
"name" : "alert-warning"
},
{
"content" : "{{% alert title=\"Note\" color=\"primary\" %}}\n\n{{% \/alert %}}\n",
"name" : "note-block"
},
{
"content" : "[iteration]: https:\/\/about.gitlab.com\/handbook\/values\/#iteration\n[collaboration]: https:\/\/about.gitlab.com\/handbook\/values\/#collaboration\n[efficiency]: https:\/\/about.gitlab.com\/handbook\/values\/#efficiency\n[values]: https:\/\/about.gitlab.com\/handbook\/values",
"name" : "values links"
}
]
}
---
layout: job_family_page
title: "Alliance Business Development"
---
......
---
layout: job_family_page
title: "Alliances Job Family Matrix"
---
......
---
layout: job_family_page
title: "Technology Partner Manager"
---
......
---
layout: job_family_page
title: "Board Member"
---
......
---
layout: job_family_page
title: "Chief of Staff to the CEO"
---
......
---
layout: job_family_page
title: "Chief Executive Officer"
---
......
---
layout: job_family_page
title: Internal Strategy Intern
---
......
---
layout: job_family_page
title: Strategy and Operations
---
......
---
layout: job_family_page
title: "Acting Chief of Staff to the CTO"
description: "This role will help enable communication, collaboration, strategy execution, and special projects across the CTO organization."
canonical_path: "/job-families/engineering/acting-cos-to-the-cto/"
......
---
layout: job_family_page
title: "Backend Engineering"
description: "Backend Engineers at GitLab work on our product. This includes both the open source and enterprise editions, and the GitLab.com service."
canonical_path: "/job-families/engineering/backend-engineer/"
manual_cookiebot: true
---
# Backend Engineering Roles at GitLab
## Backend Engineering Roles at GitLab
Backend 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 [frontend engineers](/job-families/engineering/development/frontend/) to solve common goals.
......@@ -66,7 +65,7 @@ requirements and responsibilities:
- Confidently ship small features and improvements with minimal guidance and support from other team members. Collaborate with the team on larger projects.
- Participate in Tier 2 or Tier 3 weekday and weekend and occasional night [on-call rotations](https://about.gitlab.com/handbook/engineering/development/processes/Infra-Dev-Escalation/process.html) to assist troubleshooting product operations, security operations, and urgent engineering issues.
***
----
#### Professional Experience
......@@ -79,7 +78,7 @@ and Ruby on Rails or a desire to learn and contribute is necessary.
For context, see this merge request with some [history on this policy](https://gitlab.com/gitlab-com/www-gitlab-com/merge_requests/2695).
***
----
#### Primary programming language
......@@ -143,13 +142,13 @@ The Senior Backend Engineer is a [grade 7](https://about.gitlab.com/handbook/tot
- 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](https://about.gitlab.com/handbook/engineering/projects/) at GitLab via [the maintainer program](https://about.gitlab.com/handbook/engineering/workflow/code-review/#how-to-become-a-project-maintainer) at own comfortable pace, while striving to become a [project maintainer](https://about.gitlab.com/handbook/engineering/workflow/code-review/#maintainer).
***
----
A Senior Backend Engineer may want to pursue the [engineering management track](/job-families/engineering/engineering-management/) at this point as a manager of people or a higher level individual contributor. See [Engineering Career Development](https://about.gitlab.com/handbook/engineering/career-development/) 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 Backend Engineer
......@@ -361,7 +360,7 @@ Focus on security features for GitLab. This role will specifically focus on secu
### Configuration
The configuration team works on GitLab's Application Control Panel, Infrastructure Configuration features, our ChatOps product, Feature flags, and our entire Auto DevOps feature set. It is part of our collection of Ops Backend teams.
The configuration team works on GitLab's Application Control Panel, Infrastructure Configuration features, our ChatOps product, Feature flags, and our entire Auto DevOps feature set. It is part of our collection of Ops Backend teams.
#### Requirements
......@@ -382,21 +381,24 @@ Focus on security features for GitLab. This role will specifically focus on secu
CI/CD Backend Engineers are primarily tasked with improving the Continuous Integration (CI)
and Continuous Deployment (CD) functionality in GitLab. Engineers should be willing to learn Kubernetes and Container Technology. CI/CD Engineers should always have three goals in mind:
1. Provide value to the user and communicate such with product managers,
2. Introduce features that work at scale and in untrusting environments,
3. Always focus on defining and shipping [the Minimal Viable Change](https://about.gitlab.com/handbook/product/product-principles/#the-minimal-viable-change-mvc).
1. Introduce features that work at scale and in untrusting environments,
1. Always focus on defining and shipping [the Minimal Viable Change](https://about.gitlab.com/handbook/product/product-principles/#the-minimal-viable-change-mvc).
We, as a team, cover end-to-end integration of CI/CD in GitLab, with components being written in Rails and Go.
We work on a scale of processing a few million of CI/CD jobs on GitLab.com monthly.
CI/CD engineering is interlaced with a number of teams across GitLab.
We build new features by following our [direction](/direction/#ci--cd).
Currently, we focus on providing a deep integration of Kubernetes with GitLab:
1. by automating application testing and deployment through Auto DevOps,
1. by managing GitLab Runners on top of Kubernetes,
1. by working with other teams that provide facilities to monitor all running applications,
1. in the future implement A-B testing, feature flags, etc.
Additionally, we also focus on improving the efficiency, performance, and scalability of all aspects of CI/CD:
1. Improve performance of developer workflows, e.g. faster CI testing, by improving parallelization,
1. Improve performance of implementation, ex.:by allowing us to run 10-100x more in one year,
1. Identify and add features needed by us, ex.:to allow us to test more reliably and ship faster.
......@@ -415,6 +417,7 @@ read-only mirrors of a primary GitLab instance. This mirror (a Geo secondary nod
large repositories and projects, or can be part of a Disaster Recovery solution.
#### Responsibilties
- Work with the Product Manager to carefully assess technical feasibility of feature requests
- Deliver proof-of-concept proposals to help guide technical discussions
- Identify ways to deliver complex technical projects in an iterative fashion
......@@ -489,10 +492,10 @@ Engineering Productivity Engineers have the following job-family performance ind
#### Hiring Process
1. 30 minute [screening call](https://about.gitlab.com/handbook/hiring/#screening-call) with one of our Technical Recruiters.
2. 60 minute behavioral interview with the Engineering Manager, Engineering Productivity.
3. 50 minute behavioral interview with two Quality team members with at least 1 Backend Engineer, Engineering Productivity
4. 90 minute Ruby-based technical interview.
4. 50 minute behavioral interview with the VP of Quality.
1. 60 minute behavioral interview with the Engineering Manager, Engineering Productivity.
1. 50 minute behavioral interview with two Quality team members with at least 1 Backend Engineer, Engineering Productivity
1. 90 minute Ruby-based technical interview.
1. 50 minute behavioral interview with the VP of Quality.
### Application Performance
......
---
layout: job_family_page
title: "Cloud Native Engineer"
---
......
---
layout: job_family_page
title: "Database Engineer Roles"
description: "Learn more about Database Engineer roles at Gitlab including requirements, responsibilities and more."
---
......
---
layout: markdown_page
title: "Engineering Development Roles"
---
## Engineering Development Roles
<%= job_families('engineering/development') %>
---
layout: job_family_page
title: "Backend Engineering Roles"
description: "Learn more about requirements and responsibilities for Backend Engineering roles at GitLab."
manual_cookiebot: true
......
---
layout: job_family_page
title: Associate Backend Engineer
---
......@@ -8,6 +7,7 @@ Backend Engineers at GitLab work on our product. This includes both the open sou
<a id="associate-responsibilities"></a>
## Responsibilities
- Develop features and improvements to the GitLab product in a secure,
well-tested, and performant way
- Collaborate with Product Management and other stakeholders within Engineering (Frontend, UX, etc.) to maintain a high bar for quality in a fast-paced, iterative environment
......@@ -21,11 +21,12 @@ Backend Engineers at GitLab work on our product. This includes both the open sou
<a id="associate-requirements"></a>
## Requirements
- Experience with Ruby on Rails **or** [language](#primary-programming-language) required by the [specialty](#specialties)
- Experience with any other technologies that may be required by the [specialty](#specialties)
- Experience with Ruby on Rails **or** [language](#primary-programming-language) required by the specialty
- Experience with any other technologies that may be required by the specialty
- 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 technical, and/or organizational problems and propose thorough iterative solutions
- Comfort working in a highly agile, [intensely iterative][iteration] software development process
- Comfort working in a highly agile, [intensely iterative](https://about.gitlab.com/handbook/values/#iteration) software development process
- Ability to onboard and integrate with an organization long-term
- Positive and solution-oriented mindset
- Effective communication skills: [Regularly achieve consensus with peers](https://about.gitlab.com/handbook/values/#collaboration), and clear status updates
......@@ -53,16 +54,16 @@ Backend Engineers at GitLab work on our product. This includes both the open sou
#### Professional Experience
At GitLab, due to the pace we're moving, people joining our team will be expected to have **significant** professional experience in the
[primary programming language](#primary-programming-language) of the [specialty](#specialties) that they'll be joining.
[primary programming language](#primary-programming-language) of the specialty that they'll be joining.
Because the majority of our codebase is written in Ruby, even in specialized roles, a knowledge of Ruby and Ruby on Rails or a desire to learn and contribute is necessary.
For context, see this merge request with some [history on this policy](https://gitlab.com/gitlab-com/www-gitlab-com/merge_requests/2695).
***
----
#### Primary programming language
Some [specialties](#specialties) within GitLab are using primary programming languages other than Ruby.
Some specialties within GitLab are using primary programming languages other than Ruby.
These programming languages are defined as being primary in terms of an engineer's experience and what they'll be writing day to day.
The expectation from the specialty is that engineers will have extensive experience in this primary programming language
as well as some level of understanding of Ruby and Ruby on Rails.
......
---
layout: job_family_page
title: Intermediate Backend Engineer
---
Backend 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 frontend engineers to solve common goals
## Responsibilities
- Develop features and improvements to the GitLab product in a secure, well-tested, and performant way
- Collaborate with Product Management and other stakeholders within Engineering (Frontend, UX, etc.) to maintain a high bar for quality in a fast-paced, iterative environment
- Advocate for improvements to product quality, security, and performance
......@@ -17,6 +17,7 @@ Backend Engineers at GitLab work on our product. This includes both the open sou
- Participate in Tier 2 or Tier 3 weekday and weekend and occasional night [on-call rotations](https://about.gitlab.com/handbook/engineering/development/processes/Infra-Dev-Escalation/process.html) to assist troubleshooting product operations, security operations, and urgent engineering issues.
## Requirements
- Ability to use GitLab
- Significant professional experience with Ruby on Rails or language required by the specialty
- Professional experience with any other technologies that may be required by the specialty
......@@ -35,6 +36,7 @@ Backend Engineers at GitLab work on our product. This includes both the open sou
- Ability to thrive in a fully remote organization
## Nice-to-haves
- Experience in a peak performance organization, preferably a tech startup
- Experience with the GitLab product as a user or contributor
- Product company experience
......@@ -46,6 +48,7 @@ Backend Engineers at GitLab work on our product. This includes both the open sou
- Passionate about/experienced with open source and developer tools
## Levels
- Intermediate
- [Senior](https://about.gitlab.com/job-families/engineering/backend-engineer/#senior-backend-engineer)
- [Staff](https://about.gitlab.com/job-families/engineering/backend-engineer/#staff-backend-engineer)
......@@ -56,10 +59,10 @@ Backend Engineers at GitLab work on our product. This includes both the open sou
The Backend Engineer is a [grade 6](https://about.gitlab.com/handbook/total-rewards/compensation/compensation-calculator/#gitlab-job-grades).
## Performance Indicators
- [Open MR Review Time (OMRT)](https://about.gitlab.com/handbook/engineering/development/performance-indicators/#open-mr-review-time-omrt)
- [Open MR Age (OMA)](https://about.gitlab.com/handbook/engineering/development/performance-indicators/#open-mr-age-oma)
## Hiring Process
Candidates for this 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 their job title on our [team page](https://about.gitlab.com/company/team/).
......
---
layout: job_family_page
title: Backend Engineering Manager
description: "The Backend Engineering Manager specializes in Backend Engineering Management as a manager of people."
---
......@@ -11,6 +10,7 @@ The Backend Engineering Manager specializes in Backend Engineering Management as
The Backend Engineering Manager role is a [grade 8](https://about.gitlab.com/handbook/total-rewards/compensation/compensation-calculator/#gitlab-job-grades).
## Responsibilities
- Help your engineers grow their skills and experience
- Author project plans for epics
- Run agile project management processes
......@@ -28,14 +28,16 @@ The Backend Engineering Manager role is a [grade 8](https://about.gitlab.com/han
- Participate in the [Incident Management on-call rotation](https://about.gitlab.com/handbook/engineering/infrastructure/incident-management/#incident-manager-responsibilities) to help ensure the availability goals for GitLab.com are met, by working with reliability engineers and development team members.
## Requirements
- Ability to use GitLab
- Exquisite brokering skills: regularly achieve consensus amongst departments
- Demonstrated progressive experience in a leadership role with current technical experience
- In-depth experience with Ruby on Rails, Go, and/or Git, in addition to any experience required by the position's [specialty](#specialties)
- In-depth experience with Ruby on Rails, Go, and/or Git, in addition to any experience required by the position's specialty
- Excellent written and verbal communication skills
- You share our [values](https://about.gitlab.com/handbook/values/), and work in accordance with those values
## Nice-to-haves
- Experience in a peak performance organization
- Deep Ruby on Rails experience
- Golang experience
......@@ -46,6 +48,7 @@ The Backend Engineering Manager role is a [grade 8](https://about.gitlab.com/han
- Passionate about open source and developer tools
## Levels
- [Intermediate](/job-families/engineering/development/backend/intermediate/)
- [Senior](/job-families/engineering/development/backend/senior/)
- [Staff](/job-families/engineering/development/backend/staff/)
......
---
layout: job_family_page
title: Senior Backend Engineer
---
......@@ -10,6 +9,7 @@ Backend Engineers at GitLab work on our product. This includes both the open sou
The Senior Backend Engineer is a [grade 7](https://about.gitlab.com/handbook/total-rewards/compensation/compensation-calculator/#gitlab-job-grades).
## Responsibilities
- Develop features and improvements to the GitLab product in a secure, well-tested, and performant way.
- Collaborate with Product Management and other stakeholders within Engineering (Frontend, UX, etc.) to maintain a high bar for quality in a fast-paced, iterative environment.
- Advocate for improvements to product quality, security, and performance.
......@@ -21,6 +21,7 @@ The Senior Backend Engineer is a [grade 7](https://about.gitlab.com/handbook/tot
- Participate in Tier 2 or Tier 3 weekday and weekend and occasional night [on-call rotations](https://about.gitlab.com/handbook/engineering/development/processes/Infra-Dev-Escalation/process.html) to assist troubleshooting product operations, security operations, and urgent engineering issues.
## Requirements
- Ability to use GitLab.
- Significant professional experience with Ruby on Rails or language required by the specialty.
- Professional experience with any other technologies that may be required by the specialty.
......@@ -39,6 +40,7 @@ The Senior Backend Engineer is a [grade 7](https://about.gitlab.com/handbook/tot
- Ability to thrive in a fully remote organization.
## Levels
- [Intermediate](/job-families/engineering/development/backend/intermediate/)
- Senior
- [Staff](/job-families/engineering/development/backend/staff/)
......@@ -47,6 +49,7 @@ The Senior Backend Engineer is a [grade 7](https://about.gitlab.com/handbook/tot
### Senior
#### Senior 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.
......@@ -58,6 +61,7 @@ The Senior Backend Engineer is a [grade 7](https://about.gitlab.com/handbook/tot
- Improves the [engineering projects](https://about.gitlab.com/handbook/engineering/projects/) at GitLab as a [project maintainer](https://about.gitlab.com/handbook/engineering/workflow/code-review/#maintainer). For more information regarding timelines and exceptions, [see this page](https://about.gitlab.com/handbook/engineering/workflow/code-review/#senior-maintainers).
#### Senior Requirements
- TBD
## Specialties
......@@ -230,6 +234,7 @@ The CI/CD Engineering Manager also does weekly stand-up with a team and product
[GitLab Geo](https://docs.gitlab.com/ee/administration/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.
#### Responsibilties
- Work with the Product Manager to carefully assess technical feasibility of feature requests.
- Deliver proof-of-concept proposals to help guide technical discussions.
- Identify ways to deliver complex technical projects in an iterative fashion.
......@@ -255,6 +260,7 @@ Growth: Analytics and Experimentation Engineers build, maintain, and integrate w
- Comfort multitasking in a highly iterative environment.
##### Nice to have
- Proven experimentation platform development experience
- Familiarity with third party experimentation tools
- Experience with Snowplow
......@@ -270,6 +276,7 @@ The Senior Backend Engineer for Product Intelligence extends the Senior Backend
#### Requirements
##### Nice to have
- Proven database development experience with SQL.
- Postgres database experience with replication, backup, indexing, and partitioning.
- DevOps experience working with and configuring infrastructure (GCP/AWS, GKE, GCS, IAM).
......@@ -330,11 +337,13 @@ The Application Performance team works to improve availability, reliability, and
#### Requirements
An ideal engineer candidate -
- Expert of Ruby on Rails.
- Experience of performance tuning and/or architecture, [Example](https://rubykaigi.org/2018/presentations/tenderlove.html).
- Experience of memory leak troubleshooting, [Example 1](http://www.be9.io/2015/09/21/memory-leak/), [Example 2](https://samsaffron.com/archive/2015/03/31/debugging-memory-leaks-in-ruby).
Alternatively, some of the following qualifications, may not necessarily be all -
- **Must** be proficient in one or more of the following in preference order
- Ruby.
- Go.
......@@ -386,7 +395,8 @@ Gitaly is a service that handles git and other filesystem operations for GitLab
- Conduct acceptance testing of the features you’ve built.
- Educate all team members on best practices relating to high availability.
#### Requirements:
#### Requirements
- Mandatory: production experience building, debugging, optimising software in large-scale, high-volume environments.
- Mandatory: Solid production Ruby experience.
- Highly desirable: Experience working with Go. It’s important that candidates must be willing to learn and work in both Go and Ruby.
......@@ -533,6 +543,7 @@ Elasticsearch engineers are focused on delivering a first class global search ex
- Self-managed installation mechanisms.
## Performance Indicators
- [Backend Unit Test Coverage](https://about.gitlab.com/handbook/engineering/development/performance-indicators/#backend-unit-test-coverage)
- [Open MR Review Time (OMRT)](https://about.gitlab.com/handbook/engineering/development/performance-indicators/#open-mr-review-time-omrt)
- [Open MR Age (OMA)](https://about.gitlab.com/handbook/engineering/development/performance-indicators/#open-mr-age-oma)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment