 So, hi everyone. Thanks for having me. I'll talk about when open source meets quantum computing, and so if you've been following some of the talks today or even if you just came inside and this is the first talk about quantum computing that you hear today, basically the general theme that we hope to convey is that quantum computing has moved out of this kind of sci-fi world into reality. It's happening today, it's not just in some research labs but it's happening in startups and some of the big companies and the amazing thing is also happening open source and that's why we're here. So, there is plenty of quantum hardware out there, they call them QPUs, Quantum Processing Units, and basically we have a lot of the hardware providers and today we had all of them here who are actually working with open source software. So, IonQ and Intel both haven't released any software to interact with their QPUs so far. As Tomas just mentioned, there is for people that are interested an incubator program for quantum software startups, they, it's basically a nine month program, they offer you two month training where you actually get to learn how to program these devices and you also get an initial funding of ADK and the applications are open now. So then in kind of summary, like a lot of, if you go to conferences which are about quantum computing, you're going to hear a lot about exponential speed-ups. Everyone is trying to come, like find out, like a classical algorithm that can be sped up and so I just picked like three papers that happen to have the words, exponential speed-up in their titles but there's plenty more and like one of the most well-known is an algorithm to solve a system of linear equations where they basically had an exponential speed-up and so there's a lot of these but the problem is that there's still large amounts of software engineering that actually needs to be done to really harness these speed-ups and actually use them for real-world applications. So there's a law that I quite like. It's called Brook's law and what it basically says is that adding human resources to a late software project makes it later and that's very much something that I can relate to because when we started a company we thought that adding employees is actually going to increase productivity linearly but it definitely doesn't and it just increases communication overheads and so it basically returns the law of diminishing returns where adding resources actually starts plateauing and then even decreasing productivity at some point but when we started working on this paper what I find quite surprising is there has been a paper in some research where they analyzed a lot of open-source projects and what they found is that Brook's law actually doesn't hold true for open-source projects. There is an increase in productivity with increasing amounts of contributors so there's an amazing diversity of software projects already when it comes to quantum computing and a while ago I started a list on Github that is now hosted on the Quantum Open Source Foundation Github page and it basically it's I'm trying to keep it up to date as much as possible and people are submitting pull requests a lot of times and it basically is split up into many different subcategories that are important in the quantum computing space and then each category is subdivided in programming languages and there's a lot of interesting projects and I wanted to point out a couple funny ones like in the Quantum Fund section what I found most surprising is there's a project where you can compose and perform quantum music with actual quantum processing units we heard a little bit about that board game from IBM which is about you basically traveling through the galaxy and trying to collect parts to build a quantum computer it's actually open-source that board game you can download it on Github and there's some other really funny projects out there you can even play battleships and Cat Sweeper on QPUs I think that makes the experimentalists really sad if they know that all their time is spent to just play games so yeah as Thomas already mentioned we were contacted by a journal that is focusing a lot on open access and publishing code open-source which is plus one and they asked us to write a review about the current state of quantum open-source software and I think that kind of really fits nicely into the FOSTEM theme and I wanted to share with you what we kind of found and what results there were as a recap if you were here this morning for Tomas's talk you already saw those slides but I just wanted to quickly kind of on a high level point out how the workflow looks like when you're trying to program a quantum computer and you're starting out with a problem definition which could be the traveling salesman problem and in the first step and that's in the gate model paradigm the first step is to actually choose a quantum algorithm that you want to use to tackle that problem and once you have picked an algorithm the next step is to actually write down a circuit which corresponds to this algorithm and specifically which also incorporates the problem that you're trying to solve and then once you have that circuit you need to compile the circuit depending on what backend you want to use do you want to use a quantum processor if yes which hardware provider do you want to target or you're just going to use a simulator but in any case you need to compile the circuit if you look into the annealing framework you can do a similar diagram where you start with your problem definition but this time instead of picking a quantum algorithm that has already been done for you because annealing basically forces you to encode your problem in an icing type Hamiltonian and so you basically need to encode your problem in the parameters of this quadratic equation and then the next step is the topology of your of this quadratic equation might not correspond to or very much will probably not correspond to the hardware graph so you need to do what we call minor graph embedding where you're trying to fit that problem onto the actual chip and run it on the actual d-wave quantum annealer or use a classical solver to try to find the solutions and what I find interesting to point out is that if you put these two flow charts next to each other you can actually see that basically this encoding in an icing type Hamiltonian is equivalent to picking a quantum algorithm and writing down a quantum circuit and the minor graph embedding can be pretty much seen as the compilation step in the annealing world so in terms of the paper we looked at over 60 quantum software repositories and we needed to find a way of actually narrowing them down and create some criteria and so we've selected 26 quantum software projects according to this decision tree and the main reason why we excluded projects is because they were either single contributed projects or projects that didn't have any issues or pull requests which we considered as no traction so we basically focused on these 26 and the first thing was that we looked at the licenses what is out there and what are people using and we found that 90% of the projects used permissive licenses and 65% of those used Apache 2 and there was only two projects that actually used copy left licenses and there was something that we found kind of surprising and it really shows that the community is open with respect to the commercial use of their software the next thing was that we looked at documentation and we basically did a qualitative analysis of various elements that we consider important for documentation so we looked at the source code documentation at the quality of the readme files, change logs the user documentation which we define as like a little bit more in depth per feature documentation and then also tutorials that really take you with a specific problem all the way through the implementation and what we found there is that most projects tend to have really good source documentation and readme files but there is really shortcomings when it comes to change logs and extensive per user feature documentation as well as there's very little tutorials which makes it really hard as a newcomer to actually get started and understand how to actually even start the pipeline and start building so there's definitely a lot of room for improvement right there and then we looked at the actual code quality within those projects as well as the testing components of them and we're quite happy to see 23 out of 26 projects actually used automated test suits and the average code coverage was found to be 75% just quite good and the median was 87 which is actually above industry standards so we're pretty surprised by that and that's great when it comes to the community we also want to see how do they actually interact with the wider community of developers and I'm sure everyone would agree that getting a fast response on your issue or pull request is something that is really crucial because otherwise you're probably going to ditch that project and not continue developing on top of it so we consider every issue and pull request that wasn't responded to within 30 days as ignored and we define this attention rate which is basically one minus the fraction of unanswered over total issues and pull requests and I don't want to dive into the nitty gritty numerics but if you're interested in actually seeing the results they're both on the QoSF website as well as in the paper but what we found surprising is that the commercially backed projects weren't better at replying to issues and pull requests than the community driven efforts which doesn't mean that any of them is worth it's just surprising that actually the community projects seem to be pretty good as well as handling the influx of issues and pull requests so then Github has a community profile which is basically seven things that you should have in your project. There was only four out of these 26 projects that actually scored seven out of seven on this metric and we found that 10 out of the 26 project didn't actually review the code from their own core contributors which we thought is kind of critical because it kind of creates like a two class society so you really want to make sure that all of the code is being reviewed. As well as there is a lot of the hardware providers and projects have user centric discussion channels but there's little developer centric discussion channels where you can actually get involved in kind of planning the future of the project as well as kind of having a visible public roadmap like there was a question earlier on about kind of you were developing something and then suddenly like the API broke and stuff like that so it would be great to actually have a roadmap where these things are clearly communicated such that developers know exactly how they fit in and how they can do meaningful contributions that are actually going to be included and used. And so the issue that became obvious quite quickly is that this is going to get outdated. It's basically just a snapshot in time and so what we did is that we automated this evaluation process and published the results online on the QOSF website and so the idea is to have like a monthly run and give people the chance to actually improve and foster these best practices. So one thing that I tend to say and I'm happy if people disagree but I think physicists are great with equations but they generally are not that great with code. Like I myself I never learned programming properly at university. I just wrote scripts and then once I got to know Tomashi actually showed me how to write proper code. So I think there is definitely a place for skilled software engineers to come in and actually help us build these tools for the future of quantum computing and as it was discussed in the panel like there's a lot of classical components even where you could help out that don't necessarily require the understanding of quantum mechanics. But I do want to make a point because there's a lot of memes about how hard it is to learn quantum mechanics and there's many, many more than that and I kind of want to pose the question is it really that hard to learn quantum mechanics if you guys want to get involved and actually start programming on these tools. And I personally think it's not really a binary answer I do think there's elements of quantum mechanics that are hard to understand but you don't necessarily need to learn them in order to program on a quantum computer. And in order to prove that point we're going to host a quantum workshop tomorrow which you can sign up on this link and there's also going to be a lot more talks about like individual projects and Thomas is laughing because this is one of our collaborators and I found that on Google. I didn't make that meme. So then I want to make a point that came up early in the panel as well is that each of the hardware providers have their own open source software package and that's Xanadu Rigetti, IBM and Google right now but then Microsoft is working on developing quantum hardware and they also have a package called Qsharp. Intel is developing a QPU. There's lots more startups popping out of the ground right now that will probably also develop all their own packages and the question is that as a software engineer it's extremely painful to actually write code for each individual framework. So the question is like is there some way of like pulling them together and potentially standardize. And there's some unifying frameworks. There's XACC and there's Project Q and what they're trying to do is to basically go one level higher and be able to interact with all of the different QPU back ends. So for example, XACC supports D-Wave as well as IBM and Rigetti and has a high performance simulator. So it's those kind of projects that we also want to push forward because it's going to make the life of a software engineer much easier. So we talked about it. The reason why this room has happened is because of this launch of the Quantum Open Source Foundation. You're welcome to check out the website. There's a lot of information also for, that's probably not targeted to this room, but physicists, when I gave a talk at a quantum conference the other day they were really surprised that you have to put a license on your code on GitHub. And so yeah, honestly, and that's like we basically try to make a website where people can get informed about what you mean to publish code open source as well as why would you do it and the list of projects as well as a big list of learning resources can be found on that page. And really the goal is kind of supporting the development and standardization of open tools for quantum computing and it's really meant to be a community effort. So we don't want to let's say this is how it should be done. It's really involving the community and we're always looking for advocates, just by itself and contributors and partners as well as funding. So in terms of conclusions with these near intermediate scale quantum devices, so-called NISC devices, quantum software engineering has actually become a thing. And there's a lot of projects out there and they're all accessible on GitHub. But the problem is that what we found is that they lack proper documentation and it tends to be difficult that one in the weeds to actually like assume this like neutral role of a beginner and write good documentation and that's why we think people can really contribute meaningful things there and there's a lack of these public development road maps where people can really understand how they fit in. As well as in case someone is interested there is a shortage of quantum compiler projects. Especially like I mean there is I guess a lot of quantum compiler projects within the hardware companies but open sourced so there's definitely room to work on things in that area. And so overly there is a lack of standardization and we think that everyone would kind of profit from building like these transpiling tools and things that just help making the average software developers life easier in that space. So then I want to conclude that there's not going to be a deaf room tomorrow but we're going to have I guess it's called... So there's more talks about community build quantum software projects. There's going to be some talk about actual applications and projects that kind of implement quantum machine learning things and we're going to have like a hackathon type of thing where you can actually start working with some of the people that run these projects and help them fix some issues or help them improve the documentation and so on. You can find the schedule on that website or somewhere on the FOSTA website. I just So thanks a lot for listening and I hope to see you tomorrow and you can actually get started and program a quantum device.