The development of the core Ethereum protocol is some of the most important and impactful work you can do in the Ethereum ecosystem. Open protocols and accompanying free and open-source software and clients that implement those protocol rules are the foundation everything else within the Ethereum ecosystem is built upon.
The Ethereum protocol needs maintenance but also goes through the significant updates and upgrades and there is much to do. Ethereum needs more talented and dedicated people to be part of this process. If you are interested in joining this effort, the doors are open. You just have to walk through them.
The Ethereum Protocol Fellowship (formerly Core Developer Apprentice Program) is a program designed to onboard developers to the process through which protocol development happens. It is an opportunity to dive deep into the protocol while working closely with others on the same learning trajectory as well as the core development community.
[!NOTE] This program will not teach or focus in any way on smart contract development or creating blockchain applications.
Over the course of the 5 month program, EPF participants will receive project support and mentorship as well as a monthly stipend while working on a project of their choosing. Participants can expect
- a weekly call with participants
- selected mentorship with available devs
- weekly AMAs with core developers
- optional in-person meetups
- project documentation guidance
Learn more about EPF and the previous cohort in the fifth cohort recap and intro town hall.
Successful candidates will have most of the following skills. It is ok if you have some weak areas, but you should expect to focus on improving them. While none of these guidelines are hard requirements for applicants, the most successful applicants:
- have a technical foundation
- have strong verbal and written communication skills
- are self-directed and self-motivated
- are able to write code
Core development is deeply technical. You will consistently be required to learn and understand new things. We don't expect you to have a deep understanding of the domain-specific knowledge, but you should have a solid technical foundation. This could be things like experience with software development, a computer science or math background, or ability to read and very loosely understand the Ethereum yellow paper. You should be confident in your ability to learn and understand complex technical things.
Core development requires you to be able to write your ideas down in a manner that is clear and easy to understand. In addition, you will need to be able to discuss your ideas in person and over voice and video calls. The majority of protocol development happens in English.
Core development requires the ability to tackle a problem in a self-directed way. You will have a community of knowledgeable people to support you, but the ultimate responsibility for figuring things out is yours. The program will operate in much the same way. While mentorship is an important part of this program, mentors are there to unlock doors and remove barriers. There will be near-zero "teaching".
You don't have to be a senior software developer. But almost everyone who is successful in core development has some ability to use code to implement, therfore the cohort focuses mainly on software engineers.
This is probably the most important one. You need a strong inherent desire to do this work. Working on open source and open protocols. Building decentralized peer to peer networks. Improving client architecture. Developing and improving low-level EVM mechanics. Contributing to the public good.
You are not expected to have expert-level skills in all of these areas, but you should expect to spend time improving on any weak areas.
Candidate selection will take the following things into account.
- Your application and areas of interest
- Your history of open source contributions
- Your existing contributions to the Ethereum ecosystem
- Relevant prior work and educational experience
We will be prioritizing candidates which have something that we consider a strong signal of both interest and ability.
There are life situations which may result in a capable candidate not being able to easily demonstrate their ability. An example would be a long career in private industry working in a closed-source environment. If this is your situation, you are encouraged to explain your situation and make as compelling a case as possible for why you should be considered.
Applications are opened from TBD.
The program will run for 5 months, from June through mid-November. This gives us the opportunity to organize physical meetups at Ethereum conferences like Devconnect and EthCC.
Timeline of the 5 month program will follow these stages:
- Those selected for EPF6 should spend the month prior getting up to speed on the current state of the art in Ethereum protocol development. A great place for this is epf.wiki and our reading list
- Fellows should also make arrangements to attend EthCC, including securing a visa, if needed
- Initial meeting with individual participants and providing program orientation.
- Initial group session, presenting the introduction to the program and areas of focus.
- Learn about chosen problems and create a write up of a topic of interest based on input from mentors.
- Deep dive into identified areas. Learn and familiarize with previous work and current solutions.
- Connect with chosen mentors and work towards defining a deliverable project.
- Write and submit a project proposal on the selected problem(s), suggested solutions, and a roadmap for working on the issue throughout the program.
- Report presentation to other participants and select mentors to gather final feedback.
- Execute project roadmap to complete deliverables
- Publish weekly development updates.
- Weekly group calls (stand up) with participants and mentors.
- Project wrap up and looking forward to further contributing to the Ethereum ecosystem
- Project showcase to group and mentors
- In-person event at Devconnect in Buenos Aires
During the entire process, participants will have access to mentors and the core developer community for things like answering questions and getting feedback on ideas. Participants should not expect the core developers to actively guide them.
We will meet twice every week during the 5 months of the cohort.
Standup calls provide an opportunity to share your progress and meet other fellows. These calls serve to discuss regular updates, current issues participants are facing, their open questions and comments raised in development updates. Standup calls are dedicated to participants and their discussion, some mentors might show up occasionally. Standups occur weekly every Monday, 15:00 UTC. Use this link to attend.
In addition to the weekly standup calls, we hold Office Hours calls which can be focused on meeting mentors and dicussing specific topics proposed in advance. Mostly, we will hold an AMA with core developers to answer your questions and share their knowledge and experience. Find the upcoming call agenda in Issues. Anybody can propose topics for this call by commenting on its tracking issue. Office Hours are regularly happening on every Wednesday, 15:00 UTC.