How I cracked MLH Fellowship in my first attempt: Journey & Tips
Tags: mlh, programming, github
Published: 2021-11-02 11:22:49

I am pretty much sure you know what **MLH Fellowship** is. For those who don't know about this, let me brief you about this amazing program. **MLH Fellowship**, powered by **GitHub**, *is a* *global program aimed at providing experience to talented individuals with an unlimited thirst for learning*. You would be learning the in-demand technologies from the leading tech mentors. Also, you will be put in a healthy competitive environment consisting of other **hand-picked fellows**, with similar interests and zeal.
![Accepted](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5ejxak5u1yug6y4h23p1.png)

## My Journey
I applied for MLH Fellowship in the **early weeks of October** from the official **[MLH website](https://fellowship.mlh.io/)**. Then, I got scheduled with my **Initial Interview** (kind of behavioral). After a week, I gave my **Technical Interview** and finally, after another week's wait, I received the result and guess what, **_I got selected._**

This was the very first interview I have ever given and the result is quite motivating! If I can do this, so could you.

## The Selection Process
The entire procedure is neatly divided into three phases:

-  **Application**
-  **Interviews**
-  **Final Review**

Let's understand each process in detail

### The Application
In this phase, you would be filling out an application form. The form contains **choice-based questions** (like, *Which programming language(s) are you comfortable working with?* And then they provide some choices), **essay questions** (like, *Why are you applying for MLH Fellowship?*) and finally, **detail-based questions** (like, *Your Name, GitHub profile link, Code Sample* etc).

The form filling is a fairly easy process and it would take around **_10--13 mins_** to fill out the form. Once you have submitted the form, you'd have to wait for a considerable period of time (probably, for around 10--15 days) before getting to know your result. During this period, your application is reviewed by multiple MLH recruiters. This is done to filter out the **most apt and genuine application from a vast pool of applications**. If your application is unique or interesting, then you'd be called in for the interview phase.

### The Interviews
There would be two interviews: **_Initial and Technical_**.

The Initial interview's purpose is to find out whether you are an **appropriate candidate who can successfully complete the MLH Fellowship**. The questions asked in this round are:

- **Why do you think you are a good fit for MLH Fellowship?**
-  **How do you keep yourself updated with the new trends in technology?**
-  **You have mentioned _this_ in your application form. Could you please tell me about a situation where you demonstrated _this_?**

The duration of this interview was roughly around **15-25 minutes**.

The Technical interview is primarily based on the **_code sample_** that you have submitted in the application form. You would be given **most of the control** where you'd have to do a **brief code walkthrough**. The interviewer will then stop you in between and ask questions related to certain concepts. In my interview, since I demonstrated a **_Flask application_**, I was asked the following major questions:

-  **Why did you prefer Flask? You could have also opted for other frameworks (like DJango)**
-  **What is a decorator? Explain to me briefly**
-  **What is an ORM? How is it useful to a developer who wants to create rapid applications?**
-  **Several other concept based questions.**

One thing to note here is that, you need to have an **in-depth knowledge** of what you are demonstrating. The entire duration of this interview was around **20-30 minutes**.

### The Final Review
After successfully completing both the interviews, your **entire performance is analyzed and then top folks are selected**. Those who get shortlisted gets an **_acceptance letter_** along with the time and date of commencement of the program.

## The Strategy
![strategy](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6c1gcxccpn4rj66craxq.jpg)

If you want to see **_good results,_** you must **_plan it properly_**. With enough research and thorough understanding, you can clearly envision what's going to happen and what to do if its going to fail. After all, we are computer science students, we should look at the world from a different, systematic perspective right? Okay, so I am going to share with you **the mindset** I followed which got me through all the phases in **the first attempt**.

### Feel The Heat
I firmly believe that humans are capable of performing things **_way better_** when they **_feel the heat_**. MLH is a **highly competed internship**. The seat that you are vying for has an acceptance rate of **2.5%**. No, the data is not to scare you rather, its to challenge you to push harder. Now that you are feeling the heat and in the right mindset, lets proceed further.

### First Things First
Before even applying to MLH, you must have a good understanding of the following technologies:

-  **Any Programming Language(s)** _excluding C, C++, BASH_. Yes, even I was pretty much taken aback by this. **Preferred:** Python, JAVA, JS, TypeScript.
-  **Git/GitHub**.

If you don’t have any good understanding of the aforementioned topics, I suggest you to spend some time learning it. I would give you some **_cool resources at the end_**.

### Cracking the Application Process
The **first milestone** to be reached. Let's understand this from **_MLH's perspective_**. *Why are they conducting this Initial Application process?* One reason would be to **remove spurious or "copy-pasted" applications**. The key thing to consider here is, **be authentic**. Trust me on this. **Many of my colleagues who went after the shortcut ways of filling application ended up receiving the same "Apply next time" letters**.

Write essays that **_reflects you, in a professional way_**. Use **good amount of vocabulary** (something we never even really cared). Use big words, no really, I am not trying to be **_ostentatious_** 😃. This would, overall, **make your application top-notch**. The reviewers would feel as if you have done hard work. A **_sweet psychological_** trick ain't it?

In the **choice based questions**, choose things that are **_applicable to you_**. The more the merrier is **_not_** applicable here. In my application, I only opted for Python as the preferred Programming language (even though I knew around 3-4 others). **_Be simple, be genuine and be professional._**

There would be one section, **_where you would have to describe a project that you are going to submit as a code sample_**. One **interesting observation** I made here was that **web-based projects** were preferred over other ones. My colleagues gave projects like **Library Management System, Hotel Booking Management System** etc. These projects are great from the beginner's standpoint but are not **_multi disciplinary_**. Projects like **Full stack website, Simple Chat application**, even **Calendar** shows that you have a **_varied understanding of several topics_**. Go for such projects if you haven't already and if you are already working on such projects, then great! You are on the right track.

### Cracking the Interviews
Once you clear the first round, you are in for **_a tougher fight_**. Here, all the candidates who passed the application process are interviewed. This is a phase where many candidates loose focus and starts doubting.

Let's again understand why interviews are conducted from the **_MLH's standpoint_**. Well, one obvious reason would be to *check whether you are a good fit or not*. *Whether you have **it** in you to complete the internship*. Keeping these in mind, its time to oil our guns.

For **initial interview**, being in the **_right mindset_** is really important. Let's look at this way: The interviewer has to interview many candidates. So, it is quite certain that there would be many questions he/she would ask that are **_common for all_**. Be prepared for these questions. The questions are going to be from **your application form and some general questions** I mentioned way earlier in this post. The key thing to demonstrate is your **_calm and composed attitude_**. Believe me, its the easiest and the most interesting interview you'd have ever given so, *enjoy the process*.

Technical interview, however requires some **_grinding_**. In this process, you would be given **_most of the control_** to demonstrate and give a brief walkthrough of the code sample you have submitted. It's **_you_** who has the complete authority. As you start explaining your project, follow this paradigm:

-  **Describe briefly about the project**
-  **Tech stacks used**
-  **Start explaining the project structure**
-  **Start explaining the concepts**

The interviewer **_is not going to look for the number of lines or files in your project rather, he/she is interested in finding out how deep you know a certain concept_**. If the project is solely yours, then no need to fear at all. You would easily be able to give answer to the questions.

You are expected to be an individual with **strong fundamentals.** If you are a Python programmer, consider following this **[playlist](https://www.youtube.com/playlist?list=PLbsliZj8JocIez5TvsbMaVKgF-sxoal0C)**. Pick a topic that you don't know and start learning.

I used a **_neat trick_** to trap my interviewer. While explaining my project, I gave emphasis on concepts like **decorators, ORMs, Flask, Object Oriented Programming** among many that I was **_dead comfortable with_**. By doing this, I took him to **_my territory_** and guess what, the interviewer asked the questions related to those same concepts. **_You can also do this, but only when your fundamentals are quite robust and have something to fall back on_**. The aim here, is to **prove your interviewer that you are one of the top folks.**

### Anticipating the Final Result
If you have followed the above methods **systematically**, then no need to worry at all. Consider **_yourself selected*_**. In fact, I was pretty confident that the moment after my technical interview got over, I notified my colleagues that I am going to be selected.

**_"A perfect amalgamation of psychology, smart work and dedication can take you a long way."_**

If you get selected and followed my techniques, then be sure to tell me about **_your story_**! Would love to hear it. You can mail me at: **_pratheekastro3@gmail.com_** or follow me at **[GitHub](www.github.com/P0intMaN)** or connect with me on **[LinkedIn](https://www.linkedin.com/in/pratheek-u-7769a6190/)**

## Resources
These are some of the cool resources I found helpful during preparation:

**[Python Programming Playlist](https://www.youtube.com/playlist?list=PLbsliZj8JocIez5TvsbMaVKgF-sxoal0C)** : Pick a concept, start learning

**[Linux Fundamentals](https://www.youtube.com/playlist?list=PLbsliZj8JocK-tz3bR8LVp_ZdN0CqG15b)** : Understand Linux structure and basics

**[Git Essentials](https://www.youtube.com/playlist?list=PLbsliZj8JocK6vYXvm4Yn2ftfvxGgutQV)** : A comprehensive Git guide

**[YouTube Channel](https://www.youtube.com/channel/UC1QZPervOHLiC4xpVnzbDFg)** : A channel (relatively new) which aims at promoting contents related to computer science.