In early May 2020, halfway through my exchange program and at the peak of the COVID-19 crisis, I didn't have any idea what I was going to do next.
One day a friend sent me a link for the MLH Fellowship program. I applied.
Motivation
I have always been super interested in Open Source development, ever since I got into college and started coding 5 years ago. However, I never really got into it, either because (1) I didn't have enough time, (2) had other priorities or (3) got discouraged by toxic people.
Being paid to do this kind of work, alongside other super impressive students and experienced maintainers and mentors, was definitely a one-in-a-lifetime experience.
If you like software development, enjoy contributing to Open Source or would like to start (even though you don't know much about it yet) apply. Just do it. It takes 10 minutes tops. Do it, I'll wait.
Application Process
The overall application schedule is:
Online application: you fill a form and answer questions like "why do you want to be a fellow" and "what are your preferred programming languages".
General interview: a 10-minute interview where you explain where you come from and what are you interested in.
Technical interview: you choose a piece of code you wrote and think it's representative of your abilities, and explain it to your interviewer.
The general interview (1 of 2)
A couple days after I applied I got an email to participate on the first, non-technical, interview. It was super casual and it took at best 10 minutes.
My interviewer had a lot of background noise and his microphone wasn't the best so I had to ask him to repeat a lot of the questions. He even typed some of them on the chat. I was worried that he would think I didn't speak English very well or that I didn't have a good connection (which wasn't the case, but in a 10-minute interview you never know, so it's also a bit of luck).
I was super relieved when I got the news that I had passed to the next phase.
The technical interview (2 of 2)
Later that day I received an invitation to the technical interview. I scheduled it to about a week after the first one.
Here your task is to share your screen and show your interviewer one piece of code you wrote that you find interesting. I didn't have many amazing side projects, so I chose a queue handling app I was doing for an internship selection process. It wasn't impressive at all.
But then how did I get selected among these other super impressive fellows (some of which had worked as interns at companies like Twitter and Google)? Well, good thing about getting into the program is that you can actually message the person that interviewed you.
Gabriel:
I wanted to know what was your impression of me, what you thought were my strengths and weaknesses, and what made you recommend me for the program at the end of the day
I don't even know if you are allowed to give me this information, so I do apologize if you are not
My interviewer:
I remember I liked seeing your advanced vim usage (which indicates you taught yourself)
And that you setup Docker on your project, which is good follow through into a totally separate world of devops
And you could tell me what a PATH variable is. Most cannot. This was big
So I guess one could say the code you choose doesn't matter. My tips are:
- Are you passionate about code? Yes? Can you prove it? Did you build any projects with that passion?
- Do you like vim? Neat! Can you show me something cool about it?
- Have you been using Linux exclusively for almost 5 years now? That's impressive! What are some hacks you've done with it or learned along the way?
I would've never guessed that Vim (I actually use Neovim) would get me into a program like this but, when you stop to think about it, it makes sense. I've learned Vim and touch typing all by myself and today I'm practically fluent on vim (meaning I can do my day-to-day stuff, not that I'm one of those vim magicians).
Bottom line: it's not about how big your project is. It's about how it demonstrates a valuable piece of your personality.
The Program
Pods
Your pod is the group of people (~10 fellows + 1 mentor) you'll be spending most of your time with. You work on the same set of projects, pair program, review each others' codes and play games together.
MLH will try to group you with people that are more or less in your timezone, but in my case we were probably the most spread out group of people in the fellowship (from Canada and US all the way to Europe and Africa).
The Work
You don't necessarily work on one sole project the entire program. In fact, that's very unlikely. My pod had about 10 different Open Source projects: FastAPI, Typer, Howdoi, HTTPie, Beego, and the Pallets projects (such as Flask, Werkzeug and Click).
What's interesting about contributing to Open Source is that you start with very small contributions and quickly find yourself doing much bigger ones. After a while you get comfortable with the general workflow and even those who seemed super challenging end up being only a very small and specific commit.
Another great thing about the MLH Fellowship is that you get direct contact with maintainers on the Discord server. They're there! Feel free to message them anytime.
Talks
MLH knows a lot of people, so you'll get a lot of interesting talks throughout the program from all sorts of different people. Can't attend a talk live? No problems! Most talks are recorded and released on Youtube.
Other Events
Other than the talks and workshops, MLH is really into promoting hackathons, so you bet they have fellowship hackathons as well! There are two hackathons during the fellowship. In the first week of the program there's the kickoff hackathon, where me and my pod mates did a home task management app. In the in the middle of the program there's the halfway hackathon where me and my team of fellows got first place for Best Showcase / Portfolio Project with the Fellowship Wrapped app.
Also, fellows can organize their own events, and they are strongly encouraged to do so. As I'm into security stuff, I put together a CTF (Capture The Flag) competition for the fellows. MLH is even giving some prizes for the top teams!
The stuff people don't say
Getting a fellowship is not easy. I've been into Computer Science for 5 years now, I've applied to hundreds of programs and either got rejected or didn't even get a reply.
If you don't get in, that doesn't mean you're not good enough. It just means that you didn't get in. Nothing more than that.
Go work on what you like to work. Go build the skills you think are important. Go interact with other people.
People hate to say this, but a big part of life is luck. If you try more times, you're more likely to land a job or internship. Once you do, it gets easier to land the second one, and so on and so forth.
You just need one "yes". Don't stop trying.
Special Thanks
I can say from the bottom of my heart that this fellowship was by far the best professional experience I've had, and I am super thankful to all the friends I've made on the way and to all the MLH crew for putting so much effort into it <3
Top comments (24)
This is so beautifully versed! MLH fellowship is one of the prestigious fellowship, that anyone would love to be a part of.
I tried this year, & I also received a mail regarding my interview, but unfortunately it was my bad luck that I couldn't attend the meeting properly due to cyclonic activities in my state :(
Nonetheless, the point you mentioned above that - "Luck favors those who try" is very veracious! I will definitely try being a part of this prestigious program next year.
They're actually opening applications for a new season tomorrow if you're interested :)
Oh that's great! I'll surely apply tomorrow :) Many many thanks for the info!
That's awesome! Thank you very much for this info 😃
Can I apply for both externship and fellowship together.
You could in the last batch, but I'm not sure if you still can (I'd email help@fellowship.mlh.io asking about that for official information though)
Hi, I Applied earlier this year but i didnt get a reply but i just saw an email some hours ago asking me to reapply for the next batch alongsides a code. I just applied.
I think the meeting durations are quite long (5 hours). What do you people do during these meetings?
Daily meetings usually take 15 minutes and each fellow (and the mentor) would go about things they accomplished the day before and plans for the current day
Thanks for sharing this!! It is very helpful. Can you please share some tips regarding communication because I think I am not that fluent in speaking English, although I am comfortable with the chat thing.
You need to be able to communicate effectively in English. That's it. If you feel comfortable doing the chat interview that probably means your English level is good enough :)
I'm really glad the MLH Fellowship worked out for you in the uncertainty of 2020! :)
It is such a great format, I'm very impressed at how the group has handled remote team-building and collaboration.
As someone told me recently: if anyone can pull off a remote fellowship it's MLH <3
Can a student apply in his/her second year B.tech
Actually I am a bit confused if second year is the best time to apply for it or not.(I have not worked on projects like you mentioned)
Yes I have coding experience and my very own small projects. So according to you should I apply or wait.
It will be great if you help me out : )
Yes! I've worked with people from all different sorts of backgrounds! Some of them even apply (and get selected) again afterwards. Depending on your experience you might consider a track that requires less of it. Rule of thumb is
Explorer (least exp) > Open Source > Externship (most exp)
Thank you for being so humble and real.
Am considering applying for MLH fellowship in the future.
Your piece was really resourceful.
🌻
Will we get selected for interviews on the basis of resume or github profile.
We'll be looking into both. I wouldn't say one is more important than the other
I'll try until I get in! that's all what I got; idea about me, I don't even know flask and 13 is the last date of applying. ill try my best to learn and build something in these days...
You don't need to know Flask. In fact, there aren't required technologies you should know, but you'll probably need to know some technologies. I for example know absolutely nothing about JavaScript, but that wasn't a problem because they put me into a Python pod.
It's like 3 months after, commenting that I have failed in the fall 21 batch but I filled for the summer21 batch and working on my skills...
let's see what happen next
I am reapplying for the MLH fellowship program... Pls what externship? How can I apply for it.
Thanks
What kind of a project they see in application which will get me selected for interview rounds?