- You are here:
- Engineering Roles
- Database Engineer
Our database engineer is a hybrid role: part developer, part database expert. You will spend the majority of your time making application changes to improve database performance, availability, and reliability; though you will also spend time working on the database infrastructure that powers GitLab.com. Infrastructure work involves (but is not limited to) tasks such as making configuration changes, adjusting monitoring, and upgrading the database.
- 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
- 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
- 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
- You share our values
- 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.
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 her/his job title on our team page.
- 30 minute screening call with one of our recruiters
- 45 minute interview with our Senior Developer
- 45 minute interview with our Staff Production Engineer
- 45 minute interview with our VP of Engineering
As always, the interviews and screening call will be conducted via a video call. See more details about our hiring process on the hiring handbook.
Unfortunately GitLab is not hiring at your selected country at this time. Please read our hiring handbook
for more details.
Please note that if we are actively hiring for a position, you will see it listed on our jobs page, where all of our current openings are advertised. To apply, please click on the name of the role you are interested in, which will take you to our applicant tracking system (ATS), Greenhouse.
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.
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.
Top 10 reasons to work for GitLab:
- Work with helpful, kind, motivated, and talented people.
- Work remote so you have no commute and are free to travel and move.
- Have flexible work hours so you are there for other people and free to plan the day how you like.
- Everyone works remote, but you don't feel remote. We don't have a head office, so you're not in a satellite office.
- Work on open source software so you can interact with a large community and can show your work.
- Work on a product you use every day: we drink our own wine.
- Work on a product used by lots of people that care about what you do.
- As a company we contribute more than we take, most of our work is released as the open source GitLab CE.
- Focused on results, not on long hours, so that you can have a life and don't burn out.
- Open internal processes: know what you're getting in to and be assured we're thoughtful and effective.
See our culture page for more!
Work remotely from anywhere in the world. Curious to see what that looks like? Check out our remote manifesto.