Senior Software Engineer, Filecoin Virtual Machine
Remote job description
About Protocol Labs
Protocol Labs drives breakthroughs in computing to push humanity forward. Protocol Labs is a product-development lab, but behind the protocols and tools we build, behind the research and implementations, are passionate people, teammates, and community members. Most teams in the Protocol Labs Network are fully distributed and work remotely around the world. Engineers, researchers, and operators work in the open to improve the internet ?" humanity's most important technology ?" as we explore new advances at the intersection of many exciting fields (crypto, networks, distributed systems) and cultures (startups, research, open-source, distributed work).
The Filecoin Virtual Machine (FVM) project (https://fvm.filecoin.io/) seeks an extraordinary Sr. Software Engineer to help build the core of FVM: a Rust-based Wasm runtime for untrusted user code inside the Filecoin network. FVM is *THE* most exciting upcoming breakthrough for the Filecoin network, and is still in the accelerating path toward mainnet launch in the next 6 months. You will be a key player in this new upgrade, laying the technical foundation for a new model of trustless and verifiable storage, programmability, and computation.
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.
- 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
#LI-REMOTEWhat's it like to work at Protocol Labs?
Protocol Labs' mission is to improve humanity's most important technology, the Internet. We build protocols, systems, and tools to improve how it works. Today, we are focused on how we store, locate, and move information. Our projects include IPFS, Filecoin, libp2p, and more.
As a distributed team, we hire anywhere in the world, and at various levels of experience (entry, senior, staff). We look for people with unique perspectives and diverse backgrounds.
We have a great benefits package, including parental leave, contributions to your retirement, competitive pay, and unlimited time off. For U.S.-based employees, we also provide platinum-level health, dental, and vision coverage for you and your family.
If you're passionate about the future of computing and a more democratized internet, we want to talk to you.
GDPR for Job Applicants and Candidates
When you apply to a job on this site, the personal data contained in your application will be collected by Protocol Labs, Inc. ("Protocol Labs"), which is located at 427 N Tatnall St #51207, Wilmington, Delaware 19801 and can be contacted by emailing legalrequests[at]protocol.ai. Protocol Labs' data protection team can be contacted via legalrequests[at]protocol.ai. Your personal data will be processed for the purposes of managing Protocol Labs' recruitment related activities, which include setting up and conducting interviews and tests for applicants, evaluating and assessing the results thereto, and as is otherwise needed in the recruitment and hiring processes. Such processing is legally permissible under Art. 6(1)(f) of Regulation (EU) 2016/679 (General Data Protection Regulation) as necessary for the purposes of the legitimate interests pursued by Protocol Labs, which are the solicitation, evaluation, and selection of applicants for employment.
Your personal data will be shared with Greenhouse Software, Inc., a cloud services provider located in the United States of America and engaged by Protocol Labs to help manage its recruitment and hiring process on Protocol Labs' behalf. Accordingly, if you are located outside of the United States, your personal data will be transferred to the United States once you submit it through this site. Because the European Union Commission has determined that United States data privacy laws do not ensure an adequate level of protection for personal data collected from EU data subjects, the transfer will be subject to appropriate additional safeguards.
Your personal data will be retained by Protocol Labs as long as Protocol Labs determines it is necessary to evaluate your application for employment or to assist in the hiring process. Under the GDPR, you have the right to request access to your personal data, to request that your personal data be rectified or erased, and to request that processing of your personal data be restricted. You also have the right to data portability. In addition, you may lodge a complaint with an EU supervisory authority.Summary
Company name: Protocol Labs
Remote job title: Senior Software Engineer, Filecoin Virtual Machine
Job tags: Java, Rust, virtual-machine