Sovereign Tech Fund grant applications
tl;dr Get in touch to get help with planning a project and applying for a grant of 65-300k EUR to improve the Nix ecosystem.
In my capacity as the NixOS Foundation’s NGI project manager, I help with making things happen in the Nix ecosystem that can’t be expected to be done by volunteers. Part of that is assisting with fundraisers, in close collaboration with the foundation board.
With the application deadline of 2023-07-06 approaching for the Sovereign Tech Fund Challenges, I invite developers to get in touch with me if you would like to and have the capacity to carry out a 4 months project in the areas of developer experience, security and sustainability, or documentation in the Nix ecosystem.
The call is explicitly open for individuals, companies, public institutions, or any combination of those, from anywhere around the world. The purpose of my offer here is to foster collaboration across organisational boundaries, aligned with the interests and capabilities of the community.
Possible topics to be taken as inspiration, without particular order:
- Finish the implementation of RFC 134 and thoroughly test the store layer in isolation
- Implement C bindings for the Nix store
- Formalise and document the store protocol
- Integrate the Determinate Systems installer
- Stabilise content-addressed derivations
- Refactor Hydra for developer experience to allow for continued maintenance
- Rework documentation infrastructure for developer experience
- Support for the security team and infrastructure team
- Technical improvements to Nixpkgs and NixOS
Collaboration offer
The project plan should be designed by the developers that would implement it. The budget allows for competitive rates. You know best what to do and what that costs.
I can help with getting the right people in touch with each other, especially to ensure that significant changes will get merged in a timely manner; researching and compiling existing issue reports, prior art, and other contextual information; ensuring goal alignment, avoiding or dealing with conflict of interest; assisting with developing a focused proposal, preparing drafts, and polishing the text. If the application is successful, I will help by facilitating internal and external communication and reporting, in order to protect developers from bureaucratic overhead and maximise the visibility of their work. The budget planning should of course account for that.
The resulting project could be run through the NixOS Foundation as the signing party, as we had with the Documentation project proposal for Google Season of Docs. This would further multiple goals:
- Position the Nix community to the outside world as a reliable entity that is capable of getting things done
- Foster and enable individual contributors to do meaningful work outside of commercial structures
- Ease collaboration by experts to the benefit of the community, regardless their corporate affiliation
- Grow organisational knowledge and secure resources in order to be able to repeat success stories in the future
This offer is particularly directed at long-term contributors and developers (including companies) who intend to stick around. The call reserves the option to prolong the engagement for another 4 months, and ideally we could establish continuous maintenance of the work results after the program ends.
Risk assessment
This is an invitation for speculative work, on a short notice. I’m very sorry for the rush, we’ve only started building up those structures and I’ll try my best to allow for more lead time in the future. (Feel free to forward information on funding opportunities to me as you encounter them!) Here’s an attempt to make explicit the trade-offs involved in this effort:
In my opinion we are particularly suited to fulfil the fund’s mission statement. Judging from context, the fund administrators may have in mind much more well-known projects such as Libre Office or Python, but I think we are in the position to convincingly frame Nix as a perfect candidate:
- The project has been around for 20 years, and is on an exponential growth trajectory
- We have a dedicated user base and significant buy-in from organisations
- Companies rely on the technology as a superpower, and we have public support from NLnet and the European Commission
- Sustainability is at the core of what we’re doing, and alleviating resource constraints would tangibly further our goals in that area
- The major reason why Nix is not mainstream is accessibility, and we can showcase that we know how to improve in that regard
- We have a an active developer community and managed to build up maintenance capacity, and we can demonstrably get medium-sized things done as a community-of-practice
With the NixOS Foundation as the signing party, we can also expect to improve the application’s fit for the fund’s selection criteria (page 4):
Degree of Maturity
- Is there an existing community of developers around the technology with an
established organizational model?
Degree of Sustainability
- Is there involvement from the developer community for the implementing this
project? Can it be verified that the work is desired by the FOSS project and that
there is consent?
In the – still likely – case that our proposals don’t get accepted, essentially nothing is lost. Having projects in the drawer that are ready to implement will allow reacting quickly to future opportunities as they arise, adjusting scope as needed. I will make sure the plans stay available publicly in one form or another, such that they can be picked up easily when the time comes.
Don’t worry if you can’t participate this time. The Sovereign Tech Fund also has a long-term program without deadlines. I will be available until at least end of this year, and the NixOS Foundation has the budget to continue these activities until at least mid 2025.
If it works out well, chances increase to succeed at similar applications in the future, as we will have a visible track record to refer to. Therefore I encourage everyone to share this message with anyone you think should be aware of this or would be interested in participating.
Application guide
These questions must be answered in the application form:
-
What open source infrastructure component would you like to contribute to? Please provide more details.
We can answer this question together and once for all applications. The results could also be used for front-page material or executive summaries.
-
Why is this technology critical? Please explain to us the relevance of this technology.
We can develop a generic part collaboratively, and each application have a specific part tailored to its project’s objective.
-
Please provide a brief overview over your project’s dependencies, including your own dependencies and projects that rely on your technology.
Again, we could have a generic answer and possibly a part that is particularly relevant to the application.
-
Who benefits from this technology and the improvements or contributions? Which target groups does your project address (who are its users?) and how do they benefit from the funding (directly and indirectly)?
-
How are decisions regarding this technology’s development made? Please describe the project’s governance model.
The answers here will differ for the various sub-communities around Nix, and it would be great to obtain a reasonable approximation.
-
How does this project handle security risks? Are there policies, procedures, or tools in place to minimize the introduction of vulnerabilities or undesired contributions?
-
How will you address the challenge described? Give an overview of your work and why it is significant, specifically addressing the challenge. Explain what the field will learn from your proposed work and how it contributes to the long-term sustainability of the technology.
-
How will you accomplish the work? Please provide a list of deliverables with associated effort and cost of each deliverable.
Example:
-
Deliverable 1: Re-engineer
ExampleDeveloperTool-Core
into it’s own library (74,000 Euros) (90 person days) -
Deliverable 2: Implement UI Improvements to
ExampleDeveloperTool-Core
andExampleDeveloperTool-Rust
(24,000 Euros) (24 person-days) -
Deliverable 3: Develop Python extension for
ExampleDeveloperTool
(43,000 Euros) (60 person-days)
-
-
Describe your relationship to the maintainers of this technology. Are you yourself the maintainer? Do they know you plan to do this work and do they support it? Please tell us more about how you obtained their support and how you plan to work together to make sure your contributions are accepted.
This is where we can shine.
Conflict of interest disclosure
Anyone is free to apply for these grants on their own account. Almost certainly freelancers and consultancies in the Nix space will do that.
This is an invitation to coordinate and collaborate both to avoid stepping on each others’ feet, and to do things that would otherwise be very unlikely. This effort does not fall under the scope of NGI grants, so likewise this is speculative work for me, and there was not enough time for the board to approve any details. I hope that with success and the resulting resource flow we can establish more predictable processes.
I am also on Tweag’s payroll, currently mainly working on behalf of Antithesis, who fund my activities as Nix maintainer and Nix documentation team lead as well as assorted development work, all of which happens in the open. In particular I have time allocated to help Nix documentation team and Nix maintainers to give it a try, focusing on the topics the teams deem important. These efforts are not in competition: please approach me if you want to apply for funding to work on supporting Nix and documentation maintainers.
All opinions are my own. Feel free to contact me if you have questions.
Get in touch
If you’re interested, please contact me on any of these platforms:
Join the public Matrix room to get in touch with others, brainstorm, and discuss ideas.
Check out the project proposals repository with reusable building blocks.