The development of the core Ethereum protocols is some of the most important and impactful work you can do in the Ethereum ecosystem. Open source protocols and accompanying open source software and clients that implement those protocol rules are the foundation everything else is built upon.
In the coming years the Ethereum protocols will be going through the most significant updates and upgrades since genesis. We need 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 "Core Developer Apprenticeship Program" is a trial program designed to onboard developers to the process through which the protocol development happens. It is an opportunity to dive deep into the protocol and learn while also working closely with the core development community.
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.
Core development requires you to both 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.
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.
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 solid technical foundation. Things like experience with software development, a computer science or math background, or being able to read and very loosely understand the Ethereum yellow paper. You should be confident in your ability to learn and understand complex technical things.
You don't have to be a seasoned software engineer. But almost everyone who is successful at core development has some ability to use code to validate their ideas.
This is probably the most important one. You should have 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.
The program will formally run for four months.
The program will take applicants over a period of two weeks.
Selected applicants will be paired up into teams of two.
We are interested in applicants who wish to work "full time" on a project, but this is not a hard requirement.
The program will be loosely structured as follows.
- Stage 1: Discovery (~1 week)
- Teams will gather a high level understanding of a broad set of problems in the ecosystem that are of interest to them. We will provide a base list of problems, but teams are encouraged to look beyond this list as well.
- Deliverable: At the end of this stage, teams will produce a write-up of the problems they explored and what they learned about them (high level)
- Stage 2: Deep Dive (~1 week)
- Teams will dive deep into one or more of the problems they identified in stage one. Their goal is to both aggregate prior work and information, as well as gain as deep an understanding as possible. Identifying and understanding design trade-offs. Understanding the reasons behind design choices.
- Deliverable: A comprehensive and well organized write up of the problem and proposed solution.
- Stage 3: Deep Work (all remaining time)
- Teams will choose what they wish to work on, what their goals are, and will execute their plan.
- Deliverable: Teams are expected to publish weekly development updates as well as a comprehensive "final" update at the natural conclusion of their work.
During this entire process teams will have access to the core developer community for things like answering questions and getting feedback on ideas. Applicants should not expect the core developers to actively guide them.
A common weekly "stand up" meeting will be held for all teams during which they will go over 1) what they've been working on, 2) what they are working on next and 3) anything that is blocking their work.
The program is slated to run from mid June 2021 through mid September 2021.
Our goal is to strike a balance between fair compensation and the opportunity to get paid to learn. We will work with individual applicants to determine a "stipend" amount which will allow you to focus your effort on this program.
Applications will be accepted from May 10th, 2021 through May 31st, 2021. We will announce which applicants were accepted to the program by June 14th.
Applications should include:
- Your name
- Your contact information
- A picture of your favorite cute animal
- Link to your github account if you have one.
- A brief cover letter explaining who you are and why you are applying.
- Relevant work experience and expertise. (full resume is not required)
- Any specific problems you are interested in working on or general areas of the protocol you are most interested in.
- If there is another applicant that you wish to be teamed up with, who that is.
Applicants should submit their application in PDF format to [email protected]
The program is being funded by the Ethereum Foundation and run by Piper Merriam who works for the Ethereum Foundation. This is a trial program to experiment with how we can onboard more "core developers".
"Core Protocol Development" happens across many disparate teams. The Ethereum Foundation doesn't control this process, nor does it wish to. The program is simply one member of the Ethereum Foundation (Piper Merriam) trying out an idea to see if it works.