Hi there! This guide was created for experienced developers who would like to join the Decred team. We are always looking for skilled people. Since we are a decentralized and open source project, there is no hiring manager or HR person to help you get started. This guide will hopefully fill that void.
Before we get started, did you already read this blog post?
You are warmly welcome.
Get hired as a developer
We are a decentralized and open source project. There are no interviews or boring code tests. Instead, we ask you to contribute directly and engage with the community. Clear communication and independent problem solving skills are essential in this process. Let’s see how this works:
Here you can talk to our developers about what you would like to work on. In this part of the process it is essential to communicate clearly. Communication with current developers helps to avoid duplication of effort. Also, if the lead developers approve your plan for work, you can be more confident in being paid for that work (as long as it matches our internal standards).
While you are writing code, keep in touch with the team and update them about your progress. When your first Pull Request has been submitted, it will get reviewed by current team members. Use their feedback to improve your next PR. Once you are consistently merging code, you will likely be asked to become a contractor. You will be offered a contract and be allowed to bill for your current and past work.
The average trial period is one month in most ordinary companies. With Decred it can be much shorter. It depends on the issues you are working on, the quality of your code, and on your communication with the team. While we aim to be as inclusive as possible, do understand that we have to maintain internal standards for our work. This means not all interested parties will be asked to become contractors.
Contractors invoice their hours each month. You keep track of the amount of hours that you’ve productively worked on a specific issue and you collect all the issues that you’ve worked on for that month. At the start of next month, you create an invoice which contains your PRs and the amount of hours you spent coding for Decred. There is a template for this.
As mentioned in the blog post, all contractors are paid in Decred (DCR) which can be converted to the currency of your choice at your discretion. The rate is $30+ per hour, depending on the type of contribution to the project and the living costs in your area.
A note on your learning curve
Prospective contractors should be able to complete the steps listed above with minimal assistance from existing contractors. Of course your learning process will speed up if you ask questions that allow our team members to give you a more detailed understanding. Questions are fine, we just cannot have people who are slowing us down (rather than helping us move faster). The following questions are examples of interactions we would like to avoid:
- How to get/compile/run the code? (All repositories have instructions. Aspiring contractors must be able to follow these steps to get the binaries running. Also, the errors encountered while setting up the development environment are usually self-explanatory, so any professional software developer should be able to figure out how to solve these issues).
- What can I work on? (You’re supposed to look at existing issues or find new features that you would like to work on. An understanding of the underlying code and it’s mechanisms is essential).
- How long does it take for a ticket to vote? (If you want to be a successful contractor on the development side of things, this should be a very easyquestion to answer by reading the code — never mind the fact that this particular question is also extensively answered on Reddit).
- How are tickets selected to vote? (This question is slightly harder than the previous one, as there is no single constant that defines this behavior. Still, you should be able to get a feel for the general code just by following what happens during startup, when a new block is connected, or when a specific action is attempted).
Examples of questions that are encouraged:
- Can I work on issue X? (To check if anyone is already working on a solution or if the issue became deprecated due to changes).
- My plan to solve issue X is to do Z. Would that be a reasonable strategy? (Especially if issue X is complicated or if solution Z will touch an important part of the codebase).
- I’ve had issue Y while using dcrd/ dcrwallet/ decrediton/ whatever. I’ve already tried A/ B/ C, but it’s still there. Has anyone else seen that issue? (Confirming that something is an issue before you start any work).
Note that we’re telling you all this from our best intentions. We are looking to expand our project to a global level, so we sincerely hope that you will be hired along the way. Getting started is a learning curve, even for people who have already worked with open source blockchain projects.
Development groups and corporate contractors
To date, there have been 7 corporate contractors for Decred. We are interested in seeing more corporate contractors, for multiple reasons. Nevertheless, each developer is expected to complete the steps listed above, so we have direct contact with the people who write the code. We can coordinate the process of getting you and your company on board in the #recruitment channel.
Get in touch with us
Feel free to introduce yourself! We like self-starters, so definitely do get in touch. You can reach us via https://decred.org/community
Great to see that the interest in Decred is growing!
Writing about digital currencies & blockchain governance.