Backend Developer, CI/CD
CI/CD Backend Developers are primarily tasked with improving the Continuous Integration (CI) and Continuous Deployment (CD) functionality in GitLab. Engineers should be willing to learn Kubernetes and Container Technology. CI/CD Engineers should always have three goals in mind:
1. Provide value to the user and communicate such with product managers,
2. Introduce features that work at scale and in untrusting environments,
3. Always focus on defining and shipping [the Minimal Viable Change](https://about.gitlab.com/handbook/product/#the-minimally-viable-change).
We, as a team, cover end-to-end integration of CI/CD in GitLab, with components being written in Rails and Go.
We work on a scale of processing a few million of CI/CD jobs on GitLab.com monthly.
CI/CD engineering is interlaced with a number of teams across GitLab.
We build new features by following our [direction](https://about.gitlab.com/direction/#ci--cd).
Currently, we focus on providing a deep integration of Kubernetes with GitLab:
1. by automating application testing and deployment through Auto DevOps,
1. by managing GitLab Runners on top of Kubernetes,
1. by working with other teams that provide facilities to monitor all running applications,
1. in the future implement A-B testing, feature flags, etc.
Additionally, we also focus on improving the efficiency, performance, and scalability of all aspects of CI/CD:
1. Improve performance of developer workflows, e.g. faster CI testing, by improving parallelization,
1. Improve performance of implementation, ex.:by allowing us to run 10-100x more in one year,
1. Identify and add features needed by us, ex.:to allow us to test more reliable and ship faster.
Being part of the CI/CD team, you have a unique opportunity to use bleeding edge technologies, such as Kubernetes and Docker, and work on Ruby and Go projects. Not only will you work on features that deliver value for hundreds of thousands of organizations around the world, but you will also face massive scale issues with running a CI/CD system.
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.
Work remotely from anywhere in the world. Curious to see what that looks like? Check out our remote manifesto.
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:
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.
- Develop CI/CD features from proposal to polished end result, by being able to reason about the features with Product Managers, and be able to work freely in Rails or Go,
- Support and collaborate with our Support Engineers in getting to the bottom of user-reported issues and come up with robust solutions.
- Manage and review code contributed by the rest of the community and work with them to get it ready for production.
- Create and maintain documentation around features and configuration to save our users time.
- Take initiative in improving the software in small or large ways to address pain points in your own experience as a developer.
- Keep code easy to maintain and easy for others to contribute to.
CI/CD Backend Developers Requirements
- Go developer with a lot of Kubernetes production experience is a plus
- You have worked on a production-level Ruby application, preferably using Rails. (This is a strict requirement)
- You can reason about software, algorithms, and performance from a high level
- You are passionate about open source
- You know how to write your own Ruby gem using TDD techniques
- Strong written communication skills
- Experience with Docker, Nginx, Go, and Linux system administration a plus
- Experience with online community development a plus
- Self-motivated and have strong organizational skills
- You share our values, and work in accordance with those values.
- A technical interview is part of the hiring process for this position.
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. A technical interview is part of the process
Selected candidates will be invited to schedule a 30min screening call with our Global Recruiters
Next, candidates will be invited to schedule a 1 hour interview with a CI/CD Engineer or Lead
Next, depending on your level of experience:
Intermediate-level will then be invited to schedule a 1 hour technical interview with the CI/CD Lead
Senior and Staff candidates will then be invited to schedule a 2 hour product and technical discussion with the CI/CD Lead and Product Manager
Next, candidates may be invited to schedule an interview with either an Engineer or Product Manager
Candidates will be invited to schedule a interview with our VP of Engineering
Finally, candidates may be invited to interview with our CEO
Successful candidates will subsequently be made an offer via email
Additional details about our process can be found on our hiring page.
Please view the compensation range for this role at the bottom of the position description.