Job Description
Summary
We are looking for a versatile engineer to join our Developer Infrastructure team at Ava Labs. The team enables the rest of Platform Engineering to produce better code, faster, by supporting CI/CD pipelines, frictionless creation of ad-hoc Avalanche networks, automatic execution of end-to-end tests, chaos engineering, observability, and building frameworks for performance testing and optimization.
The Platform Engineering team, which includes Developer Infrastructure, develops and supports the core components of the Avalanche blockchain network, including the consensus engine(s), the P-chain – which enables multiple web3 virtual machines –, the virtual machines themselves, and the interconnection facilities that allow the many virtual machines to work as one.
WHAT YOU WILL DO
- Support and develop a CI/CD pipeline (currently based on Github Actions) that you will transform into a comprehensive and fast guarantee of code quality, using unit tests, end-to-end tests, and performance tests.
- Create systems that stand-up networks of Avalanche nodes, data nodes, monitoring infrastructure; on-demand and with ad-hoc configurations, on multiple computing substrates (e.g, as processes on a laptop or globally distributed on multiple Kubernetes clusters)
- Create systems to manage several, or perhaps many, ad-hoc Avalanche networks, many of which may be ephemeral.
- Build an observability solution that collects data from those diverse environments, and is able to compare coherently across runs/versions to reveal regressions and highlight improvements.
- Evolve observability so that it can be used to identify specific bottlenecks and drive strategy focus for the larger team, e.g, selectively collect traces and analyze them with varying degrees of automation.
- Fuzz code, and network behavior (chaos engineering), to continually increase confidence on the correctness and resilience of our consensus algorithms and p2p protocols.
WHAT MAKES YOU A GOOD FIT
- You are primarily a software engineer with solid computer science foundations.
- You care about reliability and trustworthiness of the software you and others develop, and are motivated to invest in the tools and capabilities needed to achieve them. You find purpose in providing these capabilities to others, by building platforms that multiply their efforts.
- You have an intuition for when code is not sufficiently testable or maintainable.
- You tend to find that the boundaries between front- and back-end, application and infrastructure, are fluid.
- You create and find projects that provide value. You don’t need to wait for someone to tell you what to work on. You know there are things you don’t know, so you listen, and understand, but this does not stop you from proposing and prototyping (possibly dumb) ideas. We hire awesome engineers to tell us what we should build.
- You do not think you are always in possession of the truth. You thrive in an environment rich in constraints in addition to opportunities.
- You enjoy working with others, learning from others, and developing others.
- You are curious about (or fully invested on!) web3 and blockchains, and the value that distributed ledgers might bring to all sorts of economic activity.
WHAT YOU WILL BRING
- 10+ years of experience programming computers
- 2+ years of experience with GoLang and/or Rust.
- 4+ year of experience working with others on a large codebase.
- Experience with git workflows, including building and maintaining CI/CD pipelines with GitHub Actions (preferred), Jenkins, Travis CI, Circle CI.
- Have written end-to-end tests for sizable systems.
- Experience with Infrastructure-as-code.
- Experience with large-scale observability.
- Experience using data to drive performance optimization.
- Experience with any flavor of Unix system programming, and/or large-scale orchestration frameworks like Kubernetes, and containers.
Salary Range: $214,990 to $228,427
Skills
- Communications Skills
- Development
- React
- Rust
- Software Engineering
- Team Collaboration