Open Source Study Group

1. Introduction

Getting on board with a core software project or an advanced computer engineering subject may be challenging. It’s not only about the technical complexity, or the scientific foundations, but how motivation and focus are kept in the long haul to make real progress. The range of approaches to tackle this down is vast but they all have one thing in common: collaboration.

I’d like to invite you to join a study group where we learn, discuss, define goals and work together in projects and topics of common ground. We aim to advance our knowledge, publish what we do -whether it’s code, write-ups, presentations or any other artifact-, promote free software and have a good time!

The group dynamics varies according to our circumstantial motivations. We might discuss a paper or a chapter on a book, watch a presentation, perform a code walk-through, have a live debugging session, resolve a capture the flag challenge, give a talk ourselves or any other educational activity. It is also a space to report progress in our free-time projects, while getting sensible feedback, mentoring and tracking help from other colleagues.

2. How does the group work?

We are all globally distributed and communicate online most of the time: email list, instant messaging and weekly calls. Regular activities that require synchronous communication are usually coordinated for the Eastern timezone (UTC-5). It is also possible to accommodate other timezones with on-demand events. We welcome asynchronous participation as well.

The group is open and no previous knowledge or experience are required to join: just an overlap with any of our areas of interest. No commitments are expected so you can jump in, decide how many hours you spend, or leave the group anytime. As flexible as it gets.

3. What are your areas of interest?

  • Operating systems
  • Compilers and runtimes
  • Virtualization
  • Security

Some of the open source projects under scope:

  • Linux kernel
    • Operating system kernel.
  • OpenJDK
    • Java Virtual Machine (JVM), reference implementation of the Java SE specification.
  • GNU Toolchain (gcc, glibc)
    • Compiler tools and C runtime.
  • QEMU
    • Processor and peripherals emulator.

4. How can I join you?

Send me an email describing your interests and goals. We will figure out how to move on from there.