Skip to content
Hauke Petersen edited this page Feb 20, 2015 · 20 revisions

Describe your organization.

The RIOT community gathers open source developers world-wide, who develop and maintain RIOT, an open source operating system that can run on tiny communicating devices typically found in the Internet of Things (IoT). Such tiny IoT devices often have CPU and memory resources so constrained (e.g. a few kilobytes of RAM and ROM), that Linux cannot even hope to run on them. In this case: consider running RIOT, the most exciting OS for Internet of Things devices.

RIOT enables a programmer to develop applications on IoT devices with zero learning curve, with basic knowledge of C and Linux system programming. The long term goal of the project is to simplify the programming of constrained IoT devices by providing a de facto standard development environment for these devices - similarly to Linux on PCs and Android/iOS on mobile devices.

The RIOT community gathers 50+ contributors from all over the world, from both academic and industrial backgrounds. We put great emphasis on transparent processes and open development. The development processes are built around git, GitHub and open forums (mailing lists discussions which gather hundreds of people). Through these open processes, newcomers are welcomed, guided, and actively encouraged to get involved.

Why is your organization applying to participate in Google Summer of Code 2015? What do you hope to gain by participating?

Our long term goals are achievable only if our community grows in size (RIOT is still a very young community). We believe that the GSOC 2015 is a perfect way to attract some of the best students from all over the world, which will contribute not only code in the coming months, but also, for some of them, new permanent members to the RIOT community. By offering students to get involved with state-of-the-art IoT technology we hope to not only provide them with a lively experience while the project lasts, but to draw their long-term interest in the project.

Has your organization participated in past Google Summer of Codes?

No.

Have you applied in the past? If so, for what year(s)?

Yes. 2014.

What Open Source Initiative approved license(s) does your project use?

LGPLv2.1

What is the URL for your Ideas list?

https:/RIOT-OS/RIOT/wiki/GSOC-Idea-List

What is the main development mailing list for your organization?

http://lists.riot-os.org/mailman/listinfo/devel

What is the main IRC channel for your organization?

#riot-os at irc.freenode.net: irc://irc.freenode.net/#riot-os

Who will be your backup organization administrator?

Hauke Petersen <hauke.petersen AT fu-berlin.de>

How many potential mentors do you have for this year's program? What criteria did you use to select them?*

Mentors are chosen among the most active developers in the RIOT community. Among several tens of contributors, a dozen have expressed their willingness as potential mentors. They have experience working in various (open source) software projects in both academic, and industry contexts, as well as experience with mentoring students.

The mentor for a specific project is chosen based on the technical focus of that project, to ensure the best support to the participating students. We believe that this way we can speed up the introductory phase for participating students and that we can make them quickly 'feel at home' in the community - leading to better overall experience.

What is your plan for dealing with disappearing students?*

From experience, we see two main reasons for students disappearing: (i) students under-estimate the workload and drop out of the program due to insufficient time or (ii) students feel that they are not up to the task, that they are left alone, or that they lack technical knowledge, all leading to a lack of motivation.

To counter (i) we make it mandatory for students to state an explicit commitment of weekly hours he/she is planning to spend for the project, and to state commitments aside of GSOC. This way we can make sure that students do not start with wrong expectations into the project that subsequently lead to frustration and quitting.

To counter (ii) we make it mandatory for students to continuously interact with the community via GitHub, IRC or mailing list discussions. In particular, we make it mandatory for students to discuss their project ideas with the RIOT community, prior to the programs start, as a necessary part of their application process. Moreover, for the program duration, we ask of students to share their implementations in small parts as pull requests on GitHub, that are commented on and discussed by community members.

Furthermore, to counter frustration caused by missing technical knowledge, we make sure that the assigned mentors have a deep understanding of the technical foundations of the mentored projects. We believe that experience for participating students can be even more increased by giving them the opportunity to gain a deep understanding of their projects backgrounds.

Finally, to make sure students do not feel 'left alone', we mandate weekly status calls between students and mentors. This way organizational and technical problems can be addressed before they get in the way of having fun coding and enjoying the program.

What is your plan for dealing with disappearing mentors?*

Our strategy for disappearing mentors is two-fold: (i) we will provide a "backup mentor" for each project and (ii) RIOT development process explicitly involves the community, primarily via interaction through our dedicated open forums (IRC, GitHub and mailing list discussions). In case of a (temporarily) disappearing mentor the backup mentor can take over any time. By explicitly involving the community, students are further supported by community members.

What steps will you take to encourage students to interact with your project's community before and during the program?*

We use GitHub, and one advantage of this platform is that the current flurry of activity in the RIOT community (a relatively 'young' community) on this platform is clearly visible and may thus be attractive for students.

We make it mandatory, within the application process, for students to engage the RIOT community before the program starts, to discuss their project ideas and make themselves known to the community members. We also make it mandatory to have a continuous interaction with the community during the program duration, through our dedicated open forums (IRC, GitHub and mailing list discussions). In our experience, this type of interaction with the RIOT community is inclusive and the sense of real-time interaction is often quite motivating. Newcomers feel that they can make a difference, that they are an important part of our community, which is open for creative contributions.

Are you a new organization who has a Googler or other organization to vouch for you? If so, please list their name(s) here.

The veteran organization ns3 (http://www.nsnam.org) vouches for RIOT.

What will you do to encourage your accepted students to stick with the project after Google Summer of Code concludes?*

Many of the projects we propose are explicitly the first phases of longer terms projects that the students may choose to contribute to after GSOC is over. This in itself will be a motivation for students to continue to contribute outside of the context of GSOC 2015. We will encourage students to consider their project not just as a mere "summer job", but as first steps in an exciting developer community that is ready to welcome them. We will highlight that they doing something that is not only interesting for them personally but also useful for others. Moreover, the procedure to contribute to RIOT is designed to be as transparent and inclusive as possible. Our process naturally involves students with the community before and during the project, and therefore, the chances that students stick with the community after the projects are increased.

Clone this wiki locally