Some knowledge and understandings summarized from my application a long time ago :)


  • Before application: Preparation and targeting
  • Oct - Nov: Prepare the documents
    • Standard test scores
    • School transcripts
    • Statement of Purpose / Personal Statement
    • Recommendation letters
    • CV/resume
  • Dec: Submit the applications forms online, get in touch with certain professors
  • Jan - Feb: Wait for offers/rejections
  • Mar - April: Visit days and decision

I will break them apart in the following sections.

Preparation and Targeting

The first question is: Must I go to grad school and pursue after a PhD degree? This is the first question you have to answer, and you are going to answer it a lot of times. It won’t be easy to make up your mind, so do pay attention to how you feel about research and make a second plan (e.g. go to industry or apply for M.Sc. as well) if you don’t feel 100% committed to it.

Philips Guo and Jean Yang have some great posts on grad student life and research. You can also talk with current PhD students. Your research internship experiences can also help you decide.

But anyway, if you want to be competitive in the U.S. style PhD application process, you have to devote a lot of energy in polishing your profile.

Research experience

Generally, the more the better, but remember to ask the following question when considering the quality of your experience:

  • Is it a serious project in collaboration with established researchers or just a pet project of yourself?
  • Do you have or aim at publications? Do you have technical report and artifacts? Do you plan to make a poster and submit to certain venues?
  • How difficult / cutting-edge the project is?
  • How long does it proceed? Full-time or part-time?

Summer research internships are great chances to enrich your high-quality research experience by working with world-class researchers. You can also do part-time research in your institute, if there are any good projects. Usually, it is easier to do the later one, since you are probably not paid and also can show up at any time of the year.

For undergrad research, you can start helping on some projects in your school as a part-time RA in your second year. The summer of the second year will be a good time to be a full-time RA and work on important problems, if you don’t want to do a industry internship then. You will need to devote more time on the “inbound” research during the third year, and also seeking for “outbound” summer research internship.

Normally, university labs/professors won’t fund you directly (since they already get an ample and free supply of inbound undergrad/master students…), so internships at these venue would normally be part of certain “agreement” or “program”, like UCLA CSST. And typically, you are paid less than a “real” internship as well.

However, you can try out some other options. I interned at MPI-SWS (Germany) during the summer of 2016, and it was an amazing experience. I have to say that MPI-SWS actually fostered some kind of very nice intern culture. Other options that I know something about include:

  • INRIA, France (but because of policy restriction, they can’t pay you much, if you are not already a PhD student somewhere)
  • Microsoft Research:
    • MSRA (Beijing) is relatively easy and they maintain a huge pool of undergrad interns each year. But if you are not into AI/ML or related topic, you might not want to take a job there. Also the salary is not competitive.
    • MSR, Redmond is a superb place. Seattle in summer is stunning. Redmond, as MSR’s headquarter, has a lot of experts in many fields. They also pay very well. However, it is very difficult to get in as an undergrad.
    • MSR, Cambridge: basically same as Redmond, except that it only accepts UK-based undergrads. PhDs will not be restricted by that.
    • MSR also has labs in Paris (with INRIA), and Bangalore etc.

Standardized tests

Most U.S. schools would require GRE for grad programs, and also TOEFL, for students from non-English-taught programs.

For GRE, the only hard part is vocabulary – you might need to take some time to go over the obscure words several times before the test. The rest of it are trivial, but make sure you will go through a simulated exam before the real one. Also, don’t worry too much if you GRE sucks a bit – most top-tier PhD programs don’t take it very seriously.

For TOEFL, the best way is to live in a purely English environment for several months, and also keep reading/listening/writing when you are back. Doing some practice with test materials will be helpful, but overdoing it can’t help you improve magically. TOEFL score is usually more important then GRE, and most top-tier CS PhD programs will require 100 or more.


Target your research interests first, then target schools ( might be helpful), finally target advisors. can help you evaluate your profile against a proper “range” of target schools. If you don’t have a specific interest, 5 ~ 10 schools would be nice. Depending on your plan, you might or might not want to have some “safe” schools, but it is strongly recommended to try some “dream” schools.

Note that while I usually refer to the target as a “school”, but what really matters for you as a PhD student is the quality of CS department, the specific research group, or even some specific advisor.


  • Standard test scores should be sent out to schools through ETS’s website. It is super expensive to send it after you know the score. It would take some time, around one week or two, to arrive at the graduate office, so please send them as early as possible.
  • Transcripts: Most schools nowadays, except for MIT (in my case) and a few others, do NOT need you to send original transcripts through delivery service. You just need to scan and upload.
  • SoP/PS: There are a lot of advice about how to write them, and each program might have its own specific requirements as well. But try to be research-centric (imagine you are applying for a post-doc position), be short (less or equal to 2 pages), and be readable.
  • Recommendation letters: This can be a decisive factor – academia is obsessed with references because it is super hard to standardize or quantify someone’s potential of success as a PhD student in a specific field. Thus, ask relevant people to write letter for you, like your advisor at your school, or internship advisor etc. Besides that, the odds for success depends on two qualities of the recommenders: 1. If he/she is already an established researcher with good and famous work; 2. If he/she have good personal relationship with other people in your field, esp. those in your target schools
  • CV/resume: Except for general advice on how to write them, make sure that research goes first.


Don’t miss the deadlines for submission! so prepare well early. In average, application fee would be around 100 dollars. But certain schools in Europe, like EPFL, doesn’t need you to pay anything for a doctoral program!

After you submitted your application, you might want to reach out early to your interested advisors. However, professors are typically very busy and they will probably be reluctant to interact with you before they have to! (they will mostly start reviewing the PhD applications from the mid-January and will only have to interview with you if they think you do qualify and they do have spots).

I did reach out mildly, but I generally avoided cold-emailing people I don’t know before. Have belief in the system :)


This can be a very difficult period – since it spans several months, and each school has its own policies, which might also change from time to time. You will take pre-offer interviews over Skype or something, which can be very intensive and nerve-wracking.

For U.S. schools, the first wave of acceptance letter will be sent out at the beginning of the Feb. You can also track it with Then the entire Feb will be a offer/rejection month. Normally notifications come after March 1st would mostly be negative, since most schools will already start campus visit around that time.

During that time, you will also get after-offer interview, or co-interviews, which is intended for you to choose the ideal place to go. Since you are still not sure if some other (better) schools might accept you, the interviews at that time can be very tricky to do. For me, after that part, I am a half interview expert who can ask meaningful questions.

In the offer letters, there will also be information about the monthly stipend as TA/RA and department-provided fellowships (for outstanding applicants). Most U.S. school should provide a similar level of stipend, around 25,000 dollars per 9 months. If you stay in summer, the stipend usually doubles since you can work as full (double) time RA. The summer internship in companies like Google usually pay three times.

Visit and decide

Campus visit can be important, esp. if you have several great offers and don’t yet have a very clear idea on where to go. However, if you are an international student, you might need to get a visa if you don’t have one. Also, official events of different schools might overlap, so you might need to choose and if possible, schedule unofficial visits (which might be expensive and less informative, even assuming that spring break won’t get into you way).

Campus visit can give you a zero-distance contact with the school, the department, and the potential advisors. You can ask new questions. You can also know what other admitted students think to help you better decide.


Decide where to go – This is a thing that bothers me for nearly half a year – and the decision I made in the end will define where I am going to stay for the next 5 or 6 years (if lucky). And since my best time of the entire life will be tied to this pursuit, it will also largely shape who I am going to be in my future career. That’s it, and I don’t think I need to stress more of its importance.

I finally decided to go to UW CSE, or “Paul G. Allen School of Computer Science and Engineering”. There are several reasons why I chose it above others:

  • UWPLSE is an application-focused PL group. Despite the fact that my previous undergrad research experience are mostly around formal methods, I am in fact a hacker who has a broad range of interests and cares a lot about the impact to the world outside the PL community.
  • UW CSE is strong in PL, and it is also strong in other areas like AI as well
  • UW CSE has very strong interdisciplinary research – which applies computation to other fields, such as biology (Seattle is one of the most important bio-tech hubs!).
  • UW locates in an excellent place, Seattle, where has a lot of tech companies, advanced research institutes, and a diversified, innovative atmosphere. I can feel that I am thinking more about future and impact of PL here.

There are also other factors to consider:

  • Are people nice?
  • How is the living condition? considering living cost, location, climate etc.
  • How large is the group? How does the group culture feel like?
  • How many faculty members are tenured vs. not yet?
  • How does funding work? Are there typically large projects or student-driven small projects?
  • Where did previous students end up at? How many of them were offered good research positions?
  • Is the department growing in recent years?

I will not share my other rejections/offers details here, but you are welcomed to ask me privately :)