Compiler Engineer in Test
At Matter Labs, we believe freedom drives progress and prosperity. We don’t see ourselves as a company, but as a team aligned around a single mission: to advance personal freedom for all (see ZK Credo).
To achieve this goal, we’re building zkSync — a credibly neutral, fully open source technology stack and network on top of Ethereum, which is owned and governed by its community. We use advanced cryptography called zero-knowledge proofs to scale Ethereum infinitely without compromising on security or decentralization. With a world-class team, a community of over 1M supporters across Twitter + Discord, and hundreds of millions $ in funding, we have abundant resources to accomplish the mission.
The Product
Previous compilers for smart contracts were usually written from scratch. That meant reinventing the wheel, a poor optimization pipeline, and lack of tools. We aim to fix this and deliver production-quality toolchains and a better development experience to our customers. That’s why we use LLVM, follow LLVM development practices, and upstream our fixes. In particular, we strongly prefer to reuse well-written and decently-tested code.
The Role
Doing even better testing is where you come in. Smart contract compiler bugs can cause our customers to lose currency, so thoughtful and comprehensive testing is essential. Complete testing of a blockchain programming language is impossible, so the ability to plan and prioritise the most important areas to test is crucial. Enjoyment of software testing and bug filing is required.
What You'll Be Doing
- Adapting and/or creating compiler correctness tests
- Maintaining and supplementing testing infrastructure
- Contributing to, and criticizing, test plan(s).
- Requirements collection and documentation criticism.
- Working with developers to decide how each feature is best validated.
- Implementing test cases.
- Identifying and reporting weaknesses in current processes.
- Initial investigation of correctness and performance issues; efficiently isolating, clearly reporting, and diligently tracking bugs