MLH Fellowship: The Ultimate Guide for Getting Selected

MLH Fellowship: The Ultimate Guide for Getting Selected

Ace your next application to the MLH fellowship!

What is MLH Fellowship?

MLH Fellowship is an internship alternative, where accepted fellows get to work with some of the top tech companies (like Google & Meta) and contribute to open-source projects during the 12-week period while earning a good stipend.

The MLH fellowship runs throughout the year in Spring, Summer, and Fall batches with multiple tracks, including Software Engineering, Site Reliability Engineering, and Web3 Engineering.

There's also a shorter 3 weeks version of the fellowship, called MLH Prep Fellowship which runs throughout the year, it mimics a hackathon sprint where you get to build some amazing projects for your portfolio and experiment with new technologies. People who graduate from the prep program are given priority in the full fellowship.

Learn more about the fellowship here.

Is it Difficult?

The MLH has an acceptance rate of about 2.5%, in comparison, Google Summer of Code has an acceptance rate of about 20%, which makes the MLH fellowship much more difficult to crack.

This is what makes the MLH fellowship worth its while. Therefore, it's very important to ace your application to get accepted into the fellowship, let's get started ⚡️

The Application Process

Here's what the typical application process looks like -

  1. Application & Essays: You submit the application and the essays through the website

  2. Initial Interview: 10-minute interview to check your eligibility and passion

  3. Technical Interview: 15-minute interview to discuss your project and technical skills

  4. Final Review & Matching: The best candidates are invited and assigned a pod based on their skills, interests, and availability.

Let's dive deeper into each phase of the application -

The Application & Essays

Head over to the MLH Fellowship website and click on the Apply button, this will take some time, I'd recommend taking an hour or two from your schedule to do this.

Code Sample

The code sample aka your project is one of the most important parts of your application. The code sample should demonstrate your abilities and technical skills, it doesn't necessarily need to be too complex or innovative but making a problem-solving application with real-life use cases surely helps, even if that means building a simple game.

Here's a checklist you can follow -

  • The project must be open-source

  • Moderately complex and problem-solving

  • Well documented

  • Has getting started guide

  • Has test cases

  • Structured and modular code

  • Use environment variables

  • Long and descriptive commit history (to verify code is not copied)

  • Must not be from a tutorial or boot camp

  • No Jupyter notebooks or CP programs

The technical bar for the prep program is a little lower, but it still helps to have a perfect project and in case you don't have a suitable project, a good strategy is to participate in hackathons and submit what you build there.

My Project

A lot of people reached out to me regarding my code sample, well I submitted a Flutter-based mobile app that can be used to prevent cheating in online exams.

My project is moderately complex, solves a real-world issue, follows best coding practices with regards to Flutter, is well documented, has unit tests, has a getting started guide, good commit history, and uses environment variables to hide sensitive API keys.

There are a few things that can be improved upon, for eg, my project can be containerized but it ticks all the points in the checklist and thus is fit to submit as a code sample.

Here's the GitHub repo -

Essays

This is where I was rejected when I first applied for the Fall 2022 fellowship, dedicate a good amount of time to writing essays, here's how to answer each question -

  1. Briefly describe what this code sample does.

    Talk about what your project does, what problem it solves, the project's aim, and an overview of the tech stack.

  2. Briefly describe what you learned when you created this code sample.

    Talk about the challenges you faced while building the project, how you overcame them, and the learnings through it, and finally mention all the skills you learned or improved upon through the project.

  3. Why do you want to become an MLH Fellow?

    Through this question, the admission team wants to test your passion for the fellowship, this is a very important question, make sure to answer this honestly.

    Talk about your journey as a programmer, how you fell in love with coding, how this fellowship will help you reach your goals, and the impact of this fellowship on your career.

  4. What perspective or experience will you bring to the fellowship to strengthen our community?

    Remember MLH fellowship is all about open-source and communities, it's about growing together as a team and what you bring to the table is important. Highlight your skills and past experience and most importantly, how will it help other fellows.

  5. Anything else we should know about you?

    This is an optional section, but I'd highly recommend not skipping it and mentioning more details about things you could not write in the essays - any volunteering experience, a past experience like a job or internship, other projects, or more skills.

    This will show that you are really passionate about the fellowship and have a diverse skill set that you'll bring to the table.

Remember, all the questions have a word limit, make sure every word count!

Interviews

Once you submit the application, the application should be placed under review in a few days, the review can take anywhere between 1 to 5 weeks depending on when you apply.

Once your application is shortlisted, you'll get a calendy link to schedule your first interview.

Initial Interview Mail

Initial Interview

The first interview will be relatively easy, the purpose of this is to test your eligibility, internet, and communication skills.

Since the fellowship is fully remote, it's absolutely necessary to have a good internet connection, make sure to test your internet before the interview so that you don't fail the A/V test.

Mandatory question -

  1. Why do you want to be an MLH fellow?

  2. Brief information about your project and what it does?

I was asked some additional questions which might vary based on the interviewer -

  1. Do I prefer working individually or in a team?

  2. What new skills have I learned recently?

  3. What new technology excites me?

Just revise your essays before the interview and the rest shall be easy, you have only 10 minutes to answer everything, so keep it short and straight to the point.

If everything goes well, you should get an email for the technical interview in about 5 days.

Technnical Interview Mail

Technical Interview

The technical interview is very important and this is where most people will be filtered based on how well they know about their project.

You should know your code inside and out and should be able to explain it to the interviewer line by line, especially the code critical to your project.

You'll be asked to share your screen and asked to demonstrate your project. The interviewer may ask you to explain the code, the technologies used in the project, some programming concepts related to your code, or even show the database, if you know your code, you'll be able to answer all the questions.

Here are some of the common questions -

  • Why did you choose this particular tech stack? (eg: React Native vs Flutter)

  • What can you improve upon in this project? (Future scope)

  • If you were to build this project again, what will you do differently this time?

  • What challenges you faced while developing the app?

  • Any bugs you're aware of?

The interviewers will ask if you have any questions, don't hesitate to ask one, even if it sounds silly to you, asking questions shows you're passionate about the fellowship.

Matching Survey

As soon as you complete the interview you'll get a link to fill out a matching survey, in which you'll again have to enter your time availability, interests, and other information.

The pod timings can possibly be at an odd time slot to your timezone, therefore I'd recommend selecting as many time slots as you can even if that means working throughout the night (believe me, the fellowship will be worth the effort), just don't commit to timings you can't work in.

I got allotted a pod that meets at GMT 18, which is 23:30 IST, not selecting this timeslot could have resulted in me again getting pod mismatch.

The next step is to sit back and relax, you'll eventually make it :)

Screenshot 2022-10-29 at 1.04.59 AM.png

Additional Tips

Here are some additional tips which will increase your chances of getting the fellowship -

  1. Apply Early:

    The applications are processed on a rolling basis, which means the sooner you apply, the earlier your application will be reviewed. I'd recommend applying at least 2.5 months before the start of the fellowship.

    In the October prep batch, I passed the technical interview but still got rejected due to pod mismatch, the most likely reason could be the class being full, this could have been avoided if I had applied earlier.

  2. Get Your Essays Reviewed:

    The first time I applied for the fellowship, I was rejected for my essays, I'd suggest you to get your essays reviewed by the people who have cracked the fellowship, this is what helped me get the interview when I applied for the second time.

    You can always contact me on Twitter or LinkedIn and I'll happily review your essays.

  3. Mock Interviews:

    I'd suggest you practice interviews with a friend or other people who are applying (find them through MLH's discord), this will help you spot your mistakes and improve them before the interview.

  4. Get Fast Track:

    One way to skip the long waiting period and directly get to the technical interview is getting your application fast-tracked by winning an MLH hackathon. This will greatly improve your chances of getting selected.

    Another way to get fast-tracked for the full fellowship is to first graduate from the prep program, as prep graduates are given priority and are 14x more likely to get selected than a normal applicant.

Conclusion

That's all from my side, I tried my best to give you as much information as possible but remember your application may still get rejected due to various reasons, don't get disappointed, and apply for the next batch after working on the feedback.

I was rejected twice, once for essays and the other time due to pod mismatch before getting accepted in my third attempt, don't lose hope, and Keep going.

If you have any doubts or need any help, comment below or reach out to me on Twitter or LinkedIn, until then -

Happy Hacking, Prathamesh :)