Why you (yes, you!) should take part in a hackathon
Posted on Tue 25 August 2020 in FOSS
Two weeks ago I attended Oceanhackweek 2020. As an oceanographer by trade and free software nerd by heart, I loved the idea of an event that combined the two. I looked forward to learning from other oceanographers and coders, and perhaps giving something back to the free software community.
What is a hackweek/hackathon?
If you have yet to dip your toes in the wonderful world of free software, the concept of hacking may be alarming. Aren't hackers the bad guys in black hoodies and guy fawkes masks trying to steal my tesco clubcard points?
If this is the image that "hack" conjures in your mind, don't be alarmed! Hacking is not a selfish, destructive criminal activity. Definitions vary, not least because many hackers dislike top down definitions of anything. In my own opinion, hacking means working inventively to create new, useful functionality from existing tools and systems. Hacking commonly involves a strong co-operative element, often with people you have never met. Hacking is inventive, ingenious and fun. Think more hackspaces or hacker culture and less Hollywood hacking of mainframes.
In a hackathon, you work with other like minded people to make cool stuff. This can be a brand new idea, picking up a neglected project, or adding functionaility to an existing popular piece of software (this is often referred to as a sprint). In the context of a hackweek, it's about team work.
How about Oceanhackweek?
As the name suggest, Oceanhackweek (OHW) is an event specifically geared towards oceanographers of all stripes. You will encounter physical, chemical and biological oceanographers, ocean archivists, ocean-oriented civil servants, students, lecturers, self taught programmers and more. OHW is open to applicants from around the world (We had participants from 6 continents this year). The only requirements are that you have a reasonable grasp of a free software language (currently Python or R), and some prior experience with oceanography. For more info see the OHW FAQ for applicants
OHW aims to fill the gap between the traditional teaching focused summer school and a pure working hackathon. To this end, OHW20 balanced 3 hours of teaching each day with free time for participants to work on a collaborative project of their choice, supported by expert instructors. This approach helped to avoid the zoom fatigue we have all experienced after a day full of video chat meetings. The taught sessions were real masterclasses in their topics: fast paced and information dense.
The real benefit of OHW20 for me was the collaborative project. I started work on a project to fetch glider data from ERRDAP repositories with simple Python calls. This was the first time I've taken part in a collaborative coding project and it was great. I really enjoyed working with github issues and pull requests. This allows you to contribute by suggesting improvements, finding bugs, making tests, writing documentation or implementing new features without concern for duplication of effort.
Best aspects of OHW20
- Expert teaching I learned a lot about free software and oceanography during OHW20. I still have about 20 tabs of interesting topics open. The instructors really know their stuff and the guest lectures were great.
- Asynchronous working Collaborating through github we were able to work together across time zones and schedules. I was particulalry thankful for this joining a Pacific Time event from the UK (8 hours ahead!)
- Horizontal structure OHW20 made great efforts to remove any barriers to entry by junior participants. There were no titles or positions beyond instructor and participant. The code of conduct was presented on Day 1 with additions and edits actively encouraged from all participants. During the hack projects, we worked alongside instructors, sharing all duties as equals. These practices really help to encourage contributions, especially from ECSs with little experience of scientific coding.
- Open sharing of resources All the teaching materials from OHW20 are aveilable on github with videos uploaded to youtube within hours of recording.
- Useful projects The projects are a core part of OHW. These are no hello-word's or make-work They are useful, innovative projects to improve our understanding of the oceans. You can check out the list here. It was particularly good to see projects form previous years being picked up and improved on.
- Self organisation After a short pitch from the organisers, participants pick whichever project they want to contribute to. Within projects you organise as a team to delegate and solve issues. This allows every participant to work on whichever aspect they are most competent/interested in.
- The people behind the projects A glance at the list of organisers will show a parade of names you've seen on papers, github repos and twitter accounts. OHW is a great opportunity to meet the people behind the tools we use. 10 minutes talking to the person who wrote the code >> 2 hours of puzzling through it.
- Focus on the future OHW presents great tools, techniques, organisations and ideas that will shape the future development of oceanography. As we move into an era of big data, and the crisis of reproducibility looms, these will only become more important.
During OHW I felt like I was working with people I understood, on problems I cared about. I learned from disciplines I never would have searched for on my own, the sessions I would have skipped at a conference: ecosystem modelling, machine learning, satellite oceanography. Much of the time, scientist in these disparate fields are grappling with the same issues I am. Where do I find data? How can I combine it? How should I process it? Where should I store it? These are common problems, OHW can help you discover and implement good solutions.
Our work in increasingly dependant on a stack of free software. We all need to work to make sure that the science we do is repeatable, replicable and reproducible. OHW supplies us with the tools we need to do this and, more importantly, it empowers us to pick up those tools and get to work. Joining a hackweek can help us to ignore those voices at the back of our heads that tell us we're too junior, too inexperienced or too ignorant to contribute to the grand projects of scientific software. We're not. If you can use git and a scripting language, you can do this.
If you get the chance to attend a hackathon, grab that opportunity with both hands.
The bottom line
After a year or so of dabbling around the edges of free software, writing my own basic programs,and porting other people's stuff to Python, OHW is the first time I've felt like I am really contributing to the free software community. This has been a great experience and I plan to use what I have learned to help others at my institution and further afield. Hacking, much like science, is a team effort where we all benefit from greater sharing and co-operation.
I would encourage any oceanographer who wants to better understand the computational tools of our trade, or learn how to give back to the free software community to take part in OHW. The pace was great, the online delivery was seamless and the people were awesome. I hope the organisers are able to run the event again in future years. There is a real demand for more free software and the expertise to operate it in oceanography.
If you want updates on future OHW activity, You can follow them on twitter or sign up to their low volume mailing list. I am also happy to answer questions about my experience of it.
How does such a great event come together to provide a perfect venue for learning and hacking? I assume it takes a lot of effort, organising, and ingenuity from the committee (once more a massive thank you, you're all awesome). But I suspect Filipe would say it's