78 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						||
name: Summer of Bitcoin Project
 | 
						||
about: Template to suggest a new https://www.summerofbitcoin.org/ project.
 | 
						||
title: ''
 | 
						||
labels: 'summer-of-bitcoin'
 | 
						||
assignees: ''
 | 
						||
 | 
						||
---
 | 
						||
 | 
						||
<!--
 | 
						||
## Overview  
 | 
						||
 | 
						||
Project ideas are scoped for a university-level student with a basic background in CS and bitcoin 
 | 
						||
fundamentals - achievable over 12-weeks. Below are just a few types of ideas: 
 | 
						||
 | 
						||
 - Low-hanging fruit: Relatively short projects with clear goals; requires basic technical knowledge 
 | 
						||
   and minimal familiarity with the codebase.
 | 
						||
 - Core development: These projects derive from the ongoing work from the core of your development 
 | 
						||
   team. The list of features and bugs is never-ending, and help is always welcome.
 | 
						||
 - Risky/Exploratory: These projects push the scope boundaries of your development effort. They 
 | 
						||
   might require expertise in an area not covered by your current development team. They might take 
 | 
						||
   advantage of a new technology. There is a reasonable chance that the project might be less 
 | 
						||
   successful, but the potential rewards make it worth the attempt.
 | 
						||
 - Infrastructure/Automation: These projects are the code that your organization uses to get its 
 | 
						||
   development work done; for example, projects that improve the automation of releases, regression 
 | 
						||
   tests and automated builds. This is a category where a Summer of Bitcoin student can be really 
 | 
						||
   helpful, doing work that the development team has been putting off while they focus on core 
 | 
						||
   development.
 | 
						||
 - Quality Assurance/Testing: Projects that work on and test your project's software development 
 | 
						||
   process. Additionally, projects that involve a thorough test and review of individual PRs.
 | 
						||
 - Fun/Peripheral: These projects might not be related to the current core development focus, but 
 | 
						||
   create new innovations and new perspectives for your project.
 | 
						||
-->
 | 
						||
 | 
						||
**Description**
 | 
						||
<!-- Description: 3-7 sentences describing the project background and tasks to be done. -->  
 | 
						||
 | 
						||
**Expected Outcomes**  
 | 
						||
<!-- Short bullet list describing what is to be accomplished -->   
 | 
						||
 | 
						||
**Resources**  
 | 
						||
<!-- 2-3 reading materials for candidate to learn about the repo, project, scope etc -->  
 | 
						||
<!-- Recommended reading such as a developer/contributor guide -->  
 | 
						||
<!-- [Another example a paper citation](https://arxiv.org/pdf/1802.08091.pdf) -->  
 | 
						||
<!-- [Another example an existing issue](https://github.com/opencv/opencv/issues/11013) -->  
 | 
						||
<!-- [An existing related module](https://github.com/opencv/opencv_contrib/tree/master/modules/optflow) -->  
 | 
						||
 | 
						||
**Skills Required**  
 | 
						||
<!-- 3-4 technical skills that the candidate should know -->  
 | 
						||
<!-- hands on experience with git -->  
 | 
						||
<!-- mastery plus experience coding in C++ -->  
 | 
						||
<!-- basic knowledge in matrix and tensor computations, college course work in cryptography -->  
 | 
						||
<!-- strong mathematical background -->
 | 
						||
<!-- Bonus - has experience with React Native. Best if you have also worked with OSSFuzz -->
 | 
						||
 | 
						||
**Mentor(s)**  
 | 
						||
<!-- names of mentor(s) for this project go here -->
 | 
						||
 | 
						||
**Difficulty**  
 | 
						||
<!-- Easy, Medium, Hard -->
 | 
						||
 | 
						||
**Competency Test (optional)**  
 | 
						||
<!-- 2-3 technical tasks related to the project idea or repository you’d like a candidate to 
 | 
						||
    perform in order to demonstrate competency, good first bugs, warm-up exercises -->
 | 
						||
<!-- ex. Read the instructions here to get Bitcoin core running on your machine -->
 | 
						||
<!-- ex. pick an issue labeled as “newcomer” in the repository, and send a merge request to the 
 | 
						||
    repository. You can also suggest some other improvement that we did not think of yet, or 
 | 
						||
    something that you find interesting or useful -->
 | 
						||
<!-- ex. fixes for coding style are usually easy to do, and are good issues for first time 
 | 
						||
    contributions for those learning how to interact with the project. After you are done with the 
 | 
						||
    coding style issue, try making a different contribution. -->
 | 
						||
<!-- ex. setup a full Debian packaging development environment and learn the basics of Debian 
 | 
						||
    packaging. Then identify and package the missing dependencies to package Specter Desktop -->
 | 
						||
<!-- ex. write a pull parser for CSV files. You'll be judged by the decisions to store the parser 
 | 
						||
    state and how flexible it is to wrap this parser in other scenarios. -->
 | 
						||
<!-- ex. Stretch Goal: Implement some basic metaprogram/app to prove you're very familiar with BDK. 
 | 
						||
    Be prepared to make adjustments as we judge your solution. -->
 |