Industry mentors work with CANOSP students on various open-source projects over the course of a semester. At the beginning of the term, students get to rank the projects that they would like to work on and assigned to groups based on their preferences. Here are some project proposals that CANOSP students got to choose from:
Firefox desktop users file anywhere from 30 support tickets per day during quiet times up to 50 or more support tickets per day just after new releases at support.mozilla.org (SUMO). In the event of a Firefox incident, we can receive almost 300 tickets in one day (e.g., the add-on incident in 2019). While this is too much for staff and volunteers to tag manually, annotations provide immense value when triaging and responding to support questions.
The Eclipse OpenJ9 project is an open source runtime for running Java applications. One of the newest innovations in the Eclipse OpenJ9 codebase is a project called JIT-as-a-Service. Traditionally, a JIT compiler runs inside the JVM compiling Java bytecode to binary machine instructions to improve performance. The downside of this process is that it takes CPU and memory resources away from the application which is running - these resources are used to run the compiler. The JIT-as-a-Service project decouples the JIT compiler from the rest of the JVM so that it can be run as a service in the cloud! This new compilation model is more challenging to debug, but opens a number of exciting new possibilities.
The Eclipse OMR project is an open-source and reusable toolkit implemented in C/C++ for building runtimes. It includes code for important language-agnostic runtime components, such as a JIT compiler and garbage collector as well as diagnostic tooling and platform abstraction technologies. There have been successful proof-of-concept projects leveraging OMR to enable JIT compilation for languages such as Lua, WebAssembly, and Python and it is also used to build the Eclipse OpenJ9 JVM. The Eclipse OMR compiler has an internal language-independent intermediate representation (IR) called OMR trees. Source programs are translated into OMR trees before being processed by the rest of the OMR compiler. OMR trees are a really useful tool, but we currently do not have an interpreter to evaluate OMR trees without first translating them to binary machine instructions.
Review Board is a powerful web-based code review tool that helps developers do peer review as they write code. Code review is a standard industry practice used to find bugs,improve quality, and mentor junior engineers.
Review Board is used by thousands of software companies including Twitter, Yahoo, and VMware, as well as many open-source projects like Apache and KDE.