One cool benefit of job hunting is that you get to learn about cool new companies. Many months ago, Rickk.eth followed me on twitter, and I’ve been curious about his company OpenQ ever since. Unfortunately, OpenQ is a technical project which meant that I couldn’t understand it at first glance. So here’s my explanation of how it works.
The birds-eye explanation is that OpenQ is a platform for escrow payments for pull requests on GitHub. First we’ll go through what GitHub is and how it works, then we’ll go through open source code, then we’ll quickly blaze through what a two-sided market mechanism is, and lastly, we’ll go through how OpenQ fits into all of the above.
GitHub
GitHub is a popular online platform that developers use to collectively review, complain about, and fix code. Let’s say that you write a program for an alarm clock your engineer brother just invented. But it has a problem! Its runs 5 minutes slow, so at midnight it says 11:55 pm instead of 12:00 am.
Github is a place to upload code for others to improve collaboratively. Once you upload your code, you then raise an issue in the code to point out an issue you have. Other developers then examine your issue and may try to fix it. But it wouldn’t be smart to edit the original code! Maybe the new suggestion is buggy, or maybe you want to compare solutions.
GitHub lets developers make a copy of your code to play with and then form a solution to the issue. When a developer is finished, he opens a pull request. A pull request is a solution to the coding issue raised. If you’re satisfied with the pull request (the new solution), then you can merge the code with your og code on Github and voila! you’ve fixed your alarm clock.
When I first heard this, it reminded me a lot of Google Docs, a platform that many editors have used to edit my written work. Docs is similar to GitHub in that
you can go back in time and see past versions of a text;
you can make comments on the text that’ll then be fixed by the writers, and
collaborate with others on the “same” document so that others can see what you’re doing.
It’s different from GitHub in that you’re all editing the same document in Google Docs, but developers are not all editing the same source code on GitHub. If Docs more closely reflected GitHub, Alice would have one copy of the shared essay, Bob would have another, and then the editor picks which one becomes the final copy.
That’s my rough summary of GitHub! People upload code, then bring up issues. Developers propose solutions to those issues called pull requests. If the pull request is satisfactory, then it is merged with the original code.
Open Source Code
Open source code is code that anyone can use, edit, and change. Many open source projects live on GitHub because Github makes it easy to suggest improvements (as we discussed above). If we continue our Google Docs analogy, then you can imagine open-source code to be like one person writing a public essay about … I don’t know, Toronto’s gridlock issues. He starts writing about the history of it and publishes it to the world. But a urban studies professors reads it and then says “you’re completely missing the role of John A. Duncan, the city councillor from the 1970s who made so much of the policy!” Dr. Duncan then gets 3 of his grad students to write up a micro-essay that adds that history to the original essay. Then a geologist reads the essay and writes about how Toronto is built on top of clay – you can’t have lots of high rises because the soil is too soft. Then some bored undergrad students read it and write “that literally makes no sense, can you please elaborate?” The collaboration continues like this on and on forever, like a bazaar. It’s very anarchic, there’s no master plan that can’t be changed, but at its base, there’s an essay that is continuously growing and changing.
That’s open source code.
Two Sided Markets
You can think of two-sided markets as a platform that must attract both buyers and sellers to the same place. This is why economists call them platforms. One popular example is Facebook. Facebook is ostensibly a place where people come to connect. It costs nothing to use. So how then does it make money? Through advertising. Because Facebook can get lots of eyes on their website, they can sell attention to advertisers. Facebook thus has two markets: one with regular every day users who go onto facebook to keep up with friends, and another with businesses who use facebook to advertise to the regular every day users.
The benefit, as well as the difficulty, with two-sided markets, is that they are so reliant on network effects. The platform gets more valuable the more people there are on it. The hard part of network effects is starting them, called the Cold Start Problem (“buyers won’t come because sellers aren’t there because buyers won’t come because sellers…”). Andrew Chen, the guy who wrote the bible on Network Effects, suggests first building an atomic network to fix the cold start problem. An atomic network is “a stable, self-sustaining group of users who can drive a network effect” (Chen). As long as you have this atomic viable number of people, the network won’t collapse.
Networks have two sides: the easy side and The Hard Side. The hard side is the part that does most of the work or provides the most value. They’re the part that you want to develop and nurture at the early stages of your network. For example, AirBnB has a lot of people who want to buy listings, but a far smaller number willing to rent out their apartments. The hosts make up the Hard Side, and they are what you want to invest in building up at the beginning.
That’s the challenge that comes when building a Two Sided Market.
Last but not least, OpenQ:
A good definition of OpenQ is that it “lets anyone mint and fund a bounty for any open source organization from a GitHub Issue in seconds (source).” That’s a mouthful, so let’s break it down.
First, “let anyone mint and fund a bounty.” A bounty is a reward given to a developer who fixes code. OpenQ thus lets people with code that needs fixing fund bounties. Minting and funding refers to how people pay for the bounties - with crypto. Once a developer fixes the code, he gets paid with crypto.
Next, “from a GitHub Issue” refers to the GitHub issue discussed above. If someone makes code and finds a problem, he raises an issue to let developers know that he seeks help. Combine Github issues and crypto bounties together and you get a situation where you earn crypto for fixing issues with code posted on GitHub. Ta daa!
That’s the birds-eye understanding of what OpenQ does, but it doesn’t explain what makes it special. Websites like Upwork and Fiverr already exist that let you hire developers. What does OpenQ bring to the table?
OpenQ’s value comes from the programmability of smart contracts to facilitate escrow payments. Surprisingly, many web3 organizations and bounty programs still keep bounty money with banks or centralized third parties. OpenQ does not. If you want to fund a bounty and have your code fixed, then OpenQ will lock your money in a smart contract rather than a bank or centralized third party.
Another source of value is its customizability! Its use of smart contracts means that you can customize the conditions under which a bounty is released. For example, you can set up a competition to fix an issue and have the smart contract send the bounty to the developer that finishes the pull request first.