Hello, my name is Aziz and I’m an undergraduate student pursuing a double degree program at Duke Kunshan University and Duke University. My major is in Environmental Science with a focus on Public Policy, and I am also working towards completing the coursework requirements for a minor in Computer Science.

I participated in the Open Source track of the Major League Hacking (MLH) Fellowship. Through the program, I worked on the open source project Node.js with Jordan Harband from the Open Source Security Foundation.

Leveraging the Fast-Track Hackathon Prize

A year before the MLH Fellowship, I started participating in MLH supported university hackathons. One of the hackathon prizes I received was a fast-track pass through the MLH Fellowship application process which empowered me to apply.

The first time I was interviewed, I got waitlisted for the program. Fortunately for me, I had another fast-track opportunity due to another hackathon win! Before I interviewed this time, I attended an information session to get advice for improving my application. Finally, I got accepted and was matched to the node.js project to work under the mentorship of Jordan Harband at the Open Source Security Foundation.

My Average Day as an MLH Fellow

Through the MLH Fellowship, I contributed to the plugin for JavaScript linting tool ‘eslint-plugin-import’, which has over 15 million weekly NPM downloads. My mentor, Jordan, was the maintainer of the open source software. 

During the program, I would go over GitHub issues that were labeled by Jordan as something legit and important like bugs or important new feature requests. For example, there was a big performance issue for the specific linting rule within the plugin. I attempted to improve the performance and along the way found duplicate code which I refactored into a helper function. 

To help the team tackle bugs, I would first attempt to re-create the reported bug or issue on my local machine to verify that the bug exists and is not a result of an improper installation. When the bug was confirmed, I would then start working on debugging it and adding respective test cases to the software. If I encountered any issues, I would reach out to Jordan who would provide me with support. 

One of the new features I was able to implement (and my highlight) was enhancing the prefer-default-export rule with a new configuration option, a comprehensive suite of tests, and documentation. By the end of the MLH Fellowship, I had built a linting rule for TypeScript type imports from scratch!

Impact on My Career Growth

During the MLH Fellowship, I came across a lot of concepts, tools, and software for the first time. I learned about linting tools, abstract syntax trees, closure functions in Javascript, test units in mocha, and so much more. Most importantly, I learned how to contribute to open source and raise pull requests. Raising my first pull request was a very exciting moment for me! The open source contributions I’ve made have strengthened my resume and provided proof of my capabilities as a developer.

Last but not least, I have learned a good habit of reading documentation. When I developed web apps in the past, there was always a video on Youtube to help me bring my idea to life. Open source is different because you might be implementing a feature that has never been done before, so going over the documentation was key. 

Access to Mentorship & Support

I was extremely lucky to have Jordan as my mentor. He was very supportive, responsive, and knowledgeable – I learned a lot from him. I also met some awesome peers in my project group. Shout out to Ross Rosales, who helped me with my first issue and tutored me on the project structure for hours! A big thanks to our Pod Leader, Yashika Sharma, who kept us accountable and provided much-needed support during the MLH Fellowship. 

Application Advice 

Got rejected from the program? Learn your shortcomings, improve, and re-apply! The MLH Fellowship is really competitive and hard to get into but that does not mean it is impossible. Do not take rejection as the terminal point of your efforts and instead think of it as just a start. Take your essays seriously and use your unique background as your selling point. There is always something unique about you, something that makes you you, use it! 

Also, make sure you attend or watch recordings of info sessions. They are very detailed and tell about what they are looking for as well as project requirements and recommendations. Last but not least, participate in an MLH hackathon, win, and receive a fast-track interview opportunity!

Interested in the MLH Fellowship?

Above all, the MLH Fellowship has greatly increased my coding intelligence and made me a better developer. Now, I no longer fear jumping into complex and/or large codebases. This confidence has helped me in my personal projects and class assignments!

For more information about the MLH Fellowship and to apply for the program, visit our website here. Stay connected with Aziz on LinkedIn here!