Intro

Matter Labs has many internal and external teams that use different technical stacks. However, the common principle is to only use the technologies you need and keep the list of technologies as small as possible. The reason is that every new technology adds more complexity for each team member (and sometimes, for other teams too). Given that each product we’re working on, be it a compiler, high-load blockchain node, or virtual machine implementation in ZK circuits, is inherently complex already, we want to strip off as much complexity as possible.

If you are working on an existing project, please learn the technical stack that is already used and do not add any new technology without a prior discussion with your team. Even if it’s a small bash/python script — it is still to be supported.

If you’re starting a new project, below you can find an overview of domains the company has experience with. If you want to use something that isn’t listed there, please raise a discussion about whether the team will agree that they can take ownership of the new technical stack.

Programming languages

The commonly used programming languages are:

Databases

Observability

Containerization & orchestration