What you should know before attending…
Coming from Africa, it was an honour being invited to the prestigious Qiskit Camp sponsored by IBM and held in Mürren in 2019 — a beautiful little town in the mountains of Switzerland with a population of about 200 people. I had absolutely no idea what to expect and from stalking other attendees’ profiles online, I was extremely intimidated by my soon-to-be peers. Not only did I not have a fancy physics undergraduate degree, I wasn’t well versed in Qiskit either. But despite these facts, my team and I managed to provide the winning contribution! As such, I thought it might be beneficial to share my experience and provide a few tips for those thinking about attending a Qiskit Camp in future.
1. Familiarise yourself with GitHub!
If you don’t already know the ins and outs of GitHub, get acquainted with it as soon as possible (you can find a decent intro tutorial here). Almost everything at the camp is conducted through GitHub repositories. Participants initially “pitch” their project ideas on GitHub as open “issues” allowing you to sign up for the one that interests you most.
Similarly, if the project you plan to work on involves contributing directly to Qiskit, you will need to know how to navigate through GitHub well. Here is a great YouTube video explaining how to contribute to Qiskit using GitHub and I would recommend having all Qiskit elements installed from source with a new environment set up. In particular, installing the relevant elements in editable mode is important. Also keep in mind that if you are not planning to directly contribute to Qiskit code, ideas like games or teaching quantum computing through Qiskit may still be made into tutorials using Jupyter Notebooks which can be added to official tutorials on Qiskit’s GitHub repository. So, familiarise yourself with GitHub prior to the camp.
2. Work through Qiskit tutorials strategically
The ultimate goal of the Qiskit Camp hackathon is to create something useful using Qiskit. This is a bit of a vague goal, but it encourages brainstorming creative ideas like making quantum games, developing new quantum algorithms, making Qiskit more efficient and implementing new error correction techniques.
With the rapidly growing Qiskit community, there is an abundant amount of resources to learn about each Qiskit element. If your time is limited, I suggest learning the basics of each element and focusing on one that intersects with your current domain knowledge. “Luckily” my travel time to Switzerland from South Africa in economy class was around 17 hours, which afforded me plenty time to study up on Qiskit Aqua and of course, not sleep.
3. Choose your project wisely
When choosing your project, remember that you have 24 hours to demonstrate the concept, not to complete it. Each project is judged on the following criteria: the final team pitch; originality; complexity; and usefulness. Don’t underestimate any component. A lot of teams with beautiful ideas and great pitches fell short on either the usefulness or complexity of their project.
Our project was titled “Hybrid Quantum-Classical Machine Learning with PyTorch Integration” where our aim was to integrate PyTorch capabilities with Qiskit. PyTorch is an open source framework that focuses on machine learning techniques such as building and optimising neural networks. At the time, PyTorch and Qiskit were completely blocked off from each other and integrating them allows you to both tap into state-of-the-art PyTorch tools and perform sophisticated quantum operations in Qiskit. For example, you can build a neural network with a variational “quantum node” and use classical optimisers like RMSprop from PyTorch to optimise the parameters (see figure below). We emphasised the impact this project would have on a large community, essentially bridging the gap between quantum and classical machine learning research.
4. Optimise team dynamics and work split
Our project seemed like a mountain of a task to accomplish in 24 hours, but we adopted a fairly efficient approach. The first 2–3 hours were spent ensuring the entire team understood the aim of the project by fleshing out the tasks we wanted to accomplish in the limited timeframe. Our primary goal was to develop a minimal “Hello World!” example, after which we could then explore more advanced applications (like training a neural network with a quantum node).
Once we finished an extensive discussion around the goals needed to be achieved, we worked in pairs on different aspects of the project with “mini deadlines”. Playing to our team’s strengths, we attempted to optimise task assignment by balancing the pairs and rotating our mini teams depending on each team member’s skillset and enthusiasm. This way, we all learned and contributed in unique ways.
5. Keep your pitch short and sweet
After the 24 hours are up, each team will have 3 minutes to present their work. Personally, I think this is best done with 1 team member presenting the key points of the project. It is crucial to highlight the relevance of your work and balance the delivery between technical and intuitive concepts because your judges and audience will have different backgrounds. Your presentation will be cut off after 3 minutes and this does not reflect well, so time yourself beforehand.
6. Have fun and don’t stress!
Qiskit Camp was undoubtedly one of the most amazing experiences I’ve ever had. Not only was it an excellent learning opportunity, it was really fun! If you think you aren’t good enough to attend, I’m here to tell you that you are. If you have a willingness to learn, are curious about quantum computing and want to meet other eager individuals in the field, it’s the perfect place for you! I don’t think anyone had even heard of the University of KwaZulu-Natal (which is where I’m doing my master’s degree in South Africa) and I was up against ETH Zürich postdocs in physics! The point is, at Qiskit Camp, the environment isn’t a competitive one. It’s one that promotes learning and pushes the boundaries of what’s possible with quantum computing using Qiskit.
So learn. Collaborate. Form friendships. And most importantly, have fun!