Senior Database Engineer (Remote - Americas)

Americas Timezone
Engineering – Development
Full-Time
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.

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.

Responsibilities

    • 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
    • Architecture

Requirements

    • 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

Nice-to-have's

    • Experience with running pgbouncer and/or WAL-E in production.
    • Experience with Go, C, and/or Rust.
    • MySQL experience, since GitLab also supports MySQL.

Example Projects

    • 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
Remote-SLC

About GitLab
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.
There are unfortunately a few countries we are unable to hire in right now, kindly review our Country Hiring page for further info: https://about.gitlab.com/jobs/faq/#country-hiring-guidelines

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.

See our culture page for more!