What are the responsibilities and job description for the DevOps Software Engineer position at DFINITY?
DFINITY is reimagining the Internet as a public network that hosts secure software and services. The Internet Computer is a new technology stack that is fast and scales to billions of users around the world, and supports a new kind of autonomous software that promises to reverse Big Tech’s monopolization of the internet. DFINITY was founded in 2016 by Dominic Williams and is backed by top-tier institutions including Polychain Capital and Andreessen Horowitz.
As our engineering teams and code base continue to grow, so does the need to increase the efficiency of our development environment and speed-up our CI/CD pipelines. As a member of the Internal Developer Experience (IDX) team, you will join our effort to provide a world-class development environment to our colleagues as we build the Internet Computer. This is a unique opportunity to work across teams to understand their needs and impact the quality and efficiency of software delivery.
Responsibilities
- Collaborate with engineers from different teams to understand their needs and to enable them to build their code using CI/CD infrastructure.
- Extend and support our CI/CD system that processes tens of thousands of jobs per week
- Collect metrics that provide insights into where we lose time and where we can further optimize our pipelines
- Simplify and speed up the user experience by reducing complexity and automating tedious tasks
- Integrate our CI system with ticket management and bug tracking systems
- Evaluate and integrate new technologies that improve efficiency and allow us to scale our infrastructure as the team our codebase grows
- Evolve the development environment that enables 100 engineers to develop software with a variety of languages, related toolchains and IDEs.
- Collect metrics that enable us to understand where most of the development time is lost and to find ways to increase efficiency.
- Seek a balance between streamlining tool-usage and empowering engineers to use the tool of their choice
- Offload compute-heavy tasks to our data centers
- Provide support for the systems and tools maintained by the team. Learn from support requests so we can improve our system and services. Improve our documentation to empower engineers to solve future problems independently
Requirements
- Strong problem solving and software engineering skills.
- Experience designing solutions that optimize developer experience, effort, maintainability and scalability
- Experience deploying and operating systems that run 24x7x365, including monitoring, alarming, and tooling required to keep them healthy.
- Preferably you have built reliable systems with tools that we use on a daily basis:
- CI/CD: GitLab, GitHub
- Metrics, monitoring and visualization: Elastic Stack, Prometheus and Grafana
- OS and containerization: Linux and Docker
- Programming languages: Python, Bash and an interest in Rust
- A Bachelor's degree in Computer Science, or a closely related field. The unique challenges at DFINITY have attracted many engineers with advanced degrees, however your practical experience is more important to us than your educational background.
What kind of engineers are we looking for?
- You should demonstrate a passion for building quality software and systems
- We are looking for team players who enjoy working alongside other brilliant people to come up with the best solutions together.
- You seek to understand the impact of your solution on the customer, in our case our engineering teams, and want to continuously optimize the experience.
All qualified applicants will receive consideration for employment without regard to race, color, religion, gender, gender identity or expression, sexual orientation, national origin, genetics, disability, age, or veteran status.