My Experience working for DEV in the MLH Fellowship
Tags: forem, opensource, mlhgrad, rails
Published: 2020-12-17 17:45:40

This fall, I was selected for the Open Source track of the MLH Fellowship. This article is to share my experience of getting into the Fellowship, and the work I’ve done with DEV during the Fellowship.

**What is the MLH Fellowship?** 

The MLH Fellowship is a 12-week internship alternative for aspiring software engineers. There are three tracks that aspiring developers can apply to
1. Open Source – where fellows contribute to large Open Source projects which are used by thousands of companies across the world.
2. Explorer – where fellows build personal projects  by participating in a series of hackathon sprints.
3. Externship – where fellows solve real-world software engineering problems by collaborating on projects from real companies & government partners.

Head over to https://fellowship.mlh.io/ for more details.

**Getting selected for the Fellowship**

I came to know about the Fellowship from a senior in college and being an Open Source enthusiast, I wanted to apply to it immediately. The application was a long one and asked applicants to write about their work experience, projects done, interests and the motivation behind becoming an MLH Fellow.
After my application was shortlisted, I had two interviews. The first one was an informal one whereas the second one was a technical interview where I was asked to explain the code sample submitted along with the application. I was also asked questions based on my project.
The next morning, I got an email from the Fellowship team saying I was selected for the Open Source track! :tada::tada:

**My Experience working for DEV**

On the first day of the fellowship, we were divided into pods with around 10 people and a pod leader. We had two pod meetings every week where we would discuss our progress, have show-and-tells and also have some fun activities!

The third week of the Fellowship was the most anticipated one. That was when we were going to get our Open Source projects! I was assigned DEV since my preferred tech stack was Ruby on Rails which was the backend framework of DEV. 
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/96uqpmlrgfa59hxlltzw.png)

The next few days were spent on going through the codebase and understanding the different functionalities.
Myself and the other developers working for DEV had weekly sync meetings with Ben, Christina and our mentor Chris where we would discuss the work done so far and set targets for the next week. 

During the orientation session with the project maintainers, I was asked to develop the **Podcast Ownership** feature. Podcasts are an important feature of DEV but there was no concept of podcast owners.
During the course of the fellowship, I made two major pull requests
1. Building a join table that maps podcasts and users who own the podcasts - https://github.com/forem/forem/pull/11410
2. Adding a feature for admins to add users as owners of a podcast - https://github.com/forem/forem/pull/11728

By working for DEV, I learnt how to read and understand large codebases, how to write rspec tests and most importantly how to pair-program to fix bugs!
The project maintainers and my mentor Chris, were extremely helpful and gave suggestions which helped me improve my code quality. 

**Final thoughts**

I would like to thank Swift and the entire MLH team for this amazing opportunity. This Fellowship was a great learning experience for me and I highly recommend it to anyone who’s passionate about contributing to Open Source! :smiley: