We asked five questions to João Barbosa, the latest recipient of our open source developer grant, on Bitcoin development and the improvement of the Bitcoin Core user experience.
As part of our ongoing efforts to support the Bitcoin ecosystem we’re happy to announce that João Barbosa has become the latest recipient of an Okcoin open source developer grant.
João is a developer and frequent contributor to Bitcoin Core, Bitcoin’s most used client. In his work, he focuses on testing, reviewing code, and on improving the experience Bitcoin Core users can have.
In addition to the grant announced today, which will support João’s development work over the course of one year, we’ve supported Bitcoin payment processor BTCPay and individual contributors Fabian Jahr, Amiti Uttarwar, Marco Falke and Antoine Riard. We believe open source development, especially review and testing, to be critical to Bitcoin’s future. This is why, like all of our other grantees, João’s will not work for our platform in any way. He will instead dedicate himself exclusively to the Bitcoin Core project.
We sat down with João to speak about what brought him to Bitcoin, and why he sees code review, open source development and user experience improvements as crucial to Bitcoin’s success.
Hear from João
Okcoin: What brought you to Bitcoin?
João Barbosa: In 2014 I joined a startup where Bitcoin was at the core of the platform
specification. At the time Bitcoin was just a fancy name to me, it had never caught my attention. It was only then that I had to study it, dig in the source code, play
around with the RPC interface, etc. It blew my mind, still does!
Okcoin: You could have worked for a Bitcoin company or started your own app — why did you choose open source development?
João Barbosa: Back in 2015, I worked on a project which required monitoring Bitcoin blocks and transactions in real-time. After some research, I noticed there was some work left to integrate ZeroMQ notifications in Bitcoin Core. It looked promising and was useful to my project so I picked up that task to help finish the feature. This was my first significant open source contribution. I still remember how excited I was after seeing the merge notification. It gave me a sense of achievement and contribution – finally, the feature was implemented and anyone could use it!
There are many people contributing in one form or another to the Bitcoin ecosystem. It feels great to be part of it and to give back to the community, after taking so much from other open source projects over the years.
Okcoin: You have spent a good amount of time reviewing the proposals of other Bitcoin contributors but code review is often seen as an important bottleneck in Bitcoin Core – what are the implications of such a bottleneck and how can we get more people to review?
João Barbosa: Some technical proposals in Bitcoin need intense scrutiny, often requiring multiple rounds of discussion, review, and testing, on the part of multiple contributors. This process simply takes a lot of time. In parallel, some other proposals are accepted by the community. The Bitcoin source code evolves accordingly so the contributors have to update their proposals, and then wait for more feedback. This causes some proposals to take months or years to be implemented, which often creates frustration. It sometimes even leads contributors to completely give up the proposals.
There are many awesome initiatives to bring more people to review Bitcoin Core code. The most noticeable one is the Bitcoin Core PR Review Club where people join and discuss some particular proposals. It’s important to have more reviewers and testers but it’s also important to promote valuable review feedback.
All the funding initiatives like grants, sponsorships, donations, or any kind of remuneration for code review are also crucial because they allow people to stick around to spend more of their time on the project.
Okcoin: You plan to work on improving the Bitcoin Core user experience (UX) on mobile – can you explain what it currently is and how you intend to improve it?
João Barbosa: We don’t have official Bitcoin Core apps for iOS or Android and I’m not sure we will have any in the future. But it’s important to support these architectures and to allow Bitcoin Core to run, to some extent, on iOS and Android devices.
The problem is that Bitcoin Core’s existing graphical user interface (GUI) doesn’t fit these devices because it’s based on QtWidgets, a GUI module that initially focused on desktop systems. Today we also have QtDeclarative, which includes QtQml and QtQuick modules – these allow support for modern GUI which are more suitable to mobile/touch devices. There is already some work on that, what I intend to do is to help push that forward so we can have a mobile friendly version of Bitcoin Core.
Okcoin: Why does the mobile user experience (UX) matter to Bitcoin Core as a whole?
João Barbosa: In my opinion, Bitcoin Core’s mobile UX is important for multiple reasons:
- Mobile usage has been increasing steadily over the years compared to desktop computers. We also have more capable smartphones, better broadband networks, more storage, etc. So it makes sense to contribute to support these devices.
- People tend to judge software by its look, and the existing GUI is pretty much outdated. It’s easy to see that a lot can be improved just by taking a quick glimpse at the Bitcoin Design Community’s work.
- With better UX, we can push people to run their own Bitcoin node from their pockets – this is especially relevant for people who can’t access a desktop computer.
- It would help unify the Bitcoin Core graphical user interface across platforms including mobile and desktop.
- Ultimately, improving the UX should also help Bitcoin Core to better support hardware wallets. This would in turn mean that people don’t have to store their private keys on their mobile devices – we want them to avoid doing that.
Learn more about our open source grant program
Backing open source development is one of the best ways to invest towards Bitcoin’s future and ensure its continued existence.