As you probably know, I’m an active opensource contributor. I work mostly on my own projects but also try to contribute to other projects. Some projects I work on are paid so, I am making some money out of it. However, the amount of money I make is not big at all: somewhere in the lines of $1000-2000 a year. Basically pocket money.
Instead of spending it, I’ve decided to invest it in my own projects. Why? Because I have a lot of projects that I would like to keep alive and I would also like to possibly build a network of distributed developers I can call when a paid project happens to show up.
Here are the basic rules:
- I label Issues with bounties, say
- If you want to solve it, ping me right there in the Github Issue (first come, first served). DO NOT start working on an Issue if it’s not assigned to you. If you provide an unsolicited PR, I might accept it and pay you. However, if the Issue is already assigned to someone, it’s their cash, not yours;
- I’ll assign the Issue to you and give you 10 days to fix it: your PR needs to be merged in that period of time! I’ll calculate it based on CET (Central European Timezone);
- If the 10 days pass and your solution is not merged, I might take the Issue away and give it to someone else, if someone asks for it;
- As soon as the PR is merged and the Issue is closed, I’ll send you the exact specified amount of money via PayPal. If you are a fan of cryptocurrencies (I’m not), we can also work via zold.io. Ideally, I’d like to send the cash right-away but, just in case I’ll have many contributors, or we have a big Timezone difference, let’s agree on a 1-day possible offset;
- I’m afraid you’ll have to deal with any commission. I’ll send the exact amount specified in the ticket, in USD.
How do you know I’ll deliver the money? Well… you don’t. I can only promise you I will. And if I don’t, you can shame me publicly right there, on Github.
- We are not going to discuss estimations. How much time you spend on the ticket is your business. You’ll get exactly the amount specified in the bounty, regardless of how much time you spent working (please, don’t freak out, keep reading);
- My projects usually have strict Code Quality rules: the build will fail if you don’t respect them;
- As a rule of thumb, your PRs should not decrease Code Coverage and should have 3-5 Changed Files (including the tests);
- If the 10 days passed and I take the Issue away from you, you will not be paid, no matter how much time you already spent on it;
- You can (and should!) use Puzzle Driven Development, with one condition: if you solve the task only partially, you have to leave the codebase in a consistent state: build has to pass etc;
- Second rule of thumb, as a consequence of using PDD: if you’re spending more than 30min-1h on a ticket, you’re probably doing something wrong;
- I’ll perform a more or less strict Code Review. Your PR should not break the project’s architecture (obviously). I might also reject your PR if I don’t like its design or if you don’t perform the modifications I asked you to. Rejected PRs are NOT going to be paid.
Why these strict rules? Because we will not have any meetings or Skype calls. We will work in a 100% distributed manner. Naturally, strict discipline has to be enforced. I’m not going to lie, it might be frustrating in the beginning, until you get used to it.
What about estimations? At the moment each Issue will have a fixed price simply because the budget I have for this thing is limited. Nevertheless, I try to give reasonable bounties (I assume you are an experienced developer with the environment already setup). If/when the budget will grow, we’ll be able to discuss more detailed and accurate payment methods.
My projects are mostly Java SE 7 and 8, and Java EE 7, but I also have one in ReactJS and one in Jekyll/Ruby (this blog).
Follow me on Twitter and Github in order to be notified of new bounties! Looking forward to working with you.