Contract work for the Next Generation Internet

The NixOS Foundation is looking for individuals willing to do packaging work for the Next Generation Internet (NGI) initiative. NGI is a program funded by the European Commission (EC) to promote innovation on the Internet. It provides grants to hundreds of Open Source projects to advance the state of the Internet in areas such as Privacy Enhancing Technology (PET) and Search and Discovery. Grant recipients include projects such as Jitsi, ARPA2, WireGuard, NoScript, Tor Hidden Services, GNUnet, and even projects in the Nix/Guix communities such as @ryantm’s updater bot, @samueldr’s mobile NixOS project, @qylissSpectrumOS and GNU Mes.

The NixOS Foundation is a member of the consortium that manages and supports NGI. Our task is to provide packaging and reproducibility for NGI projects. The goal is to ensure that software created by NGI projects can be used both now and in the future, for instance by providing Nix expressions or NixOS modules for these projects. To this end, the NixOS Foundation has received a €200K grant, so we are now looking for individuals to help us achieve this goal.

Who are we looking for?

Per EC rules, we can only use individuals, not companies, and only on an hourly basis. That is, we do not employ you. Instead, you send us an invoice upon completion of packaging work. Since you’re not an employee, your working hours are entirely up to you. We cannot guarantee a fixed numbers of hours. Therefore this work may be best suited for people who want to have a side income such as students. (For more details, check out the template contract for packagers.)

The ideal candidate is somebody who is interested in reproducible builds and has demonstrated knowledge in the Nix community; people who are curious to learn new technologies and have an independent drive.

What does the job look like?

Because there is a wide variety of projects within NGI, there is also a wide variety of software artifacts that will need packaging: “normal” packages, daemons, web services, Android apps, kernel extensions, and so on. As much as possible, we want to package these with Nix/NixOS in a binary-reproducible way. The wide variety of projects means that you will come across many different languages and technologies. While most of the work is about packaging individual NGI projects, there are also opportunities for making more fundamental improvements to Nix/NixOS/Nixpkgs to support NGI projects as a whole (e.g. to improve Android support).

How much does it pay?

The hourly rate is a country-dependent market rate per NGI/EC rules.

How to apply?

Please send use an email to with a bit of intro and credentials and explain us what interests you in this position (e.g. how much time you have available).


Am I correct in assuming that this is only for EU residents?

Hi @amanjeev, no it’s not. You can join even if you are not EU residents

1 Like

Thanks a lot for the interest in the work. We have selected an initial group of 9 packagers at this point. Please do not send any more applications from now on.

We are hoping to scale up the packaging effort in the next year, so please keep checking the Jobs section of Discourse, as we will post there when we are looking for additional packagers!


Just randomly came back to this browser tab (after many month…) and wondered about the following paragraph in the template contract:

A. Packager commits to publicly report on the progress made within the project at least
every two weeks (more often is never a bad thing) and will contribute to a public status
page for NGI0 to keep the wider internet community informed.

A quick search on the NGI0 page (and this discourse) didn’t show up any of those. Can you maybe link to them? I’d be interested in knowing how the work is progressing.


I, too, am curious about progress reports from contributors.


@andir We removed that clause from the packager contracts since it seems unnecessary to have packagers make public reports, given that the result of their work is already public. (They of course do report their hours in our internal tracking system, but that repository is not public.) NGI projects are packaged as flakes, which can be found here: We’re thinking about adding a flake indexing facility to to make them easier to find.

1 Like

I know it’s off topic, but have you considered a sort of meta-flake as an index. Essentially a flake that simply packages a reference to other flakes. That way we can search available flakes via nix search github:metaflake-uri without having to add everything to the flake registry.

@nrdxp We’re thinking about adding the ability to search for flakes to Once that’s implemented, I guess we could also have a CLI interface to do searches.


How do you determine what packages to be added first ?
Can you also include something like a cross platform language / package dependency description ? This would help Nix in the long run (by allowing to automatically generate .nix files from it) as well as all other distros.

1 Like