Jutta Steiner recently announced Fredrik Harrysson (Twitter, Github) as Parity’s new CTO. I sat down with Fredrik to chat about his vision for Parity’s software development, open source software, company culture, and the future of blockchain tech.
What’s your background?
I started as a web development freelancer when I was 14 and continued that business through college. I received a Masters in Engineering Physics and then started my first “startup” after college after having worked in San Francisco for a summer. I’ve joined several startups as well as founded several—was through Techstars in Chicago with one of them.
What interested you in working at Parity?
I love programming languages—I’ll read up and study most new languages coming out and have worked professionally in over half a dozen languages. So I had a long-standing interest in Rust and was coincidentally also interested in Ethereum. When I saw Parity announce they were going to build an Ethereum client in Rust, I thought “Fuck yeah, awesome.” Almost a year later when I was looking for my next big thing to do, Parity was at the top of my mind. I studied the codebase and looked into the company and what I saw was a really high quality codebase with a really high quality team, and I wanted to be a part of that.
A big part of my life has been removing technical debt, and Parity was one of the companies with the least amount of technical debt I’ve seen.
How has technology development changed since you’ve taken over as CTO?
It hasn’t really. Parity has a very unique culture and that’s something we want to maintain and not change for as long as we can. I see a big part of my role as the maintainer of that culture. We have spread out and started investing significant resources in Polkadot and Substrate, but we have also hired a lot to be able to keep up with existing projects like Parity Ethereum and Parity Bitcoin.
What’s your vision for the future of Parity's products?
Parity builds core infrastructure, that’s what we’re great at. The last few months we’ve slimmed down and split out the Parity Ethereum offering into separate products. The UI now exists as a stand-alone project so that the node is just a node now and we try to focus on making that the best possible experience for node operators. I want to make it clear what products we offer and what stage of the lifecycle they’re in. Parity Polkadot is under very heavy development and running it shouldn’t be expected to be a stable experience right now; contributing to it is also a different experience than contributing to Parity Ethereum. We are also putting in significant effort to write more—about our products, about ourselves, documentation for code and libraries we have, etc.
My hope is that we will be able to clearly communicate all the great things we’ve built, something we have partially failed at in the past, and that it becomes really easy to use the infrastructure we support. I also really hope that with better communication we get more community contributions—we can’t do everything ourselves, and we need the community to come together to help us build the future.
Of course we think the future of Parity is bright: we have a great lineup of products to come, we’re expanding the company rapidly, and there’s a grander vision of what the company can be that I work on with the rest of the team. I look forward to sharing more on that vision in the future.
What’s your vision for Parity’s software development?
Parity is an open source company. Fundamentally what we do is write open source code, and that’s not something we want to change. Code should be the highest quality it can be. We can do a lot to help outside contributions, such as writing more and better documentation, but the development process is still more or less the same as it is for any open source project, contributors (whether employed by Parity or not) take up the issues they want to work on and all contributions go through the same review process as any other contribution.
What are you doing to ensure secure development?
Security is a process, as they say. I work very closely with our Head of Security, Kirill Pimenov, to help establish those processes, whether it’s setting standards for reviews, involving outside parties to review (as we try to do for any consensus-sensitive code), or helping direct efforts like cross-client testing. I try to be as involved as I can in the general security community and constantly listen to what the latest best-practices in OpSec or otherwise is.
Has anything changed with how Parity works with community contributors?
Our products have matured. It’s easier than ever to contribute to our code and technologies such as Parity Ethereum. The codebase is more stable and issues are more organised than ever before. I really try to push for and help outside community contributors get in touch with us and get them involved in the projects.
What’s the best way for community contributors to get started?
We try to label our issues so that it’s easy to see what issues can be picked up easily or are good for first-time contributors. There’s still a gap that needs to be bridged in getting up to speed on domain-specific knowledge, so we encourage people to ask questions in the chat to help bridge that gap. We want to start publishing more “Getting Started” material in the readmes and wikis of the various projects as that’s still lacking in many places.
What’s something interesting that you find people often don’t know about Parity development?
I think people don’t know that we work pretty much the same way outside contributors would work: we pick an issue off the github tracker, self-assign, and then work on that. If you see an issue in the tracker, it doesn’t mean that that’s reserved for Parity employees. If there’s no one assigned on an issue it means it’s up for grabs, by anyone at Parity or anyone outside of Parity.
What’s your favorite thing about Parity?
The company culture for sure. Everyone at Parity is super friendly, super geeky, and love what they’re doing. Getting paid to do open source work is the fantasy of a lot of developers in the world and at Parity everyone is living that dream.
What’s your favorite aspect of Parity’s culture?
We don’t really have managers per se; we follow more of Fred George’s definition of Programmer Anarchy, or self-organisation. This means that people have agency and autonomy, and of course you sometimes have to work on issues you’re not super passionate about because that’s what’s good for the product, but most of the time it means that you can dive as deep as you want into that rabbit hole and geek out about something you love doing.
What’s your interest and experience in open source software?
From operating systems to web frameworks, the world is built on open source software. I’ve always worked with open source technology; my first “real” programming language was PHP. I spent many years working in Haskell and trying my best to contribute back to the compiler and the tooling around the language itself. When I’ve been working on proprietary code I’ve always tried to break out pieces that could be open-sourced as libraries, sometimes successfully and sometimes not. I think it’s extremely important to give back to the open source community that gives so much to the world without really asking anything in return.
How does your role as co-host of Zero Knowledge Podcast inform your development perspective?
The podcast started as just a little side project when I started coding on the Ethereum client and I was looking for good discussions from a developer’s point of view. It’s grown over time and now Anna Rose, my co-host, manages most of it, but it’s a great excuse for me to spend a few hours every week talking to different projects in this space, taking the time to listen and learn from others, which I think is extremely important.
What’s your vision for blockchain tech?
Gavin has been very influential in how I think about blockchain, as well as many others in this space that I trust and look up to. Blockchain has already had a huge influence on currency, but the space outside of cryptocurrencies has really just started being explored and it’s hard to tell exactly how large that space will become.
There seems to be two fundamental use-cases for blockchain today: decentralising things across the world, like currency and other assets, and removing trust and middlemen in a known environment, like consortium chains. I think in the future the gap between these two needs to close and the consortium environment needs to be able to communicate with the rest of the world for the fully decentralised vision to come true.