My MLH Fellowship Experience
Tags: mlhgrad, github, opensource, hardware
Published: 2020-08-21 19:19:13

# What is the MLH Fellowship?

According to MLH:
> The MLH Fellowship is a 12-week internship alternative for aspiring software engineers. Our programs pair fun, educational curriculum with practical experience that you can put on your resume right away. It's collaborative, remote, and happens under the guidance of expert mentors.

It's definitely all that, but to me, I saw it as the perfect excuse to start working on open source projects, something I had wanted to do for years but never found the time/motivation to make the jump into the wonderful world of open source. And MLH, GitHub, and all of the amazing partners (especially the mentors from Raise.dev!!) absolutely did that - they provided an amazing, supportive experience for everyone to start (or continue) their open source journey.

# How did I get here?

Like a lot of people, I had an internship lined up for this summer that promptly got cancelled due to the pandemic. But around that time, I saw the MLH fellowship position applied. I really didn't think I was the type of applicant they were looking for (my main major is Mechanical Engineering, not computer science, and I'm really much more interested in hardware than software), but somehow I ended up getting accepted.

# Start of the Fellowship:

Once I started, I got assigned a "Pod", a group of 10 fellows and one mentor who would work together on an assigned set of projects. And much to my delight, there was a hardware/CV pod that I got assigned to, with the projects of CircuitPython, BeagleBoard, and AliceVision, which were all super cool (especially CircuitPython and BeagleBoard, both projects I was familiar with from various personal projects). I ended up picking CircuitPython since I absolutely love the company Adafruit and it seemed like a good way to get into embedded hardware, something I had wanted to get better at.

I was definitely a little concerned about meeting my podmates and mentor over zoom instead of in person, but all my podmates and my mentor were all super awesome and friendly which made the whole fellowship super fun (huge shoutout to pod 0.1.1 and [Cory](https://github.com/flosincapite)!).

Also the first week was a hackathon, which was a great way to get to know some of my podmates better. I (along with [Karan](https://github.com/Korusuke), [Prabhanshu](https://github.com/PrabhanshuAttri), and [Ruby](https://github.com/rubywerman)) built a [zoom moderation bot](https://github.com/MLH-Fellowship/0.1.1-Teachers-Pet) that used eye tracking and mood detection to make sure all participants are paying attention.

# CircuitPython/Glider:

Once I got assigned CircuitPython (along with [Kaela](https://github.com/kpolnitz) and [Stella](https://github.com/stellaw1)), I was super excited, but didn't really know where to start. It was going to take us a little while to get some hardware to test it on, so I spent the first week or so reading through documentation and CircuitPython code, familiarizing myself with it. Also we spoke to [Scott](https://github.com/tannewt), the maintainer of the project and discussed what kind of work he thought we could work on. One project he mentioned was an app he started but hadn't worked on for a while, Glider, a code editor for CircuitPython devices that ran on mobile devices and the code would update on the board live using BLE (Bluetooth Low Energy). I thought this idea was just so cool. In my high school robotics club, I have spent a lot of time getting people teaching students and getting people working with microcontrollers, and an app like this could really be a game changer in lowering the bar for entry into developing for microcontrollers. Since the app hadn't been worked on in a while, it took a week or two for us to get the app running on my devices as well as on my hardware. 

Now we could actually start to make progress. I really didn't have too much experience with React Native and Javascript in general, but throughout the rest of the fellowship I learned and got much more familiar with these technologies. And while I may not have made as many PRs as some of the fellows in the larger, non-hardware projects, I'm still proud of the contributions I made to Glider (I added notch support, line numbers, stubbed out the ble code to greatly improve development time, and made some other random other bug fixes).

Now that the summer is ending, I definitely do not plan on stopping my work on Glider and CircuitPython, I hope to continue adding to Glider and maybe start working more on the core CircuitPython project as well.

# Final notes:

Even though I was definitely super disappointed about losing my internship, the MLH Fellowship ended up being the perfect experience for me. I learned a lot, ventured far outside my comfort zone, met a lot of super amazing people, and had a lot of fun while doing it. I thought I would be working mainly on hardware, but I ended up doing app development but still had a super amazing time.

If you're interested in this amazing experience, check out the [MLH website](https://fellowship.mlh.io/) for more info about how to apply for the Fall, Winter or Spring batches!

And here's one final thank you to Pod 0.1.1, Cory, Scott, and everyone at MLH who allowed me to have such an awesome summer!

Also you should check out my [website](https://lincolnroth.com/) or my [github](https://github.com/lincolnmroth) if you want to learn more or stay up to date on all the projects I work on.