My Journey as an MLH Fellow
Tags: mlhgrad, opensource, career, github
Published: 2020-08-07 13:03:25


## What is MLH Fellowship
If you haven't heard about MLH Fellowship Program yet, a brief introduction for you:

It is 3 months remote internship program introduced by a super cool organization called Major League Hacking in partnership with other organizations like GitHub, Facebook Developer Circles, etc. 
During this internship, the students (called Fellows) are placed in different groups (called Pods) consisting of 10 fellows each which contribute to the opensource projects on GitHub. Each pod has a mentor (usually industry professionals) to guide and help them during the journey.

## My Major League Hacking Experience
I had never contributed to open source projects before MLH Fellowship program (now I am a maintainer too). When I applied for the program, I thought that this program is going to be a push for me in the opensource world, but I was wrong. This internship is not just about pushing code to opensource, but it focuses on our overall development to help us in becoming industry-ready. We got fully focused guidance about the opportunities that are out there and how to grab them.

This program changed the way I used to look at the tech industry.


## Contributing To Projects
I struggled a bit in starting weeks of the program to make contributions, but my pod members and mentors helped me out and I quickly opened up my first pull request. After opening up a couple of pull requests and working on a project for a few weeks my belief that I have to understand the whole codebase for making contributions vanished.

The thing is we don't have to understand the whole codebase, and this is actually how opensource projects work. People from different backgrounds work on different parts of the software as a team. You just have to work on your part and make sure it doesn't break anything.

> Pick up an issue with a somewhat clear goal and start working on it, even if you don't understand how code works.

The maintainer of Pallets, Mr David Lord said this in his workshop during the fellowship.

One important thing: **LEARN TO DO TEST DRIVEN DEVELOPMENT.**

## Things I got to do as an MLH Fellow
Besides from contributing to opensource projects, there are dozens of perks of being an MLH Fellow. I will list a few of them:

### 1. Our Basement
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/wa1mv6fzh420nga71bv5.png)

After joining the fellowship we were invited to a Discord group which was our main source of interaction with Mentors, MLH Staff, opensource Project Maintainers and other Fellows. Using discord as a source for communication was such a great idea. Instead of getting a feeling of "work", we always felt like some hackers hanging out with each other :hearts:.

### 2. Hackathons (of course there were swags)
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/cia70oi3su34oqm0ocn4.png)

MLH hosted two great hackathons during the fellowship. In the first hackathon (Orientation hackathon), we were given a theme of making projects only by using opensource projects that we have to contribute to. The second hackathon was Halfway Hackathon in which we teamed up with different people across the fellowship and made crazy things.
You can check out all the projects and prizes on <a href="https://mlh-fellowship-orientation.devpost.com/" target="_blank">Devpost</a>.

### 3. Workshops & Talks
![Workshop & Talks](https://dev-to-uploads.s3.amazonaws.com/i/2s4vehykli73z1zkmh1v.png)

There were daily talks and workshops on different exciting topics which you were allowed to choose and attend based on your interests. Being honest I had never seen such high-quality talks and workshops ever before Fellowship.

### 4. Hacker Hangouts
![Hacker Hangout Games](https://dev-to-uploads.s3.amazonaws.com/i/fx56xkiljliy2p6cfg1f.png)

Sometimes fellowship people used to hop into voice channels to play games to know each other and to have some fun. Hacker Hangouts were our way of making connections with the fellowship people.

### 5. Pod Activities
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/q21hut4oc99qsn77o5to.png)
Pod members also enjoyed their week with other pod members with different activities like teaching each other what we have learned, having group discussions on different topics and playing some online games.

### 6. Side Programs
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/ai5635jk55cf7l8px7ij.png)

Fellows from different pods formed special teams and hosted CTF competitions open all the fellows and mentors. I came to know about CTF in this fellowship program. People are crazy about these competitions.


## Projects I Got to Work on During The Fellowship
There were mainly two projects that were assigned to my pod:
  1. **The Julia Language** - A language that is designed to bring a change in scientific and technical computing.
    {% github https://github.com/JuliaLang/julia %}

  2. **SciML** - An umbrella project containing Machine Learning and Differential Equation libraries developed completely in Julia language.
    {% github https://github.com/SciML/SciMLBenchmarks.jl %}

But since we were assigned a completely new language (and technology) that most of my pod members have never worked on before, we were allowed to make contributions to all the packages that are developed by the Julia Community and are aimed to make the language better.

After the Orientation Hackathon, I spent my week learning more about the language and its standards. I was quickly able to figure out that there is a lot of domain knowledge required specific to the packages to start making contributions in Julia.

I spent the next few days finding some packages to start making contributions. Finally, I found a project aimed at data visualization in Julia. The project was called *Plots.jl*. It is similar to the Matplotlib library in Python. I started with some *good first issues* at first and then eventually went for some serious ones.
{% github https://github.com/JuliaPlots/Plots.jl %} After a few weeks of contribution, one of my pod members invited me to start contributing to another library called *CDSAPI.jl* which was mainly focusing on building wrappers for the *Climate Data Store*.
{% github https://github.com/JuliaClimate/CDSAPI.jl %}

I and my pod member started working on the repo. We made a lot of contributions to the library and after a few weeks, we got an invitation from the Julia Climate Organization to become a maintainer for the project:
![Invitation](https://dev-to-uploads.s3.amazonaws.com/i/9klqie3bsgbobrcmerz7.png)

If you haven't worked on Julia Language before and you love to work on scientific stuff, I would highly recommend getting your hands over it.

## Final Thoughts
I have developed more skills during these 3 months of MLH Fellowship than that I have done this entire year. I am so much grateful to Major League Hacking for creating this opportunity for us, Will Rusell for making this fellowship experience so smooth, my pod mentor Mr Rohan Almeida for guiding and helping us at each point, my pod friends for handling me during this fellowship and Jacob Herrington (@jacobherrington) for encouraging me to share my fellowship experience with everyone.

**Congratulations To The Inaugural Class of MLH Fellowship! 🎉**