OSL Internship/Apprenticeship Program Cycle 2: II-2024 #

We are excited to kick off the second cycle of the Open Science Labs (OSL) Internship/Apprenticeship Program for 2024! This program offers a unique opportunity for individuals to join as mentors or as students/collaborators.

The Internship/Apprenticeship Program is a collaborative effort between Open Science Labs and The GRAPH Network, with The GRAPH Network providing institutional support for the program.

Please note that this internship program is unpaid, meaning there is no financial compensation for either interns or mentors. Our goal is to facilitate collaboration on projects and provide students and contributors with valuable experience in engaging with open source initiatives.

Below you'll find essential information about each role and how to get involved.

Guidelines for Mentors #

To submit a project, you need to be a core contributor or have approval from the core members of the project. This step is crucial to ensure the success of your project plan, as support from core members is essential.

In our internship, we refer to a computer program, library, or tool as a PROJECT. The tasks proposed for a project will be known as PLAN or PROPOSAL PLAN if it's still in the proposal stage.

You are invited to submit a list of ideas (proposal plans) for one or more projects you are involved with.

Project Requirements #

The criteria for project proposals are:

  • Must be open source.
  • Must have a Code of Conduct.
  • Should have a clear list of tasks for the intern.
  • Requires at least one mentor for guidance.

This format is similar to that of Google Summer of Code.

Each proposal plan should clearly define the minimum requirements, such as programming languages, libraries, and necessary concepts.

How to Apply #

We welcome applications from everyone! You can apply at OSL Internship Project Application.

A list of tasks/issues for each proposal plan can be organized as a GitHub epic (an issue with a list of linked issues), a GitHub Milestone, a PDF link, or similar formats (on GitLab, BitBucket, etc.).

You may propose one or more projects, each with one or more plans.

To get a clearer understanding of structuring a plan for your project, we recommend reviewing our template available here: Project Plan Template.

Guidelines for Students/Collaborators #

The Open Science Labs internship is open to all who are interested in contributing to open source projects.

During the application process, applicants will be referred to as candidates.

Below are the details on eligibility and application instructions.

Requirements #

The primary requirement for applicants is to be at least 18 years old.

Each project will have its own set of criteria that candidates must meet to be considered for the role.

The minimum weekly commitment for the internship is 20 hours. However, dedicating more time, if possible, can greatly enhance the experience, providing deeper insights into the project and its underlying technologies.

The internship cycle typically spans three months. If needed, it may be extended, subject to mutual agreement between the mentor and the student/contributor.

How to Apply #

Starting April 22, 2024, the Open Science Labs team will release a list of available projects. This list will be shared on OSL Discord, LinkedIn, and X/Twitter.

Candidates should review the list of projects and contact the mentor(s) for the project(s) they are interested in. Mentors will assess the candidate's suitability based on the project's specific requirements and may assign initial tasks to gauge the candidate's capabilities.

Once these initial tasks are completed satisfactorily, the mentor will recommend the candidate to officially apply to the internship program. The application results will be announced on February 14, 2024.

Recommendations for Internship Program Candidates #

Maximizing your chances in the Open Science Labs Internship Program begins with careful preparation and engagement. Here's how you can get started:

Selecting and Engaging with Projects #

  • Explore Project Options: Review the complete list of proposed projects (to be announced) to find those that align with your interests and skills.
  • Contact Mentors: Reach out to mentors of the projects you're interested in. While it's okay to explore a couple of projects, focusing on one or at most two allows for deeper engagement and learning.
  • Contribute to Projects: Before applying, try to have a few contributions accepted and merged into the project. This demonstrates your commitment and capability. Note: If you feel that your initially selected project is not the right fit, it's okay to consider another project. However, remember to communicate this change to your current mentor and express your gratitude for their time and guidance. Open communication and courtesy go a long way in maintaining positive relationships within the OSL community.

Technical Preparation #

  • Familiarize Yourself with Git: Basic knowledge of Git is essential, as all collaboration will involve using this tool. Brush up on Git commands and workflows to ensure you're ready.
  • Join the OSL Discord: Engage with the community by joining the Open Science Labs Discord server at OSL Discord. You can join specific groups through the #subs-groups channel. For any queries, the general channel is your go-to resource.
  • Participate in Study Groups: Enhance your skills by joining study groups within the OSL community. These groups are a great way to sharpen your skills and can be found via the #subs-groups channel on Discord.

Focus Areas for Early Contributions #

  • Start with Accessible Issues: Good first issues to tackle include documentation updates, writing unit tests, and fixing small bugs. These contributions are valuable and can serve as a great starting point.

Application Process #

  • Apply Once Ready: After receiving approval from your mentor, proceed to apply for the internship program at the specified link (to be announced).

How the Internship Works #

Communication Channels #

  • Student/Contributor and Mentor: Interaction should occur on the platform or channel specified by the mentor, such as Discord, Slack, GitHub, WhatsApp, email, etc.

  • Open Science Labs with Students/Contributors: Official communication will be through OSL Discord in a designated group/channel for the specific internship cycle.

  • Open Science Labs with Mentors: Communication with mentors will be conducted via email.

Recommendations for Approved Interns #

Success in the Open Science Labs Internship Program goes beyond just completing tasks. To make the most of this opportunity, we encourage you to adopt the following best practices:

Be Proactive in Communication #

  • Frequent Updates: Keep your mentor informed about your progress, challenges, and successes. Aim to provide updates once a day or every two days. Proactive communication helps build a strong relationship with your mentor and keeps your project on track.
  • Use Appropriate Channels: Avoid direct messages (DMs) for project-related discussions. Stick to the communication channels recommended by your mentor, such as specific project channels or group discussions.

Continuous Learning and Engagement #

  • Study Project Technologies: Familiarize yourself with the technologies and tools used in your project. Understanding these will boost your productivity and contribution quality.
  • Participate in Study Groups: Joining an Open Science Labs study group can enhance your skills and provide additional community support.

Document and Reflect #

  • Blog Posts: Regularly write about your learning experiences on the Open Science Labs Blog. Sharing new knowledge not only helps you organize your thoughts but also creates a valuable record of your journey for future reference.

Seek Feedback #

  • Regular Check-ins: Don’t hesitate to ask your mentor for feedback. This ensures you are moving in the right direction and aligning with project goals.

Utilize Supportive Technologies #

  • Leverage AI Tools: Consider using technologies like ChatGPT to help analyze problems, explore alternative solutions, and improve your code. These tools can also assist in enhancing documentation and blog posts.

By following these guidelines, you’ll not only contribute effectively to your project but also enrich your overall learning and professional growth during the internship.

Blogging Requirement #

During the internship, students/collaborators are expected to write blog posts detailing new features, bug fixes, or improvements made to the project. These posts should be published on the OSL Blog and can also be cross-posted to the project's blog.

Evaluations #

The internship includes two major evaluations:

  • Midterm Evaluation: Mentors assess the progress of their students/collaborators.

  • Final Evaluation: Students/collaborators evaluate their own participation, project contributions, and interactions with mentors.

Timeline #

The following is the timeline for the OSL Internship Program Cycle 2024-01:

  • April, 22: Call for Interns/Apprentices opens.
  • May, 13: Deadline for Interns/Apprentices applications.
  • May, 20: Announcement of approved Interns/Apprentices and start of bounding period
  • May, 27: Official Start Date of Internship Period; an alternative for projects not selected by GSoC to run under the OSL Internship Program with The Graph Network support.
  • July, 8: Mid-term Evaluation.
  • August, 26: Final Evaluation.
  • September, 3: Official End Date; Certification process begins.

List of Participating Projects #

Below is the list of projects participating in the current internship cycle. Each project includes key details to help candidates understand the scope and requirements.

ArtBox #

ArxLang/ASTx #

Envers #

fqlearn #

pymedx #

Makim #

noWorkflow #

SciCookie #

Sugar #

ES-Journals #

Growth-Forge #

Useful Materials and Courses #

As you prepare for the Open Science Labs Internship Program, we recommend the following resources to enhance your skills and knowledge. These materials cover a range of topics essential for success in the program:

  • Software Carpentry Lessons: Offering tutorials on Git, Bash, Python, R, and more, these lessons are invaluable for building a strong foundation in software development. Access the lessons at Software Carpentry.

  • Udacity CS212 - Design of Computer Programs: This course, taught by Peter Norvig, delves into advanced programming topics and is an excellent way to deepen your understanding of computer programs. Enroll in the course at Udacity CS212.

  • The GRAPH Network Courses: Explore a range of courses offered by The GRAPH Network, tailored to various aspects of data analysis. Find the courses at The GRAPH Network Courses.

These resources provide a great opportunity to prepare effectively for the Internship Program and to develop a broad skill set in software development and data analysis.