Headcount Reset for Database Group
Background
Context
The Database Scalability Working Group is working on a long term solution to scale the GitLab application for the fast growth of SaaS. The working group has identified two categories of work that help achieve this goal: scale by data usage pattern and sharding the PostgreSQL database. There is also a prerequisite that we "clean up before scale up" where we need to address primary key overflow of identified tables and enable automated schema migration testing in CI to prevent migration failures in production.
The issue is designed to request additional headcount for the work scale by data usage pattern
, where the DB team's capacity will need to be increased due to upcoming paternity leaves.
Current Database Team Staffing
Team | DB BE | BEM | PM | SDET |
---|---|---|---|---|
Database | 3 | 0.5 | 0 | 0 |
Note: Two database BEs are planning to go on extended leave for new borns between April and September. A new hire won't be onboard until July.
Request From Priority Teams
Team | BE | BEM | PM | SDET | SRE | Total |
---|---|---|---|---|---|---|
Database | +4 | 0 | 0 | 0 | 0 | 4 |
Total | 4 | 0 | 0 | 0 | 0 | 4 |
What's Changing
Overall Adjustments
The total shall sum up to 0 in the table below, which means all the requested headcount is fully allocated.
Team | BE | BEM | PM | SDET | SRE |
---|---|---|---|---|---|
Enablement:Database | +4 | 0 | 0 | 0 | 0 |
Enablement:Geo | -1 | ||||
Fulfillment:Utilization | -1 | ||||
Plan:Project Management | -1 | ||||
Growth:Product Intelligence | -1 | ||||
Total | 0 | 0 | 0 | 0 | 0 |
- For the BEs, strong preference towards either a Database Maintainer or a Database Reviewer.
- People are expected to timebox their duration for 3 months.
- To avoid cascading impacts, suggest the following approach.
- Any impacted group can give one and only one engineer.
- Any impacted group shall have at least 3 engineers remaining on the team.
EMs of Impacted Teams
Team | EM |
---|---|
Database | Craig Gomes |
Geo | Nick Nguyen |
Utilization | Chase Southard |
Project Management | Jake Lear |
Product Intelligence | Jerome Ng |
Timeline and Tasks
Week of 2021-03-29
-
Determine who join the Database team -
Activate at least one engineer to join the Database team
Week of 2021-04-12
-
Activate the remaining 3 engineers to engage with the database team for knowledge transfer.
2021-04-19
-
All loaned engineers start full time on database topics.
2021-07-16
-
All loaned engineers return to their original teams.
Additional Details
Proposed Staffing
- Shift 4 Backend Engineers to Database team temporarily
- Duration: 3 months
- Preference in order: DB Maintainers, DB Reviewers, any BE
- Responsibilities of loaned BEs:
- Hands-on implementing Primary Key migration tasks defined in gitlab-org&4785 (closed) (Yannis/Andreas will consult, assist and review.)
- Develop Primary Key migration helpers gitlab-org/gitlab#292874 (closed)
- Continue rolling out schema migration testing in CI gitlab-org/database-team&6 (closed) (Andreas will consult, assist, and review.)
- Respond to and handle interruption-driven issues from Infradev, product incident corrective actions labeled to groupdatabase, and other working groups or rapid actions.
- Responsibilities of DB team members:
- Yannis: Sharding, Blueprint - Database Scalability Working Group Pattern: Time Decay gitlab-org/gitlab#326035 (closed)
- Andreas: Blueprint - Database Scalability Working Group Pattern: Read-Mostly gitlab-org/gitlab#326037 (closed)
- Pat: Primary Key migration helpers gitlab-org/gitlab#292874 (closed)
- Assist the .com PG12 upgrade
Exit Criteria
Time-box for 3 months.