---
date: 2021-10-15
modified_at: 2021-10-15
tags: [entrepreneurship]
description: A vision for revolutionizing developer compensation using blockchain and smart contracts, where developers get paid per pull request instead of hourly rates, with payments based on code quality, time spent, and peer reviews in an open-source environment.
---
# How developers could get paid using blockchain and smart contracts

It's hard to find a job because it's a big commitment and the interview process
is an investment. 

In a web 3 environment where everything is open source, this could change.



 * What if meetings were publicly accessible too?
 * What if all issues could be found publicly?

The first couple of weeks a freelancer joins a company there is extra effort
required from the existing team to educate this freelancer before the freelancer
can be productive.

The more hours the freelancer spends the more value he/she brings per hour.

I think there shouldn't be an hourly rate, but freelancers should get paid for
PR's.

What if the reviewer could see the following stats of every PR:

 * Time spent
 * LOC edited
 * Average PR Quality of this freelancer
 * Minutes of attention required of colleagues for questions etc.

With these 4 factors together a price tag can be estimated for the PR by an AI
or a simple formula. Then, the reviewer can up the price tag or lower it, based
on the perceived code quality and the company budget.

When the PR is merged, the freelancer gets paid immediately, in crypto. The
people that helped this freelancer for this PR get paid part of the sum as well.

The problem with this structure is that you have one other person that's
reviewing that can basically decide what a lot of people will earn. But what
does the reviewer earn? What does the product owner earn? And the designer? What
if 2 developers review each other's code? What about meetings? 

The great thing about this structure is that you put the money right at one of
the most important KPI's: codebase improvement. I think this would totally work
for most developers in a company.

Other roles in the company like the senior developer, designer, product owner,
etc can get paid in similar ways. The key ingredients are measuring time of
small chunks of work (PR's) and have the results peer-reviewed by high-rated
colleagues.

The scrum-poker way
Another way to fairly deciding how much someone gets paid, is by doing scrum
poker in a global open network. 

The product owner makes a well defined issue and adds a maximum pay-out for it
and a deadline. Then there is a short "bidding period", in which developers can
have a look at the issue and make an offer. At the end of the bidding period the
product owner can choose a developer, based on how much they charge for the
issue, when they say they will finish it, and their rating. 

The developer then finishes the issue within the deadline (your rating drops
significantly if you don't finish it within the time limit) and then the PR is
created and should be tested and reviewed. 

 * If the testing yields unsatisfactory results, the issue isn't completed and
   the developer should continue with new instructions. Here both the developer
   and the product owner can be given blame, and money should be added
   accordingly.
 * If the reviewing shows unsatisfactory code quality, the issue isn't completed
   and the developer should continue with new instructions, or the reviewer
   fixes the issues quickly. Here the developer and the product owner can be
   given blame, because sometimes the instructions aren't clear enough. Payout
   should be changed accordingly.

The GitHub plugin
What if there were an extension of GitHub (a browser plugin) that let you do the
following:

 * Connect your GitHub repository to a (company or personal) crypto wallet
 * When creating an issue, add a maximum price tag and a deadline
 * Issues created by third-parties can't have a maximum price tag and deadline.
   These should be added by the product owner, if the issue is perceived as
   legit.
 * Price- and deadline-assigned issues show up on a global marketplace where
   developers can bid on the issue, until a developer is chosen.
 * On the global marketplace, developers can browse repositories and see how
   much the average developer makes per repository.
 * Developers can "star" repositories so they show up as the companies they
   "work for". 
 * When working on an issue (in a different branch), your coding time is
   measured (using something like WakaTime).
 * When the PR is done and the developer is paid out, the paid sum will be added
   to his/her profile and the required time will be shown next to it, so the
   average hourly rate will be calculated.

I think this would be amazing. There are many imperfections that could be
improved later, but this is probably a great start to create a global developer
network working using a smart contract and blockchain technology. 

It will create a more fluid developer market where developers switch companies
often based on supply and demand.