Skip to content

Instantly share code, notes, and snippets.

@tcharding
Last active March 16, 2022 22:44
Show Gist options
  • Save tcharding/316b0c2e121e333d7496d89c761a726a to your computer and use it in GitHub Desktop.
Save tcharding/316b0c2e121e333d7496d89c761a726a to your computer and use it in GitHub Desktop.
Bitcoin Summer of Code project description

Bitcoin Summer of Code Project Description

Project title: Foundations of Open Source Development

Description

This project is aimed at developers new to either Open Source or development in general. The aim of the project is to help the dev gain a solid foundation in best practices for Open Source development.

Open Source development is all about collaboration, as such there are a bunch of things that one can do to improve how they are able to work with other devs and how their contibutions/effort is received. Learning these skills is non-trivial since the knowledge is spread across the internet, exists as folklore, or is in the heads of experience developers. This project aims to fast track your learning. Doing so is beneficial to you as an Open Source dev and also to other more experienced devs because we as a community are all responsible for training newcomers.

What you will do

You will do tasks that are typical for a new contributor getting started on an Open Source project.

  • Basic repository maintenance tasks
    • Code improvements/refactoring
    • Improve documentation
  • Improve test coverage
  • Tackle issues that are objectively beneficial to the project

What you will learn

Soft skills:

  • How to interact with devs in an Open Source project
  • How to approach a new project

Hard skills:

  • Git workflow
  • PR/patch best practices
  • Refactoring skills, and how to get refactoring patches merged while not being a burden to the project
  • testing (unit and integration)
  • Rust programming language

Required skills

  • Basic familiarity with programming and testing (the language is not that important to the learning outcomes of this project so knowledge of Rust is not a pre-condition but will help you get the most out of this project).
  • Basic familiarity with Bitcoin (or at least an interest in learning).
  • You should have a Rust dev environment set up and know how to build and lint the code base.

Mentor

Tobin C. Harding (@tcharding on GitHub)

Difficulty

This project can be completed using only entry level technical skills since many of the learning objectives involve soft skills. However, any open GitHub issue (on projects in the rust-bitcoin stack) is in scope so this project can be as difficult as you wish.

The skills in this project are easy enough to learn but they are not necessarily entry level concepts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment