How Did We Conduct a Fully Remote Hackathon?
We organized a fully remote hackathon centered around contributing to React Native and React Native Community repositories. The hackathon enabled participants to contribute to open-source projects, offering a valuable learning experience and positive outcomes, such as fixing bugs and enhancing React Native core and community packages. The event showcased the effectiveness of remote collaboration and emphasized the importance of keeping participants engaged and connected.
At Callstack, we value the idea of knowledge sharing. There are many ways of doing so, but one I like most: hackathons. This term is associated with long development sessions for teams from all around the globe, where the end goal is a product that solves (or help with) a problem defined at the beginning of the event.
During a lockdown, the number of ways you can organize a hackathon is decreased to one - fully remote. This was the first time we’ve done it this way, so we wanted to make sure that every participant did not feel the difference (well, almost :)).
Our knowledge sharing hackathon was a bit different than the “traditional” version described above. The main theme was "Contribution to React Native and React Native Community Repositories," and instead of working on one problem, we decided to take a closer look at our Open Source Projects and fix some bugs, etc.
The hackathon lasted around 3 hours and was organized internally with our developers as participants. The cool thing was that our new joiners took part in the event. It was a great opportunity for them to gain their first experience in contributing to Open Source.
In this article, I’ll tell you how did we manage to organize our hackathon fully remotely, and what was the result of our work.
How to prepare a remote hackathon?
While organizing our remote hackathon, we had to face a number o new challenges and find solutions to make this event as productive as it could be. Mostly, the challenges were related to the communication between participants and setting up the agenda.
How to set up the agenda for your hackathon?
No matter if you organize a remote or "traditional" hackathon, the first thing you need to figure out is to set your goal. Ask yourself:
What’s the purpose of the event?
What do you want to achieve?
Let people know what they can get from participation. In our case, as I said before, the main theme was “contribution to React Native and React Native Community repositories.” It was a good opportunity for participants to learn how to “give back to the community” if they hadn’t had a chance before.
To save time finding issues to work on, we’ve used React Native OSS board, which we introduced some time ago. Having such a list greatly helped people find what there were interested in and get started right away, so make sure to prepare one upfront.
Remote hackathon - useful tools
We wouldn’t be able to conduct a remote hackathon without some necessary tools. We had to find out the best possible solutions to manage such elements as communication between participants and monitoring what everyone is working on or need help with.
Since the hackathon was fully remote, we had to stay connected. The most popular way for that is to use chat software, such as Discord or Slack.
The next thing (and tool) we strongly recommend you to create is an issue board (using software such as Trello). It makes it more “visible” on what everyone’s working on or need help with.
<p-bg-col>Remember: Whatever tool you use, make sure that all participants have access to it beforehand<p-bg-col>.
Another useful thing in working with some code issues is being able to run an example app from a project. Since we knew we’ll be working on repositories that some of us are familiar with, we prepared a small guide on how to get the project setup.
For example, this small gist:
helped new people to get RNTester from React-Native up and running.
Once you have selected the task to work on, you’re ready to go, but you’re not limited to work just by yourself. What best worked for some of us was a screen sharing session - one person was streaming code, while others were brainstorming on ideas to implement.
Pro tip: As an organizer, you don’t want people to get stuck and get stripped of all the fun. Make sure you engage with people and make sure they reach out (or stay connected with) others that can help them - for example, ask if anyone needs help from time to time.
The hackathon was fruitful! We received positive feedback regarding the event from participants. Some of them were removing legacy context API or fixing API bugs in React Native core, some were contributing to community packages - detaching "doctor" command from React Native CLI or making sure that example app in react-native-maps is runnable.
It turns out that this hackathon, except for really obvious difference, wasn’t very different from what we had before - happy participants, new experiences gained, new joiners onboarded to Open Source, and some value sent back to the community.
I definitely recommend organizing one in your company to make people engaged during these crazy pandemic times.