Commit 4170c210 authored by Gerardo Lopez-Fernandez's avatar Gerardo Lopez-Fernandez

Merge branch 'ab-dbre-leveling' into 'master'

DBRE levels

See merge request !16603
parents 1b36c6b2 7a2cf807
Pipeline #40038150 passed with stages
in 18 minutes and 40 seconds
......@@ -67,32 +67,97 @@ GitLab.com is a unique site and it brings unique challenges: it’s the biggest
* Provides emergency response either by being on-call or by reacting to symptoms according to monitoring.
* Delivers production solutions that scale, identifying automation points, and proposing ideas on how to improve efficiency.
* Delivers projects, design solutions, identifying potential issues, tradeoffs and risks.
* Improves documentation all around, either in application documentation, or in runbooks, explaining the why, not stopping with the what.
* Improves the performance of the system by either making better use of resources, distributing load or reducing the latency.
* Shares the learnings publicly, either by creating issues that provide context for anyone to understand it or by writing blog posts.
* Updates GitLab default configuration values so there is no need for configuration by customers.
* Improves monitoring and alerting fighting alert spam.
* General knowledge of the 2 of the areas of expertise.
* Deep knowledge of the 2 of the areas of expertise in postgresql ecosystem.
* Great expertise in SQL, able to review sql statements and guide developers with best practices how to interact with the database,for a high-scale web environment.
* Process oriented driven, iterating with the existent or creating new ones.
* Apply elevated testing practices to ensure smooth releases and changes.
* Good comunications skills, colaborative and good working in group.
### Senior Database Reliability Engineer
Are experienced production engineers who meet the following criteria
Are experienced Database Reliability Engineers who meet the following criteria :
* Lead DBREs and Junior SREs by setting the example.
* Identifies changes for the product architecture from the reliability, performance and availability perspective with a data driven approach focused on data storages.
* Know a domain really well and radiate that knowledge.
* Lead and mentor DBREs by setting the example.
* Identifies changes for the product architecture from the reliability, performance and availability perspective with a data driven approach focused on relational databases, knowlend of another data storages is a plus.
* Proactively work on the efficiency and capacity planning to set clear requirements and reduce the system resources usage to make GitLab cheaper to run for all our customers.
* Perform and run blameless post-mortems on incidents and outages aggressively looking for answers that will prevent the incident from ever happening again.
* Show ownership of a major part of the infrastructure.
* Perform and run blameless RCA's on incidents and outages aggressively looking for answers that will prevent the incident from ever happening again.
* Show ownership of postgresql ecosystem, great plus on ownership of major part of the infrastructure.
* Deep knowledge in architectural overview, knowledge of engineering practices, ORM’s, caching...
* Identify parts of the system that do not scale, provide immediate palliative measures and drive long term resolution of these incidents.
* Identify the SLI (Service Level Indicators) that will align the team to meet the availability and latency objectives.
* Deep knowledge in 2 areas of expertise (mainly data storages) and general knowledge of all areas of expertise. Capable of mentoring junior engineers in all areas and other DBRE in their area of deep knowledge.
* Be constructive, strong initiatives, approach with solutions, think out of the box.
* Identify the SLO (Service Level Objectives) that will align the team to meet the availability and latency objectives.
* Be constructive, strong initiatives, approach with solutions, think out of the box, able to switch focus or priorities as required.
* Priority driven, focused on what matters, raises concerns, delivered focus.
* Deep knowledge on PostgreSQL ecosystems (e.g., extensions, migration tools, high-availability).
* Deep knowledge in 3 areas of expertise related to postgresql and his ecosystem, considering another data storages an option, general knowledge of all areas of expertise from the postgresql ecosystem, radiate that knowledge.
* Leads and participates in several projects, having an overview and giving input on projects to be accomplished with the best performance and lower impact.
and the codebase. -- not relevant for a senior to know the codebase he can read/learn.
* Ownership of the database infrastructure at GitLab.com. - We should be able to hire people that is not from here , so this they can learm fast.
* Help define and improve our internal standards for database reliability, modeling, querying and database best practices for a high-scale web environment.
--covered in another points above.
* Contribute to setting standards for database and infrastructure engineering by defining patterns and best practices. - covered above
* Proficient in all relevant technical skills and able to move quickly because of a good understanding of the architecture at GitLab.com.-- we can not judge for knowledge ofthe archtecture on gitlab. a senior learns this quickly. and he can not know before be hired.
* Expert in our processes and helping to define and improve them. -- mentioned above
* Independently scope projects and deliver solutions. -- work in team is the focus.
* Strive for automation to eliminate manual work as much as possible. - not always the case.Sometimes tasks done once a year can be manual.
* Build relationships across all engineering teams seeking to collaborate with other senior engineers. -- mentioned above.
* Lead within the team by setting the example and mentor other engineers in the team. -- mentioned above.
* Identify and suggest solutions to problems that impact the team. -- problems of the platform / team tends to be redundant.
* Identify and define SLO (Service Level Objectives) that will align the team to meet the overall objectives. -- mentioned above.
* Expert knowledge of relational databases and good engineering practices, particularly with PostgreSQL and its ecosystem. -- mentioned above.
* Makes well-reasoned design decisions, identifying potential issues, tradeoffs, risks, and the appropriate level of abstraction. -- mentioned above.
*
### Staff Database Reliability Engineer
###### Technical Skills (Infrastructure/Software Engineering)
* Identify, advocate for and deliver database-related improvements to database infrastructure and GitLab's codebase that have a high impact on product quality, security and performance for our customers and GitLab.com.
* Ownership of the database infrastructure at GitLab.com. Deep understanding of the architecture of GitLab.com and how database infrastructure fits within it.
* Shepherd the definition and improvement of our internal standards for database reliability, modeling, querying and database best practices for a high-scale web environment. Maintain and advocate for these standards through writing highly insightful code reviews.
* Deep knowledge and understanding of relational databases from both an engineering and systems perspective in high-scale OLTP environments, particularly with PostgreSQL.
* Confidently deliver large projects, features and improvements with minimal guidance and support from other team members. Collaborate with the team on larger projects.
* Consistently delivers infrastructure and code that sets the standard for quality and maintainability.
* Go-to expert in an area showing an increasingly strategic mindset.
###### Leadership & Influence
* Identify, define, prioritize and deliver strategic changes in the database domain across departments. Tackles tech debt pro-actively.
* Provide general mentorship and database training for engineers to help them grow in their technical responsibilities in both infrastructure and engineering.
* Sought out as mentor and provider of technical guidance, kind coaching.
###### Communication & Collaboration
* Write in-depth and insightful documentation and blog posts that shares knowledge and radiates GitLab technical strengths.
* Spurs and facilitates meaningful discussion around complex issues reaching consensus across teams.
* Trusted to always share status with all stakeholders, and proactively remedy communication issues.
* Routinely leads initiatives to improve processes.
###### Production quality, Scalability & Automation
* Consistently delivers high-quality non-disruptive releases and changes.
* Strives for automation either by coding it or by leading and influencing developers to build systems that are easy to run in production.
* Identify and contribute to architectural changes that enable GitLab.com and product to scale in the long-term.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment