Check your eligibility!

Before you apply for an Outreachy internship, you must first check your eligibility.

Check Eligibility

Until you verify your eligibility, some information about the internships will be hidden, including full project details, mentor contact information, and how to make contributions to internship projects.

Why apply to Outreachy? > Check Eligibility > Find a Mentor and Internship Project > GNU Guix

Outreachy internships

What is Outreachy?

Outreachy is a program that provides internships for people from groups traditionally underrepresented in tech. Interns are paid a stipend of $5,500 for a three month internship. The internship is completely remote, and interns come from around the world.

Interns work one-on-one with a mentor from Free and Open Source Software (FOSS) communities. The internship projects range from programming, user experience, documentation, illustration and graphical design, to data science.

Interns have $500 travel stipend available to use to attend tech events. Many interns use the travel stipend to network and find a job. Interns often find employment after their internship with Outreachy sponsors or in jobs that use the skills they learned during their internship.

For more information on who is eligible for Outreachy internships, see the eligibility page. A description of the application process can be found on the application instructions page

Outreachy Timeline

Feb. 12, 2018Outreachy application period opens and applicants make their required contributions to projects
March 22, 2018Outreachy applications due for GNU Guix
April 23, 2018Interns are publicly announced at 4pm UTC on the alums page
May 14, 2018 to Aug. 14, 2018Internships period

Outreachy Internships with GNU Guix

GNU Guix is a Free and Open Source Software (FOSS) community that is offering internship projects through the Outreachy program.

Internships with other FOSS communities can be found on the the current round page.

What is GNU Guix?

GNU Guix is a functional package manager written in Guile Scheme.

GNU Guix is a package management tool for the GNU system. Guix makes it easy for unprivileged users to install, upgrade, or remove packages, to roll back to a previous package set, to build packages from source, and generally assists with the creation and maintenance of software environments.

Guix provides a command-line package management interface (see Invoking guix package), a set of command-line utilities (see Utilities), as well as Scheme programming interfaces (see Programming Interface). Its build daemon is responsible for building packages on behalf of users (see Setting Up the Daemon) and for downloading pre-built binaries from authorized sources (see Substitutes).

Guix includes package definitions for many GNU and non-GNU packages, all of which respect the user’s computing freedom. It is extensible: users can write their own package definitions (see Defining Packages) and make them available as independent package modules (see Package Modules). It is also customizable: users can derive specialized package definitions from existing ones, including from the command line (see Package Transformation Options).

You can install GNU Guix on top of an existing GNU/Linux system where it complements the available tools without interference (see Installation), or you can use it as part of the standalone Guix System Distribution or GuixSD (see GNU Distribution). With GNU GuixSD, you declare all aspects of the operating system configuration and Guix takes care of instantiating the configuration in a transactional, reproducible, and stateless fashion (see System Configuration).

Under the hood, Guix implements the functional package management discipline pioneered by Nix (see Acknowledgments). In Guix, the package build and installation process is seen as a function, in the mathematical sense. That function takes inputs, such as build scripts, a compiler, and libraries, and returns an installed package. As a pure function, its result depends solely on its inputs—for instance, it cannot refer to software or scripts that were not explicitly passed as inputs. A build function always produces the same result when passed a given set of inputs. It cannot alter the environment of the running system in any way; for instance, it cannot create, modify, or delete files outside of its build and installation directories. This is achieved by running build processes in isolated environments (or containers), where only their explicit inputs are visible.

The result of package build functions is cached in the file system, in a special directory called the store (see The Store). Each package is installed in a directory of its own in the store—by default under /gnu/store. The directory name contains a hash of all the inputs used to build that package; thus, changing an input yields a different directory name.

This approach is the foundation for the salient features of Guix: support for transactional package upgrade and rollback, per-user installation, and garbage collection of packages (see Features).


Note that Guix can only be used on GNU+Linux systems, not on Mac or Windows machines.

How do I get help?

Each FOSS community has one or more coordinators, who help answer applicants' questions and connect them to project mentors. This community currently has no approved coordinator, or you have not filled out the eligibility check and contact information is hidden from you.

Each project will have one or more mentors. Outreachy applicants work one-on-one with mentors to complete contributions to the project during the application process. Only applicants who make a contribution to a project will be eligible to be selected for an internship. Interns then work directly with the mentors on their project during the three month internship period.

Each project may have different communication channels, issue trackers, and different ways to make a contribution. The project mentor is your guide to introduce you to the project community and contribution norms. Mentors are here to help answer your questions, encourage you, and help you when you get stuck.

Open Projects

Mentors for these projects are willing to work with new Outreachy applicants. Please note that as the round goes on, mentors may close their project to new applicants because they are already working with many applicants. Make sure to contact a mentor and start your contribution as soon as possible!

Enhance Guile tools for the Guix package manager.

Project details are hidden, see message above.

Improve the user experience for the "guix package" command line tool

Project details are hidden, see message above.