Description
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
You will be responsible for implementing our LLVM-based compilers from Solidity, Vyper, and other languages to zkSync EraVM bytecode.
We expect you to independently conduct research in your area of ownership, design, implement, and document solutions.
What You'll Be Doing
- zkSync EraVM back-end migration to the latest version of the ISA
- Back-end optimizations - better selection patterns, better ISA utilization, peephole passes, etc.
- Optimizer tuning - zkSync EraVM is different from a typical LLVM target, so passes like instruction combiner need to be configured, and the pipeline itself has to be tuned
- Front-end optimizations - our front-ends currently produce correct IR, but it lacks attributes and metadata that would make analyses and transformations more efficient
- Debug information and debugger support
- Profiler support
- Binary format development and linker integration - we currently use a custom linker written in Rust and want to migrate to LLVM one day
What We Look For in You
- You are driven by passion, curiosity, and desire to make a meaningful contribution to the world
- Experience with compiler/toolchain development using LLVM framework
- Fluency in C++, at least 3+ years of experience
- Good understanding of computer architecture and ability to work with machine-level representation of a program
- Deep understanding of software engineering best-practices
- Ownership mindset and a track record of successfully accomplished projects
- Fluent written and spoken English
- Knowledge of common algorithms, data structures, and their computational and memory complexities is critical, as well as experience of implementing them from scratch
Working at Matter Labs
At Matter Labs, you have the freedom to work how you want, when you want, and from where you want. All positions are 100% remote (with optional travel to team and/or industry events). We operate in lean and nimble teams, with no time tracking and minimum bureaucracy. We move fast. Only results matter. We will provide you with everything you need to learn, grow, and be productive.
Our results-only environment means anyone who believes in our mission can join us, regardless of background, sexual orientation, race, gender, and age. Both our team and community are made up of people from diverse backgrounds. That's why, out of politeness and respect, we refrain from opinions on politics, religion, or sex at the workplace.
We designed our culture around the tenants of freedom and ownership. This ethos will underpin our positive-sum community as we evolve toward full decentralization.
If this role resonates with you, apply now for prompt feedback.
Read more about working at Matter Labs here.
Important: We are remote-first, operating in the timezones between UTC-5 (Latam and Atlantic Coast) to UTC+7 (South-East Asia). While we’re currently not hiring in the US, we do consider US-based applicants willing to relocate.
Please mention the word **SERENE** and tag RMzQuMTQ1LjE0MS43OA== when applying to show you read the job post completely (#RMzQuMTQ1LjE0MS43OA==). This is a beta feature to avoid spam applicants. Companies can search these words to find applicants that read this and see they're human.