How I improved during the MLH Fellowship
Tags: mlhgrad, opensource, reactnative
Published: 2020-08-28 17:53:42

It's been a week since I became an alumna of the [MLH Fellowship](https://fellowship.mlh.io/) and I can say that I've had enough time to properly reflect over my experience. Looking back I realize how I have significantly grown as a person because of the people I met during the fellowship and the ample experiences I had. I will not be exaggerating if I say that this has been the most impactful experience I have had ever since I got into college. It has certainly made me a better software engineer. 

I cannot talk about how I grew up in this time without acknowledging the reason why it was possible. My whole pod and our mentor, [Jani Eväkallio](https://twitter.com/jevakallio), had a big role to play in the whole deal. All these people are so amazing at whatever they do and so helpful that I probably cannot find the right words to express it. Everyone collectively built a very safe space for each one of us to talk freely about how we were feeling every week. I have received immense support and encouragement. Moreover, I have formed relationships that are really precious - a group which is always up for a nice game of Skribbl.

{% twitter 1297536570002563073 %} 

A big big shout out goes out to the whole MLH crew for pulling off this fellowship in merely 4 weeks! 

Sometimes listicles are the best to get a point through, so that is just how this is going to go. Things I learnt or have improved in because of the fellowship: 

### 1. Open Source Contributions 
I first thought of contributing to open source software a year ago and honestly I found it very daunting. Back then, I would have never believed that my first big open source contribution would be to **React Native**. My team worked on the **React Native Tester** which is used in CI to test changes made to react native. It is also meant to showcase the functionality of all components and APIs offered by react native. Fortunately, it did happen and I am so grateful for that experience. The guidance provided by my mentor, Jani, and project maintainer, [Rick Hanlon](https://twitter.com/rickhanlonii), made the learning experience very smooth. Open Source Software is generally supported by a strong community so all one needs to do to start is ask. Ask for help and some person in the community is going to come up and help you out in the process.

This fellowship application process was a little unconventional compared to other Open Source programs such that it did not call for any contributions before the program began. Instead the first week of the fellowship was devoted to make all fellows familiar with the projects their pod will be working on. And what better way to do it than a hackathon, a twist that I should have expected given that it is organised by MLH :wink:. It was really how we became users of the projects we were contributing to. My takeaway from the event was simple: I can never contribute to a project without ever having used it (a big mistake that I was making before). 

### 2. Note Taking
I am or was a person who thought that you could just listen very carefully to what the other person was saying and you would remember it all. Probably like the other people out there who realized that this wasn't the case, I also realised it during the fellowship. One **cannot** avoid note taking especially when it comes to big teams. When you have 6-8 people in your team with their different opinions about what needs to be done, it is crucial that one takes notes to simplify things and make decisions. Also, our whole team realized how it was important - very important -  to have an assigned note taker for all meetings to avoid the bystander effect. 

Apart from meetings, notes also became extremely helpful while working. In the beginning of the fellowship, I was rather reluctant to ask questions, mostly because I was afraid I might ask a stupid one. Thankfully I got called out for it. Inspired by my teammates, I started writing about the issues I was facing and everything that I had already tried out to resolve them. This practice made me ask better questions, because I was putting in the work to help myself first. It also made it easier to get help as other people now had a better idea of everything that wouldn't work. 

Thanks to [Foam](https://foambubble.github.io/foam/), this whole process of note taking became a lot easier!

### 3. Conflict Resolution in Teams 

Big teams & different opinions inevitably lead to conflicts. Working with the RNTester team was a great lesson on how to actually resolve conflicts (reading about it and doing mock workshops is just not going to cut it when it comes down to the real deal). What ended up really helping us was having basic principles in place for the whole team and project so that we could discard any idea that clashes with them. Setting these principles up is a nuanced process in itself but it sets a very good pretext for all future team interactions. We were all college students with minimal experience in big team settings and this really stands out as an important lesson to me. Shout out to the RNTester team for weathering the storm :heart:.

### 4. Work on Knowledge Portfolio 
Prior to this fellowship, I wasn't very actively looking into the new frameworks or technologies that were popping up. This meant I was relying majorly on other people to update my knowledge. In the past 12 weeks, this is definitely an error that I have tried to rectify. I am more actively working on expanding my knowledge portfolio and read about new stuff that keeps on popping up every day. Some really cool stuff is happening in the industry today and there are really so many hidden gems. Libraries and frameworks that have great potential but are just not mainstream today. Staying on top of things lets you find these little gems, nothing short of a treasure hunt. 

### 5. Dev Twitter 
I was clueless about Twitter. I thought only crazy controversies happened over Twitter. A round table discussion and one month on the platform did change my outlook on the whole thing. It can be a super fun and helpful place for developers if you just follow the right people. Also, it really does help with the whole staying on top of new tech. Easy, fun and borderline addicting.

{% twitter 1288473843594485761 %} 

### 6. Git Workflow
Needless to say, contributing to open source certainly teaches one a lot about how to use git. Especially when there are a couple of people working on the same forked repo. But my improvement cannot just be attributed to these contributions. Courtesy to the Halfway Hackathon, my team ([E-Liang Tan](https://twitter.com/taneliang), [Jessie Anh Nguyen](https://twitter.com/jessie_anh_ng) and [Saphal Patro](https://twitter.com/saphalinsaan)) worked on a CLI tool that enables users to stack pull requests on GitHub which taught me a lot about the git workflow! We also went ahead to continue developing this hackathon idea and you can check our [project](https://github.com/taneliang/stack-attack) out if you have ever wanted to stack PRs on GitHub. 

<figure class="image">
  <img src="https://dev-to-uploads.s3.amazonaws.com/i/shmh5l8bm9dlw0tyk83l.gif" alt="Stacking pancakes to show stacked PRs">
  <figcaption>Stack Attack in a nutshell</figcaption>
</figure>


The fellowship [application](https://www.tfaforms.com/4844143) is open for **Fall** , **Spring** and **Summer**, so do give it a try! E-Liang and I had a small conversation about our experience at the MLH Live Stream which you can watch [here](https://www.youtube.com/watch?v=SsAtousHWWE&feature=youtu.be) to know more about our experience!