# Building the future of computing, with your help

For the last five or six years, since I bid goodbye to the startup scene and Silicon Valley, I have been increasingly working in public. I have written a book, given around 100 talks (many of which are available on YouTube), published over 20 research papers (all freely available from my website), and released and maintained some open source projects. Just a few months ago I released a new undergraduate-level course on distributed systems, consisting of 7 hours of video lectures and 87 pages of notes and exercises, all free; in student evaluation at the University of Cambridge, over 80% rated my lectures and notes as “excellent”.

I love doing first-rate work and making it broadly available. In fact, apart from my book, I give everything away for free, because I want to be able to reach and help the broadest possible set of people. And even my book is very cheap compared to the value that many people get out of it (just read the reviews).

Of course, nobody goes into academia because of the money (or the job security of untentured posts, for that matter). I would probably be earning five times my current salary if I had stayed in industry. But I have absolutely no regrets about taking that pay cut: I love the freedom to work on whatever I find interesting, and the freedom to publish everything so that others can use it. If you have found any of my talks, writing, or code useful, then you have also benefitted from the freedom that I enjoy.

Of course, like everybody else, I have bills to pay. At the moment I’m employed at the University of Cambridge on a fixed-term contract, funded by a charitable research grant. This grant gives me wonderful freedom to pursue my research and make it publicly available, but it’s a fixed amount of money, and once it runs out, my job disappears in a puff of smoke. This sort of grant is not renewable, regardless how amazing the work it has enabled. I can try applying for follow-on grants from other funders, but this takes a lot of time and has a low chance of success.

Therefore I am setting up crowdfunding through Patreon, in the hope of establishing a sustainable basic income that will allow me to continue my work of research and teaching long-term. I want to continue making most of my work freely available, so that the maximum number of people can benefit from it.

## Why support me?

I am offering three membership tiers for anyone who wants to support my work:

1. At the lowest tier, you will get regular news about new things I am working on, and exclusive early access to drafts and work-in-progress. Keep your finger on the pulse of new research as it is happening. I will also send you some nice stickers (once I’ve got them printed).
2. At the middle tier, you will additionally be invited to participate in an exclusive community with other supporters and myself, with both live and asynchronous discussions. I hope to cultivate thoughtful, high-quality exchange of ideas with likeminded people in this community.
3. At the highest tier, you get all the aforementioned benefits, plus the ability to influence my direction when I’m choosing what to work on next. Not saying I will definitely do what you want; also not saying that I will only take input from paying supporters (I still welcome ideas from everyone). However, I will consult and engage with supporters at this tier to get your opinions. I will also acknowledge you in any papers and books I write, making your name permanently etched into the scientific literature.

However, the biggest benefit is that by supporting me on Patreon you are enabling the creation of future work: that is, new thinking, writing, talks, and code that would not be created if I had to spend my time writing grant proposals or working for some company instead. If I have to go and get a job somewhere, you will mostly hear me giving bland talks promoting the technology of whatever company I happen to work for. Being independent allows me to pick topics that I find interesting and important (such as database transactions, formal verification, CRDTs, or elliptic curve cryptography), and present them in an accessible and neutral way.

I will continue making most of my work publicly available for free (except for books): even if you cannot afford to be a Patreon supporter, it will still be available to you. Patreon supporters simply get earlier access, plus the warm fuzzy feeling of knowing that you enabled the creation of new work that, without your support, may never have existed. Supporting me on Patreon is not a donation: it is an investment in future work that will hopefully be valuable to you.

If you have found my work useful – for example, if you have applied ideas from my talks in your work, or if my book helped you get a job – then I would be delighted to welcome you as a supporter! And if your company uses my book for training engineers, please find out how your company can support me: even my highest supporter tier is a tiny amount of money for a company that uses my work to improve the skills of their staff. I only get around $2 to$5 for every copy of my book that is sold; if you’re getting a lot more value than this out of it, it would only be fair of you to support me more substantially.

If you cannot contribute financially, worry not. I equally appreciate your support in the form of contributions to the open source community, discussing interesting ideas with me, and sharing useful material with others. I will continue to engage with you and answer your questions, regardless of whether you are a paying supporter. And most things I produce will continue to be free, so that everyone can benefit from them.

## Planned work

Keep in mind that when you support me, you are not buying a product. You don’t know exactly what you’re going to get, because I don’t know exactly what I am going to do in advance either. That’s why it’s called research – it’s open-ended, and part of its purpose is to go down unexpected rabbit-holes if they seem important! You are funding a person because this person has done good work in the past, and is likely to continue doing good work in the future.

I do have a lot of plans, though. At a high level, I am hoping to do these things over the next few years:

There is no concrete timescale for these things; most likely I will work on several of them in tandem, as I have been doing over the last several years.

Part of this story is creating educational content on topics that I find important, and part is a vision for the future of collaborative computing, which my collaborators and I are realising in the form of Automerge, an open source project. Our vision is articulated in the essay-cum-manifesto on local-first software, which I suggest you read if you haven’t already.

## Research philosophy

For me it is important to have this mixture of research, open source software development, and teaching (through speaking and writing), because all of these activities feed off each other. I don’t want to just work on open source without doing research, because that only leads to incremental improvements, no fundamental breakthroughs. I don’t want to just do research without applying it, because that would mean losing touch with reality. And I don’t want to just be a YouTuber or writer without doing original research, because I would run out of ideas and my content would get stale and boring; good teaching requires actively working in the area.

This interaction was articulated wonderfully by Turing award winner Jim Gray:

I aspire to be a scholar of computer science. All fields of scholarship, from religion to medicine, emphasize three aspects: meditation, teaching and service. Meditation (called research by scientists) is the official part of research. But, teaching (writing papers, explaining your ideas, and transferring technology) and service (making computer systems and helping people use them) are also major aspects of the scholarly process. They keep the scholar in touch with reality.

(That’s from Gray’s letter of resignation from IBM. The whole letter is a fascinating read if you’re into computing history. At the time Gray was working on System R, the precursor of all relational databases we use today. It’s fair to say that his work has had a huge impact.)

Another aspect of my research philosophy is that good work rarely happens with one person alone, but through collaboration with other good people. Quoting Jim Gray again:

Computer science is an empirical and multi-disciplinary field. The aspect of it that I work on, computer systems, requires lots of good people, time and equipment to produce anything of interest. Projects of five or ten people working for five or ten years seem to be about the right scale. More modest projects are unable to attack significant problems. More ambitious projects have unclear goals and have management problems.

You might be wondering: even if I get enough Patreon funding to cover my own living expenses, it seems unlikely that I will be able to crowdfund a team of five to ten people. Fortunately, I have found over the last years that collaboration does not require all team members to be funded out of the same purse. I constantly collaborate with people without being responsible for their payroll. In open source, it is common for contributors to a project to be employed by several different organisations, and indeed such diversity makes projects better and more resilient.

I work closely with the Ink & Switch lab, who have their own funding. Some of my collaborators are PhD students who have their own stipends, or research fellows who have their own grants. We come together because of our common interests, and because nobody is trying to profit from the others. We have a vision of the future that we want to realise, and the funding just lets us pay the bills as we work towards the greater goal.

Of course, if my Patreon ends up being successful and generates more money than I need for my own living expenses, I will use it to help fund collaborators. I am not aiming to recreate the lavish Silicon Valley engineering salary that I left behind; I just want to do good work without having to spend a lot of time chasing grants.

## Alternatives to crowdfunding

Before moving to Patreon I considered several alternatives:

• Academic jobs and fellowships? It’s a difficult to get a stable position at a research-focussed university. Both jobs and funding are fiercely competitive (hundreds of applicants for one place), and they require a strong track record of publications. Unfortunately, there is a large degree of randomness in the choice of papers that get accepted to top-tier publication venues. I am still interested in an academic career, but it seems unwise to put all eggs in this uncertain basket. Oh, and due to the pandemic my current university has a hiring freeze anyway, so no jobs anytime soon.
• Founding a startup? Been there, done that (twice). A startup is a great way of productising technology on a 1–2 year time scale; it also needs fast growth and/or a strong revenue model. My current work does not fit that model since it focusses on foundational technolgies with a longer time-scale (the 5–10 years mentioned by Jim Gray), and it aims for public benefit rather than private profit.
• Getting a job at someone else’s company? I want to be free to choose what to work on based on what I believe is important, not whatever happens to suit a company’s agenda. I also want to be free to publish that work openly. Not many companies are willing to support such positions long-term.
• Consulting work and training? I could spend a fraction of my time helping companies solve problems within my area of expertise, or running training workshops. However, this type of income can fluctuate wildly, and generating a steady stream of clients is a lot of work and very distracting. It’s difficult to make consulting compatible with the deep thinking and long-term view required for research.
• Becoming a professional author? I have been able to draw a reasonable income from royalties for sales of my book. However, I have no idea how long those sales will last, and I have no idea whether any future book I write will sell similarly well. Given this unpredictability, it seems unwise to bet on royalties as only income. Moreover, book-writing is only one of several things I do, and I believe the other things generate value too. I believe my funding situation should reflect that.

With crowdfunding, I hope to not only generate a steady income stream, but also build a community of people who are excited about the same topics as me, and who are invested in making these ideas a reality. It is an opportunity for me to share early-stage work with enthusiasts, and to improve that work through feedback from the community. And it is an opportunity for you to get an insider view of the research process as we build the future of computing.

If you believe in our vision for a better future of collaborative computing, or if you want to see more high-quality educational materials for computer science, then why not head over to Patreon and pledge your support? It will make a huge difference. Thank you!