How I got 4 Ph.D. offers in the US with a CGPA 2.79 — and what you can learn from it

Not long ago, I got admitted into the Computer Science undergraduate program of a reputed engineering school in my country with one of the top merit positions, with a dream to learn some amazing technology and make a difference in my field with creativity and passion. In a few weeks, after memorizing lectures for class tests, mandatory attendance for unproductive classes, and the university's disregard for creativity or out-of-the-box thinking, I realized my dream was not on the menu. I started ditching classes that I didn’t find interesting and refused to memorize anything for the final exams. Consequently, I graduated with a CGPA 2.79 out of 4.00, which was one of the lowest grades in my graduating class. However, a year after my graduation, I received 4 PhD offers from recognized Computer Science programs in the United States with fellowships, Research Assistantships, and generous funding. Here, I am going to tell you some of the untold ways you can create a stronger admission profile and increase your chances of graduate admission.

But first, let’s have a look at how a PhD works, shall we?

The PhD Process Over-oversimiplified:

  1. Professors have experience and funding and want to do interesting/ impactful research and then publish papers.
  2. But the professors do not have youthful energy and abundant time to do those research by themselves.
  3. Hence they hire young (usually) graduate students to work on these research days and night for (usually 5) years, and publish them in top journals and conferences.
  4. These publications help advance science, change lives, and at the same time give the professors recognition and reputation in their field. Which brings them more funding, and more freedom to do interesting research.
  5. The graduate students get a PhD degree and earn a better career. (Some of them become professors, and continue the cycle.)

So, a PhD admission process is basically a way for professors to fill up this gap in the following picture. To find someone who could take their money and advice as input, and produce papers as output.

So, professors would want to fill up this gap (‘?’) with a student who can produce maximum impactful research with the minimum of their attention and funding. Students who are technically skilled, hard-working, dedicated, and can work long hours without supervision are best suited for this gap (‘?’).

GPA is a good indicator of these qualities. As a student had to be skilled, hard-working, and self-motivated to get good grades. However, research is not as straightforward as the classroom. In research, there is no quick feedback of one’s performance, there is no way to compare oneself with peers as everyone is doing different things, and almost every question is open-ended, often time there *is* no right answer. Many people who are highly successful in the structured environment of the classroom, often struggle in the open-ended world of research. So whether your GPA is high or low, if you can prove yourself to be a good fit for the gap (‘?’), you have a very good shot at admission.

Let’s dive into a few lessons from my admission journey:

So, how do you get admission with low grades?

Lesson 1: DO *NOT* GET LOW GRADES.

If your GPA is low and you have a chance to improve it, take the chance. If you are still in undergraduate school, try to do well in the remaining courses. If you are a graduate, getting a local MS degree and getting higher grades could be helpful. But, note that, not all grades are equal.

  1. Grades on departmental courses and courses related to the field you are applying to are more important than non-departmental courses. If you are a CS student, your CS courses are going to impact your profile more than non-CS courses.
  2. Recent grades are more important than older grades. Many universities explicitly look for grades for the last two years of university. As they say, What Have You Done for Me Lately? 🤨

Not having terrible grades is going to help you a lot. PhD supervisors usually care more about your research and less about your grades, but the admission committee is very careful about grades even in individual courses. In one university, I have had a professor recommending me for a fellowship that was turned down by the committee due to my low GPA. In another university, I had to take an extra interview with the admission committee to explain my grades when the professor already gave a green light for admission.

So, if you have a chance, try to improve your grades. However, it’s not the *ONLY* thing you can do to build a strong PhD application profile.

Lesson 2: RESEARCH, RESEARCH, RESEARCH

Having a good research profile while applying for graduate school is probably the best way to show your potential as a PhD student. The best way to do that is to publish in journals and conferences that the professors can recognize. Having published to renowned conferences/journals would mean you are already doing a PhD level research and your supervisor would have to put very little effort to get you up and running in a new research project. Even if you publish in less known conferences/journals, that’s a lot better than having no publications. Doing interesting research and being able to talk about it is going to give you a striking edge during admission interviews (more on interviews later). Papers are pretty much universally the first thing you would be asked about during an interview. I have found that the topic of the paper matters little. What matters is that you can clearly talk about what you did, why you did it. Being the first author of the paper is very helpful. If you have at least one paper as the first author, and one or more papers as co-authors, that’s even better. It shows that you are a team player, but also can take the lead.

Having research experience is helpful, even unsuccessful ones. Attempting a difficult problem and failing still gives you interesting points to talk about. Similar to how 100 bad days make you interesting in parties 😉.

However, having a good research profile before your application is easier said than done. This is how you might approach it.

Your conversation with the professor will be a researcher to a researcher, not an interviewee to an interviewer.

If you are a graduate,

try to get an academic research position in an active and friendly group, even if it pays less. Or take a job that allows/requires you to do research and publish you to peer-reviewed journals/conferences. Having a professional research experience is going to give you a significant edge during admission interviews. Even if your research area doesn’t match with the professor, you will have a lot of common grounds to talk about. Your conversation with the professor will be a researcher to a researcher, not an interviewee to an interviewer. I have been fortunate to get a full-time job at my university as a Research Assistant, where I worked with a brilliant group of graduates and undergraduates and two amazing professors. This time as an RA helped me flourish my research skills and gave me some *very* strong points to talk about in my resume, SOP, and interviews.

If you can’t take an academic research position, try to take some research tasks wherever you are working. Find some seniors at your workplace who have a PhD, try to work under them, and take a recommendation from them when applying. Get in touch with your previous university professors, and see if you can join in any of their projects. Whatever research you do, try to get them published.

If you are an undergraduate,

try to find some active research groups in your university in topics you are interested in and approach them. Look at the group’s recent publications to understand if they are active. Most groups would happily welcome a hard-working undergraduate because that would mean they now have a little load off their hand 😅. It is compelling to start your brand new research project, but please do not do that. At least for your first project, try to join an existing research group where there will be senior students and/or RA’s to guide you. In this way, you would learn a great deal about the general research process that would otherwise take you a tremendous amount of trial and error to figure out on your own. This will also be your easiest ticket to have your name on a paper.
Note that, in the beginning, you might have less freedom in the project, and the task you are provided may not be most interesting. But hold on to it, in a very short time you will earn your place in the team and you will become an expert in your little subtopic. I did my first research in university first year, and it was a great joy when I would study something extensively, and my teacher would try to ‘learn’ those from me.
Remember, participating in extracurricular research will often come at the expense of your grades. You will have to take an educated risk on how many grades you would sacrifice for a research paper. In my university final year, I had a paper submission deadline the night before one of my final exams. Two of my co-authors bailed on the project, but I ended up writing most of the paper and submitting it as the first author. The paper ended up getting The best student paper award in the conference, and it has a shining place in my resume and it became a conversation starter for many of my admission interviews. Now, I don’t mind the slight decrease in my grades because of the paper.

Having a visible, quantifiable research skill will take you a long way in graduate admission.

Lesson 3: Networking

Usually, we think about a PhD admission as a rigid game of numbers: “if you have > X GPA, >Y GRE score, you will get to the top Z1 universities” , “if you have <X GPA, < Y GRE score, you will get into the top Z2 universities”, etc.

In reality, admission decisions are made by humans, and many human factors come into play in admission that are not usually discussed. Networking is such a factor. A professor would be far more likely to accept a student whom he/she knows personally to be a good researcher, or who is recommended by someone he/she knows personally. I have read somewhere that nearly 52% of the PhD admissions happen from professor’s known contacts. For people who have had the privilege of working with well-known professors before they apply, have a significant advantage in admission.

In reality, admission decisions are made by humans, and many human factors come into play in admission that are not usually discussed.

Networking is important, not only in PhD admission, but in the entire Academia. Your networking attempt for admission should start long before the admission process. Here are some ways you can, and should use networking to your advantage:

  • Ask your undergraduate supervisors if they have professors in their contacts who might be interested in your profile. You can contact current PhD students from your university and ask them about professors who are accepting students. Reach out to your second degree, third degree contacts, you will be surprised how many of them will be happy to help you. If you find such mutual contact, send the professor an email mentioning your mutual contact, you will be more likely to get a reply than otherwise.
  • Visit local academic/research seminars and conferences that interest you and try to connect with other researchers who are speakers or visitors. If you are interested in their work, you might reach out to them and ask if you can help in their research. Or you might also invite them to work with your existing research group (of course after discussing with your supervisor). Such networking might spawn fruitful collaborative research papers, shining recommendation letters, or even admission offers.
  • You can use email, social media for networking as well. While you are doing your research, feel free to reach out to other researchers who are working in the same area. If you get stuck and can find no way out, ask for help. Make a conversation, build lasting impressions. However, be careful not to spam researchers and waste their time. Once you have started a conversation, ask them if their lab is taking PhD students. I once started a Twitter argument with a professor about her work and later reached out to her saying, “Hi, we met at Twitter. Are you taking PhD students?” It didn’t work out finally but we had an insightful conversation.

During my undergraduate second year, I met a CS professor at a workshop named KolpoKoushol arranged by graduate students from MIT, Harvard, and other schools. We stayed in touch for several years and he was aware of my ongoing research and achievements. Because of my familiarity with the professor, he took my application seriously and was willing to see my application beyond surface-level numbers. 3 interviews later, I got admitted to his university. Without my familiarity with the professor, my application could have been lost in the piles and never been considered.

Lesson 4: Ask for Assignments/Projects

Unless you are from a highly reputed university with marvelous grades, have a personal connection with the professor, or have a very eye catchy publication or some other achievement, you will have a hard time setting yourself apart in the PhD applicant pool. Is there a way to set yourself apart if you don’t have all of those? Here’s a way that worked for me: ask the professor for a project or an assignment.

It clearly demonstrates that,

  1. You are not afraid of taking a challenge outside your comfort zone.
  2. You are willing to learn new things and apply them.

Which are excellent qualities for a PhD student whose primary job is to constantly push the cutting edge of technology. If you can finish the project perfectly that’s a bonus. But more important is the rationality behind your approach, your thought process, your effort, and how you communicate your ideas with the professor. When you are working on the project, keep the professor regularly updated on what you are doing, and why you are doing it. If you are being late, tell them a time when they might expect an outcome from you. Feel free to ask the professor for help. Use this project as an opportunity to express yourself and also an opportunity to know your potential supervisor.

How to ask for a project? When you are emailing a professor (more on that later), throw a line like this at the end,

“If you are interested, I would love to do a small project or assignment with you. In that way, you could know my aptitude and capacity well and I would also be able to know what it’s like to be working with you.”

During my admission process, I was reaching out to different professors and one of them replied back saying he would like to do a small project with me. He asked me to make an AI that takes a description of an Android app written in human language and automatically makes the app. Guess what? It’s impossible to do. None of the top-notch research is anywhere close to doing this in a native programming language. I clearly described why it cannot be done trivially and I also said I may be able to do this using a creative hack. In a 14 day stretch, I ended up creating somewhat a new programming language and a compiler, hacked the source code of MIT App Inventor, and finally made an AI that could make Android app from a text description. I call it Text2App. I made a promo video showing how Text2App worked and sent it to the professor along with the source code. He replied to me with a PhD offer with a one year fellowship and a 4 year funding. This was one of the most dramatic things that happened in my life; I had a PhD offer BEFORE I submitted the application.

I had a PhD offer BEFORE I submitted the application.

So, bottom line, try asking for projects, it won’t hurt.

(1-year update June 2021: Text2App later became a paper where I credited the professor for the original idea although I did not attend his university. Link.)

Here are a few How To’s from my personal experience that might make your admission life little easier: How to find professor, how to email them, how to attend the interview.

How To 1: Find professors in your area of interest

As mentioned earlier, the first place you should look is in your contact. After that, you should *definitely* look for some outside sources.

For Computer Science students CSRanking is a good way to start finding professors in the field of your interest. It ranks all universities and professors based on the number of papers published on a particular topic. This measure is not perfect, but it gives you a good idea about how active a university is in your research area. Ideally, if there are many professors who are actively working in the field of your interest, you have a higher chance of getting accepted.

Instead of always targeting the elite universities, pay attention to less known universities that have active research in your particular research area. If you are looking for a PhD in NLP, and elite Law or Medical school may not cut it. Also, pay close attention to individual professors. A resourceful and helpful professor is going to significantly advance your career than university ranking.

Another way to find famous professors in your field is through conferences. Let me walk you through an example. Say, you want to find some of the top professors in Computer Security. There are many websites that rank the top conferences in different fields. One such website is http://portal.core.edu.au/conf-ranks

If you head over there and search for “security”, you will get a list of conferences in Security. Sort them by conference rank. A* is the highest rank.

Google with the name of the top conferences, go to the conference websites, see the “Program Committee” sections and you will find a long list of professors. These people are usually renowned researchers in that area. Watch their personal webpages, keep them on your radar, follow them on Twitter, and send them a nice email if it is suitable. For example, here is the list for the top conference on the list:

Also, go through the accepted papers and check the team behind them. Who are publishing a lot of papers in this conference? Who are getting the “Distinguished paper awards”? This will also give you a good idea about who are the active people in your field.

How To 2: How to email a Professor

Here is a format that worked for me. I got many responses when I followed this format appropriately.

Definitely check out this article for details: https://www.cs.virginia.edu/~evans/advice/prospective.html

In summary,

  1. Introduce yourself
  2. State your intention (getting a PhD under him/her)
  3. Mention personal connection (if any)
  4. Why do you want to pursue research under him/her
  5. Make sure to attach your CV as a google drive link (or it may get spammed).

The best introductions are short, precise.

Make sure to see the professor’s webpage and Google Scholar before reaching out to them. If they specifically mentioned not to email them, DO NOT. About the tone of the email, I try to maintain a less formal tone, as if I am asking a colleague for a favor. You may choose whichever tone suits you best. Remember that however beautiful your emails are, many many professors will not reply to you. Either because they are too busy, or they know that they will find good students anyway. Expect about 5% reply rate. A reply from the professor is often less about what you write, and more about if they have a position and if your interests match with theirs. Don’t worry, keep trying. You should try to reach as many professors as you can, but for gosh sake, DO NOT SPAM! It looks bad for you, your university, and your country.

How To 3: Talk about Research in Admission Interview

… spitting out a lot of technical jargon would make them sound “smarter”. This is, however, not true.

When professors ask about research projects during an interview, many people (myself included) make the mistake of talking too much about the technical aspects of the research thinking that spitting out a lot of technical jargon would make them sound “smarter”. This is, however, not true. Being able to explain your research in clear and simple language makes you far more interesting to talk to. Here’s a drill for you, for every research/project in your resume, answer these questions in one line in a language so simple that a smart 12-year-old can understand,

  1. What problem you were trying to solve, and why is that important?
  2. How did you approach the solution?

Prepare these answers before an interview and tell them when asked. If a professor is interested in any of the work, he/she will ask you to elaborate. When the time comes, elaborate your answers. Instead of thinking that “the professor judging you”, thinks of the interview as a researcher to researcher conversation where both are trying to learn from each other. Try to learn from the professor as much as possible; you don’t get to talk to a high profile researcher every day.

The 4 universities I got accepted in Fall 2020 alphabetically,

  1. Auburn University
  2. UC Riverside
  3. UMBC
  4. University of Rochester

I will be attending the University of Rochester in Fall 2021 for the stunning AI programs.

Some Random Resources:

5 Minute Guide to PhD Applications: http://www.pgbovine.net/PhD-application-tips.htm

Writing excellent SOP: https://uni.edu/~gotera/gradapp/stmtpurpose.htm

Some sample SOPs: http://www.pgbovine.net/PhD-application-essay-examples.htm

GRE Practice Tests: https://gre.kmf.com/n/home

GRE Vocabulary: https://www.vocabulary.com/profiles/A1DIFLPRVDLFW1

So You Want to Be a Research Scientist: https://medium.com/s/story/so-you-want-to-be-a-research-scientist-363c075d3d4c

10 Tips for Research and PhD: https://ruder.io/10-tips-for-research-and-a-phd/

PhD Advice: https://ttic.uchicago.edu/~kgimpel/etc/phd-advice.pdf

Researcher in NLP and Machine Learning | masumhasan.net