Matter Labs has already reached the point where it’s almost impossible for a single person to fully understand all the released and developed projects. At the very best, one can be expected to have full knowledge of their team activities and a high-level understanding of several neighboring teams’ statuses. Often, even this level is not easy to maintain over time.
In such an environment, knowledge sharing is essential to both keep the velocity and make sure that the company is aligned.
Especially during onboarding, the least productive thing the team can do is to leave you alone to figure everything out yourself. Instead, the priority is to enable you to be efficient ASAP.
Whenever you’re feeling stuck, do not hesitate to ask for help. You may ask your team lead who can help with your issue, and they should point you to the right person.
…in any form, really. If you spent some time and effort and found information that might be useful, please share.
If you found some counter-intuitive thing in the code you had to ask about, you add and write a comment there for the next folk who’ll end up there as well.
If you have prepared a PR that will affect many developers in your team, you may share an announcement in Slack with a tl;dr of changes.
If you feel that you have some knowledge the team (or maybe the whole company) would benefit from, you can do a talk.
What we want to avoid, however, is undocumented tribal knowledge. If you have noticed that you hear some non-trivial explanations that cannot be found elsewhere, it would be great if you’ll make sure to document what you have learned. Also, this includes informing the stakeholders: if other team may be interested in the information, you should consider sharing it to wider audience than just your team channel.
This approach results in a lot of knowledge being shared constantly.
If you will try to join every active channel in Slack and will actively monitor every created document, it’ll easily consume all your time and still will be overwhelming.
So, filter what’s relevant to you. Join a few channels that are either relevant or seem to be interesting, and stick to them until it won’t be sufficient.
Choose which calls you have to join and which recordings you have to watch.
The goal of knowledge sharing is to enable you to be efficient, not to reduce your productivity.
Feedback is also an important concept in Matter Labs, at all stages.
We approach the critiques and feedback with good intent. As in: we aim to improve, not to blame. And “we approach” is also part of the contract: if you receive feedback, we expect you to not discard it, but at the very least understand the other person's position. Getting ‘that’s right’ from them is a good sign that you get it. You might decide not to apply the ideas but if you simply discard them without communicating, you harm the feedback loop and thus our future opportunity for us (not just you, because a person might extrapolate) to improve.