This proposal aims to introduce 1 independent C++/Python developer into the task of resolving open issues in the main zcash repository: https://github.com/zcash/zcash/issues
It is also the proposal scope to help in the review process of open pull requests from the public list: https://github.com/zcash/zcash/pulls
Alfredo Garcia(aka: oxarbitrage) is a software developer specializing but not limited to the C++ programming language and blockchain back end development.
To get familiar with the codebase the author had worked in the following pull requests, most of them already merged:
The Arborist Team members as part of the ECC are the bigger contributors to the zcash main repository. They do an excellent job, however the number of tasks is so big and the obligations of this team are so many that issues sit undone for long periods of time. Community contributes however it is not enough.
The intention of this proposal is collaboration between me(the new proposed developer), the community and the Arborist team for faster resolution of different tasks on usability, rpc interface, error handling, test case coverage, Bitcoin code port, code cleanup, technical debt, etc that will lead to better software.
The workflow is simple as zcashd already follows open source community development standards. Issues are created by participants, some of them will be assigned to the author and it will be his job to resolve them. In general the solution will be in the form of a pull request, code will be submitted, other participants will review, changes will be requested. An ideal scenario is that the code gets merged and the issue gets closed, in other cases the review process and changes requested are not so straight forward so it will take more effort.
Arborist team need to invest time in code review submitted by this proposal at their speed and availability.
The author will collaborate with security, bugs or any other event that need immediate resources. Always available to help.
The author will be available for phone calls/chat/forum participation for planning with other teams or community members.
Living in the codebase will lead to bug finding. New issues will be opened by the author and if possible: pull requests to resolve them.
General idea is to move fast however this can not always be the case. One of the risks are blockers, this are problems that the developer is not able to resolve in an acceptable timeframe due to lack of knowledge. Communication with other engineers will be key to bypass these.
Another risk can be a task that is taking much more time than predicted initially. In the worst case an issue can be abandoned, even if so, the research will be public and should help another developer willing to give it a new try in the future.
There is a risk on working on issues that are not important any more or not a priority in the moment. Communication and planning with the rest of the team members and the community is also key here to avoid them.
A milestone with a list of issues planned to be resolved in the next period will be always available however issues can move from one milestone to the next or added to current milestone even if they were not in the list initially. Some flexibility is needed here.
The project will be on track if issues in the milestone get resolved by or with contribution of the author.
Proposal is 1 year of full time(8 hours per day/5 days a week) commitment of development. Milestones will be every 15 or 30 days.
Proposal is asking a maximum of 6000 USD per month for a total commitment. Funds go fully to the developer for development work and released by milestones.