Systems Development Engineer
A systems development engineer/ production engineer is a developer with who thinks deeply about systems and how they behave in the wild. Whether it be networking, or the Linux kernel, or even a specific interest in scaling, algorithms, or distributed systems.
It could also be seen as a systems engineer who aims to code themselves out of a job by automating all the things, learning to leverage great development practices like TDD or continuous integration (to start with).
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.
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.
- Be on a PagerDuty rotation to respond to GitLab.com availability incidents and Provide support for service engineers with customer incidents.
- Use your on-call rotation to prevent pages from ever happening.
- Manage our infrastructure with Chef, Terraform and Kubernetes.
- Make monitoring and alerting alert on symptoms and not on outages.
- Document every action so your learnings turn into repeatable actions and then into automation.
- Improve the deployment process to make it as boring as possible.
- Design, build and maintain core infrastructure pieces that allow GitLab scaling to support hundred of thousands of concurrent users.
- Debug production issues across services and levels of the stack.
- Plan the growth of GitLab's infrastructure.
- Ship every solution into the GitLab-CE and EE package as a default.
- Think about systems - edge cases, failure modes, behaviors, specific implementations.
- Know your way around Linux and the Unix Shell.
- Have an interest in distributed systems and a solid understanding of how modern web stacks are built, and why.
- Know what is the use of config management systems like Chef (the one we use)
- Have strong programming skills - Ruby and/or Go (for operations and infrastructure projects respectively)
- Hold yourself to a high bar when working in production environments.
- Have an urge to collaborate and communicate asynchronously.
- Have an urge to document all the things so you don't need to learn the same thing twice.
- Have a proactive, go-for-it attitude. When you see something broken, you can't help but fix it.
- Have an urge for delivering quickly and iterating fast.
- Share our values, and work in accordance with those values.
- Building a distributed system like Gitaly
- Coding infrastructure automation with Chef
- Improving our Prometheus Monitoring or building new Metrics
- Building the automation to scale out and scaling out our fleet.
- Building chatops bundles for COG to automate ourselves out of a job.
- Helping building and maintaining core GitLab.com infrastructure pieces like GitLab Workhorse
- Helping drive production-ready large-scale features.
- Helping release managers deploy and troubleshoot new versions of GitLab-EE.
- Helping the build team to ship complex pieces of infrastructure in a way that just work out of the box.
- Whatever is on the infrastructure issue tracker and you feel passionate about.
Applicants for this position can expect the hiring process to follow the order below. Please keep in mind that applicants 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.
-Qualified applicants receive a short questionnaire and coding exercise
-The review process for this role can take a little longer than usual but if in doubt, check in with the Global recruiter at any point
-Selected candidates will be invited to schedule a 30min screening call with our Global Recruiters
-Next, candidates will be invited to schedule a first 45 minute behavioral interview with the Infrastructure Lead
-Candidates will then be invited to a technical assignment and a call to review it.
-Candidates will be invited to schedule a second interview with our VP of Engineering
-Finally, candidates may be asked to attend a 50 minute interview with our CEO
-Successful candidates will subsequently be made an offer via email