Eng Onboarding
Welcome to XMTP Engineering!
Checklist
- Read the XMTP Handbook.
- Add the Team Calendar to your Google Calendar.
- Read the XMTP Engineering Handbook.
- Ask your manager to make sure you've been added to the following groups:
- @engineering on the xmtp Github organization.
- @engineering on the xmtp-labs Github organization.
- @engineering on Slack.
- eng@xmtp.com on Google Group
- Update your Github notifications for
xmtpandxmtp-labsorganizations so that they send to your@xmtp.comemail address. - Ship your first PR by adding something to this Onboarding doc or the Handbook.
Reading list
Here are some resources to get acquainted with the technology underpinning XMTP.
Litepaper
- Read the XMTP Litepaper and browse through the community forum
Roadmap
- Check out the XMTP Roadmap board for a high-level view of our progress and goals.
Waku
The XMTP testnet uses Waku as both part of the client SDK and to provide network services.
- Read the Waku 2 specs to understand the current status of the project, and what functionality is available (and not available) in a Waku node. Pay particular attention the specifications prefixed with WAKU2.
- Read the Waku Connect docs, which explain proper usage of the JS-SDK
- Read the Status Waku Usage spec to see an alternative, more mature, implementation of Waku used to power the Status chat app
- Read Martin's documentation regarding XMTP's current experimentation with Waku
- Read Matt's higher level summary of how we intend to add value on top of Waku
LibP2P
Waku is built on LibP2P, a suite of technologies built by IPFS for distributed communication. LibP2P provides the core libraries that allow for peer discovery, stream multiplexing, PubSub, and connection management.
XMTP JS SDK
- Check out the README for our SDK to see the current capabilities
- Check out the example chat app, for an example of how the SDK can be used in a real application
- Check out the infrastructure repo to see how we are currently hosting our Waku nodes
- Check out the load tester application to see another example of how the SDK can be used on the backend