EPF is a program for aspiring developers dedicated to work on Ethereum core protocol. The core of the cohort is a group of selected participants working full time, however, the whole program an open, public and permissionless. Anyone can participate by joining our regular calls, Discord channel and submitting regular updates.
EPF starts by learning about the core protocol. Visit the EPF Wiki to get started immersing yourself in the various Ethereum protocol topics. Contribute to the wiki to cover gaps in content you find interesting and add any materials you discover yourself.
If you have the necessary skills and feel confident in your software engineering ability and Ethereum knowledge to start contributing, you can start by exploring Good First Issues across clients and other core projects.
Based on your learning experience about the protocol, identify missing pieces and projects to contribute. Mentors have suggested various projects you can work on. Take some time to explore them, learn about the areas of the protocol they touch and build your context. You can propose your own project as well, but make sure it's valuable to current core protocol efforts.
During the first month, write your own project proposal, including the specification, for the project you would like to work on for the duration of the program. Your project does not need to be complete but you are expected to make significant progress at the end of the program. Based on the project scope, consider teaming up with other fellows.
Join the Ethereum R&D Discord. Use the #protocol-fellowship channel for general discussion but use the appropriate channels for conversations regarding specific topics, especially if you are seeking assistance or feedback from a mentor. Please keep this discussion relevant to what you are working on. Our intention is to keep these channels open, but if there is a lot of noise, restrictions may be added. You can also use the Study Group discord to discuss learning materials and contributions to the wiki.
We use Discord because that's where the core community is the most active but we are aware that it's proprietary and doesn't respect user privacy. Consider using alternative FOSS clients like Dissent or WebCord. For enhancing the regular client, check BetterDiscord project.
Weekly updates help us, mentors and other contributors to see how you are progressing in your project. Making an update each week will not only keep you accountable to your project, but it will also track your ability to do the work. Additionally, weekly updates help you practice technical writing, explaining your ideas to others through written posts, which is one of the primary ways that information about Ethereum is spread. Remember that our goal is to help you find placement with a client team, research team, or help you to become a funded independent contributor.
[!NOTE] How to make weekly updates
- Follow the guidelines in the Repo Guide
- Post your update or a link to your update in the Development Updates
- Link your update in the weekly update thread in #protocol-fellowship
Mentors from client teams who proposed projects are available to assist with the work project. Mentors are NOT here to teach you how to do things, tell you what to do or hold you accountable to your project. They can unlock roadblocks, give feedback on your progress, or help point you in the right direction if you are stuck.
[!WARNING] Please be respectful of mentors’ time. Try to figure it out on your own first. If asking for help is necessary, be concise and direct.
How to interact with mentors
- Reach out to cohort organizers to ask about mentor's availability and share what you need
- Only approach mentors after you have done significant research and at least basic work on the project
- We can connect your with a mentor directly or point you to the right place:
- Ask in a public client teams chat, like their Discord server
- You can ask a question in the #protocol-fellowship channel and tag them
- Ask a specific question about the topic you are working on in the appropriate channel
- If an ongoing conversation is necessary, ask the mentor for a direct message contact. Consider setting up a regular call if they are available
- Add a comment in the Office Hours issue in the GitHub repo for the upcoming meeting outlining the problem you are having or the discussion you would like to happen
There will be 2 meetings every week. One will be a weekly stand-up meeting, where you can discuss your progress with other participants. The second is the Office Hours meeting, where mentors will be present to discuss the topics that have been raised in the GitHub issue for that week. Both of these meetings are open to all participants.