For this role you will be primarily working on GitLab's CI/CD integration and assisting the corresponding CI/CD functional group. For more information about how database engineers focus on certain parts of GitLab you can refer to the Database Team handbook page.
Improving performance of database queries, and owning this process from end-to-end: from isolating problematic queries and developing a fix, to ensuring that the new code is performing as expecting in production.
Optimising and redesigning (the use of) the database schema.
Providing expertise to engineering teams, for changes during planning through to reviews, to help engineering teams deliver optimal database designs and queries
Building and incrementally improving tools to:
Surface database performance problems early in the development cycle
Provide observability into the database operation to guide development
Monitor production systems to detect problems early and reliably
Creating and incrementally improving documentation to reduce tribal knowledge, including:
Production incident runbooks
Database best practices
Workflows and database team processes
At least 5 years of experience running PostgreSQL in large production environments
At least 3 years of experience working with either Ruby (preferred) or Python
At least 3 years of experience with Ruby on Rails, Django, or other Ruby and/or Python web frameworks (Flask, web2py, etc)
Solid understanding of SQL and PL/pgSQL
Solid understanding of the internals of PostgreSQL
Significant experience working in a distributed production environment
Excellent written and verbal English communication skills
Experience with running pgbouncer and/or WAL-E in production.
Experience with Go, C, and/or Rust.
MySQL experience, since GitLab also supports MySQL.
Rewriting the database queries and related application logic used for retrieving subgroups
Rewriting code used for importing projects from other platforms (e.g. GitHub)
Adding trend analysis to monitoring to better detect performance and availability changes on GitLab.com
Analyzing tables and optimizing them by adding indexes, breaking them up into separate tables, or by removing unnecessary columns.
Reviewing database related changes submitted by other developers
Documenting database best practices or patterns to avoid
GitLab Inc. is a company based on the GitLab open-source project. GitLab is a community project to which over 1,000 people worldwide have contributed. We are an active participant in this community, trying to serve its needs and lead by example. We have one vision: everyone can contribute to all digital content, and our mission is to change all creative work from read-only to read-write so that everyone can contribute.
We value results, transparency, sharing, freedom, efficiency, frugality, collaboration, directness, kindness, diversity, boring solutions, and quirkiness. If these values match your personality, work ethic, and personal goals, we encourage you to visit our primer to learn more. Open source is our culture, our way of life, our story, and what makes us truly unique.
Avoid the confidence gap; you do not have to match all the listed requirements exactly to apply. Our hiring process is described in more detail in our hiring handbook.
Work remotely from anywhere in the world. Curious to see what that looks like? Check out our remote manifesto.
Top 10 reasons to work for GitLab:
1. Work with helpful, kind, motivated, and talented people.
2. Work remote so you have no commute and are free to travel and move.
3. Have flexible work hours so you are there for other people and free to plan the day how you like.
4. Everyone works remote, but you don't feel remote. We don't have a head office, so you're not in a satellite office.
5. Work on open source software so you can interact with a large community and can show your work.
6. Work on a product you use every day: we drink our own wine.
7. Work on a product used by lots of people that care about what you do.
8. As a company we contribute more than we take, most of our work is released as the open source GitLab CE.
9. Focused on results, not on long hours, so that you can have a life and don't burn out.
10. Open internal processes: know what you're getting in to and be assured we're thoughtful and effective.