Protocol Labs is a network of over 450 open-source teams, projects, and organizations. These teams are focused on researching, developing, and deploying network protocols with a common goal to drive breakthroughs in computing to push humanity forward. The Protocol Labs Network is fully decentralized and comprises many projects building on top of network native technologies, such as IPFS, IPLD, Filecoin, and libp2p.
If you are interested in being a part of the most innovative decentralized network in the world, we would love to hear from you!
About Filecoin Virtual Machine (FVM):
The Filecoin Virtual Machine (FVM) project (https://fvm.filecoin.io/) seeks an extraordinary Sr. Software Engineer. FVM launched on March 14 2023, bringing user-programmability to the Filecoin network. FVM currently supports EVM smart contracts and works seamlessly with Ethereum tooling. Since then, there is already a thriving ecosystem of storage-oriented dapps, DeFi, bridges and more. This is just the beginning! At the moment the team is laser-focused on handling the new scale and unlocking new applications. Next milestones will enable user-defined WASM actors, support for new runtimes and much more. You will play a key role in all of that.
We are looking for people who understand the core principles of operating systems, untrusted code execution, resource management, and distributed systems. You will understand, implement and improve a best-in-class blockchain VM built on-top-of WebAssembly, help us design and build open-source code, and ensure that the system is easy to get started with for smart contract developers. You will also help design and implement native FVM interoperability with other chains, as well as developer tooling and SDKs to make the FVM developer journey highly productive and enjoyable.
What is Engineering and Research at Protocol Labs:
At Protocol Labs, we translate theory into reality. We take on the most challenging problems that block the adoption of planetary-scale decentralized technologies. Our approach is both pragmatic, rigorous, and must have well-defined, scoped, and measurable milestones. We also interface with many other teams and open source projects, ensuring that we take the best path to get technology into the hands of most people, whether we have invented it or not.
Our philosophy means you will be able to execute in a rich and fertile ground for ideation and prototyping, with the launchpad for shipping those new ideas into reality, testing them in real-world scenarios, and creating maximum impact for the research performed.
Bringing programmabile execution to blockchains is the next evolution of distributed systems. When users can both request and deploy arbitrary programs in a verifiable way, they will be able to use new paradigms with the efficiency and reliability of a globally distributed network. Like Filecoin, we will stand on the shoulders of the giants before us and extend the best-in-class tools to new areas. But we cannot merely be great technically; success will hinge on marrying cutting-edge research with the table stakes of a clean API, well-designed SDK, and intelligent contracts that meet users where they are. Our success will transform the way entire classes of problems are solved. We would love you to be a part of our vision.
As an FVM Software Engineer at Protocol Labs you will:
- Develop and ship the first smart contract implementation that operates on the Filecoin chain 🚀
- Define compatibility with and support for existing smart contract execution tool chains and implementations such as EVM and Solidity
- Collaborate with other Filecoin engineering and ecosystem teams, to ensure integration with existing systems as well as contribute to other projects to support FVM
- Create or maintain software libraries and programs depended on by other systems and applications
- Partner with peer developer advocates to support the developer community when complex issues arise
- Quantify performance, security, and other properties of existing and proposed systems; suggest improvements based on the data
- Partner with academia and the broader community in exploring new and out-of-the-box approaches to designing and implementing next-generation decentralized systems
- Work in a fully remote and asynchronous team
You may be a fit for this role if you have:
- BSc degree in Computer Science, Electrical & Computer Engineering, or related field, or equivalent practical experience (though a “traditional” education or degree is NOT required)
- Programming experience and proficiency with Rust is ideal, but programming experience in one or more of the following is required: Go, C, C++, Rust, Java, or similar.
- Experience building a low-level untrusted code environment – like browser or WASM contexts – where you have to manage & account for resource usage.
- Ability to analyze, criticize, and improve the design of complex computation systems.
- Excellent written and verbal communication skills.
- Pragmatic “get it done” attitude and the ability to provide and receive constructive feedback.
Bonus Points:
- You have a record of demonstrating state-of-the-art innovation in distributed systems and/or process virtual machines (e.g. Wasmtime, v8, JVM) with a proven publication record or project history. (Potentially including but not limited to distributed data structures, novel network architectures and protocols, consensus protocols, peer-to-peer connectivity, distributed execution, distributed file systems, network optimization, graph traversals, and dynamic network analysis.)
- Experience contributing to research/development communities and/or efforts, including publishing conference papers.
- You’re comfortable digging through new academic literature like IETF RFCs, W3C specs, etc. for inspiration while problem-solving.
- You believe that you don’t really understand something until you can explain it to a six-year-old, and your experience mentoring or writing technical explainers or blog posts demonstrates that you enjoy testing your understanding against this metric.
- You’ve demonstrated technical project management skills and the ability to design and execute on engineering and/or research agendas.
- You have experience setting up and managing research collaborations or contractors.
- Proven success of influencing and developing productive working relationships with diverse technical teams and stakeholders
- Strong technical and problem solving skills
- Excellent written and verbal communication skills