Hi there! This guide was created for experienced developers who would like to join the Decred team. We are always looking for skilled people.
Decred is a decentralized project, so there is no hiring manager or HR person to help you get started. This guide will hopefully fill that void.
We are specifically looking for Go / Golang developers, but we have a ton of work in other areas of development as well. If you can find a relevant project to work on, 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:
Join the Decred chats on Matrix, Slack, or Discord. These chat platforms are bridged, so pick your favorite (most developers are on Matrix). Consider to join #recruiting to introduce yourself to the community.
Next, you should join #dev to talk about what you would like to work on. In this part of the process it is essential to communicate clearly with current developers to avoid duplication of effort. Also, if the lead developers approve your planned 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 and 3 existing contractors can vouch for you, you will likely be asked to join 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.
The average trial period is one month in most ordinary companies. With Decred it can be shorter or longer, depending on the issues you are working on, the quality of your code, and on your communication with the team. If you get contractor clearance, you may invoice for current and past work.
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 special platform for invoices.
That’s all there is to it. Simple, right?!
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 work with people who slow us down (rather than help us move faster). 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 easy question 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).
In general, it is wise to do your own research before you ask any questions. The answer may be obvious once you look into it. Last but not least: be considerate when you ask questions that challenge the status quo, unless you are willing to defend yourself in the Decred fight club!
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.
Bug Bounty Program
If you want to start directly, the bounty program might be an option:
Decred Bug Bounty
The Decred community welcomes security researchers and bug bounty hunters to find security vulnerabilities in its…
As mentioned in the original blog post, independent contractors are paid in Decred’s digital currency (DCR) which can be converted to the currency of your choice at your discretion. Your salary will be determined based on merit and on your contribution to the project.
Alternatively, you can opt to work with corporate contractors as a one of their employees. This type of structure has pros (such as coaching by mentors and the ability to receive your salary in fiat currency) and cons. It will depend on your personal situation whether this is an option for you.
Development groups as 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.
If you are part of a developer group, we can coordinate the process of getting you and your company on board in the #recruiting channel.
Get in touch with us
Feel free to introduce yourself. We like self-starters, so definitely do get in touch. Most chat platforms are bridged — pick your favorite!
Decred - Join our community!
Decred is an autonomous digital currency. With a hybrid consensus system, it is built to be a decentralized…
Great to see that the interest in Decred is growing. 🚀