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 in the history of the chain. 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 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 others on the same learning trajectory as well as the core development community.
This program will not teach or focus in any way on smart contract development or creating blockchain applications.
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. 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. There will be near-zero "teaching".
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 implement and 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. Contributing to the public good.
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 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.
The program will formally run for four months.
The program will take applicants over a period of one week, starting Monday September 6th and closing Monday September 13th.
Applicant selection will occur in private. Selected candidates will be announced by Monday September 20th.
We are interested in applicants who wish to work "full time" on a project, but this is not a hard requirement. Anything much less than "half time" is likely insufficient.
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 late September 2021 through roughly February 2022.
Our goal is to provide an opportunity for you 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. Some candidates will be selected for funding at the start of the program. Other candidates who choose to participate independent of funding may be extended the option of receiving funding as the program progresses.
The program will take applicants over a period of one week, starting Monday September 6th and closing Monday September 13th.
Applications will be accepted from September 6th, 2021 through September 13th, 2021. We will announce which applicants were accepted to the program by September 20th.
Applications should be submitted as single PDF which includes:
- Your name
- Your contact information
- A picture of your favorite cute animal
- Link to your github account if you have one.
- A 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.
Applicants should submit their application to [email protected] with the subject line: "CDAP Application - Cohort One - FIRST AND LAST NAME"
The program is being supported funded by the Ethereum Foundation and run by Piper Merriam who works for the Ethereum Foundation.