Internship applications are now closed

All application deadlines for listed projects have passed. At this time, we are no longer accepting final applications for internships, and you have not submitted a final application. We encourage you to sign up for the announcements mailing list to get an email when the next round opens.

Internship applications are now closed

All application deadlines for listed projects have passed. At this time, we are no longer accepting final applications for internships, and you have not submitted a final application. We encourage you to sign up for the announcements mailing list to get an email when the next round opens.

Why apply to Outreachy? > Start your initial application > May 2018 to August 2018 Outreachy internships > 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 most GNU Guix projects
March 29, 2018Some Outreachy GNU Guix projects have a late application deadline
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.

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 start your required contribution as soon as possible!

Each project mentor is looking for applicants who have different skills. Sometimes a skill is a hard requirement for an applicant to have. Other times, a mentor might prefer an applicant to have a skill, but they would accept an applicant as an intern who didn't have that skill. Some skills are "nice to have" meaning it would be great if applicants have this skill, but the mentor doesn't have a strong preference.

Each project will require a different level of experience with a particular skill. Experience levels are indicated with numbers:

Mentors are willing to teach this skill to applicants with no experience at all
Applicants should have read about the skill
Applicants should have used this skill in class or personal projects
Applicants should be able to expand on their skills with the help of mentors
Applicants who are experienced in this skill will have the chance to expand it further

GNU Guix extended deadline project #1

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

Project details are hidden.The details may be hidden because you are not logged in. See the message in the box at the top of the page.

This project had a low number of applicants

Deadline was March 29, 2018 record your contributions and create a final application.

Skill description
Impact on intern selection
Experience Level
Able to read a small subset of C++ (easy)
Preferred
Ability to record changes with the version control system "git"
Preferred
Know the syntax of Scheme (easy)
Nice to have


GNU Guix project #2

Enhance Guile tools for the Guix package manager.

Project details are hidden.The details may be hidden because you are not logged in. See the message in the box at the top of the page.

Deadline was March 22, 2018 record your contributions and create a final application.

Skill description
Impact on intern selection
Experience Level
Scheme & functional programming fundamentals
Preferred
At least one build tool or language specific package manager
Preferred
Basic operations using Git version control
Preferred
Guix user experience
Nice to have


Open Projects


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

Deadline was March 29, 2018 record your contributions and create a final application.


Enhance Guile tools for the Guix package manager.

Deadline was March 22, 2018 record your contributions and create a final application.