There have been countless technical challenges, e.g.:- How to write software that will run on almost every computer in the world, and in particular how to debug problems that occur on computers "in the field".- Performance issues involved in making a server distribute and collect millions of jobs per day.- How to do reliable computing using computers that are unreliable, anonymous, and untrusted.
But these are all easy in a sense - they can be solved with software and algorithms, which is wait I'm trained to do. The hard part has been that BOINC is more than a software platform - it's a movement, involving millions of people grouped into various communities with various interests. I've been put in the position of leading this movement - creating the communication channels, mediating disputes, balancing the goals and priorities, acting as a spokesperson, and so on. I've done these things a bit reluctantly, and often not very well. I'd rather be writing code.