Hackathons are interactive sessions during which participants contribute to the development of a project or resource using their own laptops. Hackathons must be a half day (180 minutes split either side of a break).

The objective of a hackathon is to help attendees get involved in the development of a project. Due to time limitations it is expected that Hackathons will be best suited to well established projects with well defined development practices and tasks to be completed. Be prepared to deliver an overview of a project, provide targeted issues to work on and support attendees to begin contributing. Whilst attendees may not be able to fully complete a contribution to the project within the event they should leave with the skills and knowledge to be able to do so.

Note that attendees are expected to be able to participate using their own laptop.

Planning your submission

Hackathons are focused on engaging potential new contributors to a project. The majority of the session should be used to support attendees in hands-on work to create contributions to the project.

Strong candidate projects for Hackathons could include:

  • Open-source technical projects of sufficiently broad interest to the RSE community.
  • Open community resources (e.g. The Turing Way).

Consider the following details:

  • Title: Make this informative and eye-catching as this will be used in the conference programme.
  • Audience: Would your target audience be required to have any prerequisite skills/background knowledge e.g. knowledge of a particular language or software package?
  • Supporting attendees: How will you support attendees whilst they hack? How many helpers/project developers will be available during the hackathon. What guidelines, policies and documentation does/will the project provide for contributors?
  • Outcomes: How will your attendees benefit from your session? What do you expect them to gain/learn?
  • Hybrid support: At this time we are unable to commit to supporting remote participation at hackathon sessions. While we will continue to explore potential options for providing a hybrid hackathon experience, the ability to support remote participation will not be a factor in selecting in-person hackathon sessions.
  • Accessibility: We have a complete accessibility guideline set to ensure you make your hackathon successful. Some key pieces to consider are:
    • Have you thought about how accessible your session will be to a diverse conference audience (i.e. different skill sets, different work backgrounds)? 
    • Visually, have you considered the colors chosen for any material to be projected,  as well as the shape and size of graphics and fonts (including e.g. screens of code)? 

You can also use automated accessibility checking tools to help ensure that you haven’t missed anything.

Resources and accessibility needs

If you require particular resources or accessibility needs for your hackathon (e.g. if you have particular requirements re. network bandwidth or firewall exceptions) then please indicate this in the submission.

Wider dissemination after the conference

All materials will be published on the conference website, and will be shared under the Creative Commons Attribution (CC BY) licence unless an alternative open licence is agreed in advance with the conference committee. Recordings, subtitles, slides, and any additional Q&A will also be made available via Zenodo.

Mentorship

We are happy to provide mentors who can help you put together your session. Mentors can help by reviewing draft slides, reviewing issue backlogs, reviewing adherence to accessibility guidelines, advising on hybrid delivery etc. You can let us know if you would like a mentor if your submission is accepted.

Example Abstract

This Hackathon will be run for the XXX software package. The XXX package is widely used by the research software community because of its unique ability to generate novel algorithms. XXX is primarily written in Rust with Python bindings and a high-level Python interface.

XXX is open-source and has been under development for 5 years by a dedicated team of core developers. Whilst this has proven fruitful for the early stages of development, challenges are emerging as the code base grows in complexity. Some of the core developers are not able to dedicate the same level of resources as previously and broadening the base of contributors is vital for the long-term sustainability of the project.

 XXX is preparing a new major release focussed on adding meta-algorithm functionality. An initial implementation is in place however further refinement and supporting functionality is needed. The hackathon will provide a range of issues for attendees to work on to support the planned release. The available issues will span a range of complexities and cover both the Python and Rust portions of the code base.

The XXX project provides detailed developer documentation, issue and pull request templates, a mature continuous integration system, and a clear code of conduct. All contributors of merged pull requests will be appropriately acknowledged as part of the next release.

Audience

We anticipate this Hackathon being of general interest to the RSE community due to the wide, domain spanning applications of XXX. Python is a widely used programming language and it is anticipated that most attendees would contribute to the Python interface. There is growing interest in Rust from the research software community and this Hackathon represents an opportunity to gain familiarity with a mature and performant code base. Existing and potential future users of XXX may also wish to use this session to gain greater familiarity with the package internals in order to make more effective use of it in their own work.

Technical Plan

XXX only supports development on Linux. We will therefore make available a Docker image providing all necessary requirements. Attendees will be provided with instructions on how to use this image with the Dev Containers extension of VS Code for a frictionless development experience. Linux users may choose to use the same setup or may use the project’s detailed documentation to create a development environment with their preferred tooling.

Activities during the hackathon will be coordinated via GitHub using Issues and a Project board.

Attendees and Helpers

Three core XXX developers code are available to attend the conference. We therefore anticipate being able to support ~30 attendees.