At Decentraland, we’re building a virtual world owned by its users. Our mission is to use software to improve coordination and governance in our society. Decentraland is the best way we know of to learn how to do this, because the process of designing games and virtual worlds together with their community is filled with nuance and compromises – very much like in real world politics. Not surprisingly, not many games are built and designed in the open.

One of the most fundamental aspects of Decentraland is its open-source, open-network foundations. Unlike other “web3 blockchain metaverses” (sorry for the buzzwords), we’re focused on building our product and experience as a public good. The experience of building this virtual world gave us a front-row seat to the early stages of Ethereum-based transparent software systems, security and user experience of cryptocurrency wallets, and the scalability challenges of decentralized applications, both technical and social.

Building open source software is completely aligned with this vision. Every design decision we took tried to avoid the necessity of a single individual, organization or company to run it. Ownership of items, skins, and real estate is kept on the Ethereum and Polygon blockchains, and owners of scenes can freely build experiences for users exploring this world. Public servers for real-time communication are run by community members. When this technical decentralization isn’t useful or practical, the Decentraland Foundation runs centralized services, for example, the server that keeps a calendar of future public events. We favor publicly-available data in those servers, so that they can easily be shut down or transitioned away to another actor, avoiding single-points-of-failure, prioritizing user control of data, and gracefully degrading the end-user experience. The end result we aim for is an ecosystem where actors “can’t be evil”, rather than “won’t be evil”.

Currently, the biggest threat for the long-term survival of the project is the 3D scene interpreter and renderer. The current implementation of this piece of the protocol is too complex and problematic. A few members of the community are joining forces to build alternative implementations of this engine, the piece that coordinates the rendering of the virtual world experience, its networking, and resource management. In order to avoid this situation in the future, a critical aspect of this quest will be communicating and documenting the design decisions we take along the way.

Job Description

We are looking for a full stack engineer who is not only highly skilled and experienced in systems programming, but also with rendering engines and experienced with Rust. As a lead developer, you will be responsible for building a very complex application, in a job that is akin to building a browser.

A strong requirement is excellent communication and writing skills. In this role, you will be responsible for collaborating with a team of engineers and stakeholders to build a cutting-edge 3D application that Decentraland citizens will use to create games and social experiences. The ability to clearly and effectively communicate your ideas and designs is essential, as is a passion for game development and a commitment to delivering high-quality software.

We’re particularly selecting for experience in Rust, Bevy, 3D rendering, distributed systems and systems programming. You must have strong skills in a variety of areas, including:

Of course, familiarity with modern software development practices is a must, including experience with version control systems (such as Git), issue tracking and project management tools, and automated testing and deployment. The candidate should be comfortable working in a team environment, and able to collaborate with other engineers and stakeholders to deliver high-quality software.

If you have these skills and are ready to take on a challenging and rewarding role, we encourage you to join the Protocol Squad and help us build a truly decentralized virtual world, owned and controlled by its users!

Appendix: Why Bevy?

Bevy is one of the three engines we picked to create new implementations for Decentraland. This implementation is a moonshot: an idealistic and forward-looking implementation, based on technologies that are currently immature but hold great promise for the future. This project would prioritize solid fundamentals, extensibility, and the use of modern open-source frameworks.

Some reasons to choose Bevy for this moonshot implementation include:

We hope that, in a number of years, the Bevy implementation can become the default one and replace the closed-source Unity engine in production builds.