By Daniel Hines
It’s been a little over one year since Marigold formed, and I’ve been reflecting on my experience working on Tezos in that time. We’ve also recently had “Marigold week”, our very first IRL gathering, which was a lot of fun, and I’m feeling sentimental. On this double count, I’d like to relate to you why I enjoy working on the Tezos blockchain.
By the end of 2020 I was looking for somewhere I could make the jump from amateur enthusiast
to professional functional programmer. Specifically I wanted a domain where:
- The floor is low enough that I could start making meaningful contributions immediately.
- The ceiling is high enough that I’ll never be bored.
- The team has people who can teach me the deep computer science magic I want to know.
To my delight, joining Marigold and the Tezos dev community has provided all this in abundance.
I believe my positive experience stems from Tezos’ unique attributes as a project; in the rest of this post, I’ll elaborate why.
There is hardly an OCaml-related question I could ask that I couldn’t get an answer to on our work Slack. And not just an answer - I’m talking good answers, from OCaml maintainers and researchers, with considerations I hadn’t thought of, and links to relevant papers, issues, and PR’s.
This is the fruit of Tezos systematically rooting itself in the OCaml community through
funding academic research,
tooling and infra development, education platforms, training seminars, etc. As a result, developers and maintainers of critical components of the OCaml stack[^1] now also work on Tezos, and they bring an incredibly high caliber of knowledge (and enthusiasm!) with them. This is really useful
and productive - the devs who made the tools are often the best people to help you overcome obstacles in using them. It’s also fun - a vast amount of tribal knowledge on functional programming, formal verification, crypto and security, etc. has coallesced into the Tezos dev community, and they’re happy to geek out with you on the stuff they work on.
It’s like discussing the deep lore of your favorite MMO with the story writers themselves - only with
less orcs and more segfaults.
The Tezos dev community is a place where people truly love and excel at their craft.
That attitude is infectious, and it’s one of my favorite things about my job.
Despite the impression you might get from Crypto-Twitter, blockchain’s are really
hard to get right. As my colleague Maria touched on a previous post, blockchains are the combination of such diverse components as consensus algorithms, cryptoeconomic protocols, databases, compilers/interpreters, and more; and, what’s worse, all these components parameterize and complicate each other.
Thus, any kind of work on Tezos is practically guaranteed to be a novel thing, different from anything that’s been done before (sometimes in big ways but at least in small ones).
Building a blockchain at scale requires that we summon all our ingenuity and effort, attacking the problem with everything we’ve got. The only feasible solutions will require novel computer science
marshalled by rigorous engineering practices. Executing these solutions well requires holding onto
vigilence with hand[^2], and optimism with the other[^3], and tightly to both.
This keeps the work non-boring at the very least, which over time is a tremendous job perk.
And, more often than not, the work is genuinely exciting.
One thing that impresses me about the Tezos ecosystem is the tight collaboration between the different consultancies. In my short time here, I’ve had the privelege of working very closely with devs from Nomadic Labs and Trilitech - they’re teammates in the trenches, not competitors or “outside consultants”. This is not to mention the countless smaller interactions I’ve had with devs from Tarides, DaiLambda, Serokell, ZFX - I’m sure my managers could name more. We work closely enough together that I just tend to think of it all one big thing - “the dev community”.
The secret to this collaboration is not mere monoculture - each team has a distinct vibe and makes different assumptions on how to do things. How then do we collaborate? I think the trick is that Tezos’ governance model actually works: it ensures that if we make good proposals, they’ll be accepted by bakers and our work will be rewarded.
This is largely funded by the Tezos Foundation; however, as proposed in the Tezos whitepaper - it doesn’t have to be. Anyone can submit a proposal that includes a [developer invoice (Tezos Explainer: Incentivizing Developers with Inflation Funding - YouTube), where they write their own payment directly into the protocol. This is pretty unique and very valuable - at how many other jobs do individuals have recourse to ask for a fair reward directly from the stakeholders and actually receive it?
With so much work to be done, with such great potential gains for the Tezos ecosystem, and with the strong guarantees that good work will be rewarded, the dev community has strong incentives to collaborate however necessary to get stuff done. We also have strong incentives to experiment and try new stuff, since, as mentioned, none of our problems have “known” or “standard” solutions. And, in my experience, a place that encourages both collaboration and experimentation is really fun.
While it’s really enjoyable to work on interesting and challenging problems, work on Tezos is not merely that. The more I’ve learned about crypto, the more I’ve come to genuinely believe what we’re building is good for the world.
It is an enormous privilege to hold on to one’s livelihood in safety, to spend it free from unjust censorship, and to enter into contracts with fair arbitration. These are fundamental to a safe and just society, yet large majorities in the past and present have not enjoyed such justice. Technical solutions alone can’t solve these problems; however, as Arthur Brietman explains in one talk, blockchains can help lower the cost and increase the feasibility of fair money and contracts.
I have hope that the work we’re doing will contribute in someway to making it easier for honest
people to communicate and contract with one another, and harder for oppressors to stop them. Working toward such an end is a privilege.
The Tezos project and community is not perfect; however, I believe it’s gotten at least a few key things right, and these things make the project really enjoyable to work on. I’m grateful to it for the last of year of work, and look forward to the next one.
[^1]: Off the top of my head, we have maintainers of of OCaml, Coq, OPAM, esy, QCheck, Irmin, and Mirage, working on Tezos with us, to name only a few.
[^2]: Because you can always get rekt by some always-ready Byzantine agent.
[^3]: Because there’s always a few days out of the quarter when, in deep darkness, you despair that distributed computation is even tractable.