Updated:

17 minute read

I have received a lot of questions about my grad school application experience. I also want to pay forward the help I received, so I decided to write this post.

Prelude

Two years ago around this time, I was working on a take-home task for a Harvard PhD interview, all while compulsively refreshing my inbox and checking my spam folder for updates.

Prep workbooks outside my classroom after Gaokao, 2016

For most of my life, I believed China’s National College Entrance Examination (NCEE), aka the Gaokao, was the most intense and stressful exam a student could face.[gaokao] It is a decade-long, high-stakes funnel that shapes college options for millions of students, so when I decided to leave law school, my mom took it very hard. And on a personal level, that period was especially difficult for me due to a chronic, deeply damaging family situation.

Years later, applying to graduate school taught me that the stress can take a different form. Instead of a single, clearly defined test, it’s often the uncertainty that wears you down—slowly, persistently, and without a clear endpoint. You can do many things “right” and still feel like you’re guessing what matters. That’s not to diminish the NCEE. It is difficult, no question about it, because millions of students compete for a limited number of seats. At the same time, however, it is transparent: you know what subjects you will be tested on, and once you clear the cutoff, the next step is usually straightforward.

Graduate admissions, at least in my experience, can feel like the opposite. It isn’t always obvious what is truly important, what is only sometimes important, or what you might be over-optimizing without realizing it. And if you’re applying from outside North America, that information gap can feel even wider.

❗ Disclaimer: My experience is specific to applicants to EE/CS PhD programs in engineering-oriented areas such as systems and networking. Experiences vary substantially across fields, departments, labs, and advisors.

My Results and Timeline

The table below summarizes the programs I applied to in the 2023–2024 cycle and the outcomes. The list is not in any particular order.

Two important notes:

  • Many schools (e.g., Stanford and Princeton) allow applicants to apply to only one program per cycle, while others (e.g., MIT and CMU) allow applications to multiple programs in the same cycle.
  • Although advising is often flexible across departments at most schools, different departments can have distinct policies. For example, at Princeton, ECE students are admitted by the department. They complete a rotation period in their first year and are matched with advisors afterward. In contrast, COS students are admitted directly into advisors’ labs. Rotation can be a great way to explore fit, but it can also be a stressful process for many.
Program Application Deadline First Interview Date Notification Date Result
U Cambridge, CST Dec 4 Oct 27, 2023 Feb 7, 2024 Accepted
Cornell, ECE Dec 15 May 18, 2023 Feb 16, 2024 Accepted
MIT, EECS Dec 15 Feb 16, 2024 Jan 28, 2024 (waitlist); Mar 16, 2024 (admit) Waitlisted → Accepted
Stanford, CS Dec 5 No interview Feb 9, 2024 Rejected
U Toronto, CS Dec 1 Jan 18, 2024 Jan 31, 2024 Accepted
U Toronto, ECE Dec 15 Aug 2, 2023 Feb 9, 2024 Accepted
Princeton, ECE Dec 15 Jan 25, 2023 Feb 16, 2024 Accepted
Columbia, CS Dec 15 Withdrawn
Yale, CS Dec 15 Aug 31, 2023 Feb 12, 2024 Rejected
Penn, CIS Dec 1 Jan 18, 2024 Jan 26, 2024 Accepted
CMU, ECE Dec 1 No interview Mar 7, 2024 Rejected
CMU, CS Dec 1 Withdrawn
UC Berkeley, EECS Dec 11 Withdrawn
UIUC, CS Dec 15 Jan 13, 2024 Feb 2, 2024 Accepted
Harvard, CS Dec 1 Jan 17, 2024 Jan 31, 2024 Accepted
U Washington, CSE Dec 15 Withdrawn

What Actually Matters (and What Doesn’t)

I applied from Europe, and the information gap was one of the hardest parts. I did not always know what to prioritize, what was “nice to have,” and what was mostly noise. Most questions I get are about this, so I will start here.

Detailed recommendation letters

Rec letters are the most important part of the application.

Most North American programs will ask for 3–5 letters, and the application portal will ask whether you want to waive your right to read them. My strong recommendation is to waive access (select “Yes”). In practice, committees often treat waived letters as more candid and therefore more credible.

What matters even more than “prestige” is specificity. A detailed, sincere letter from a professor who worked closely with you can carry more weight than a vague letter from a famous name. Strong letters do more than list achievements. They explain what you contributed, how you think, how you collaborate, and how you show up as a teammate and researcher.

At some schools (like UofT and MIT), there is also an internal pre-screening process (for example, by a committee consisting of selected students) before applications reach individual faculty. In those settings, detailed letters can be a major differentiator because they provide concrete evidence of research readiness, independence, and reliability.

Do grades really matter?

Grades matter, but in most PhD admissions processes, they are not the primary signal.

If you are early in undergrad and considering a PhD, my advice is to treat coursework as important for building fundamentals while recognizing that research experience usually carries the most weight. Many faculty will look at grades as a supporting signal, and only lean on them if they lack other ways to assess your readiness.

There are also practical issues if you are applying internationally. Different grading systems can be hard to interpret. During one interview at the University of Toronto, a professor told me candidly that he was not sure how to evaluate my grades because they were on the Swiss 1–6 scale.

Most importantly, coursework and research can feel like different worlds. Even very demanding classes do not always translate into the skills needed to thrive in open-ended research. For more on my perspective, see my mentorship statement.[mentorship]

Publications and research experience

The main reason to join a lab before applying is to build genuine research experience, and publications are one of the clearest ways to demonstrate that experience. A top-tier publication can completely change how your application is perceived.

At the same time, I do not believe publication count is a pure measure of talent. Timing, mentorship, project selection, and luck matter. Some students have early access to well-scoped problems and strong research pipelines; others are doing equally good work but have fewer structural advantages. Unfortunately, admissions often uses publications as a proxy for research training, so they can matter a lot in practice.

This is also where I have mixed feelings. I personally believe a PhD should function more like an apprenticeship, and I will come back to this when I explain how I made my final decision.

Faculty often look for similar traits

One surprising thing I noticed during admitted-student visits (I will write about it later) is that many of the visiting students overlapped across schools, making us like a huge traveling group. Over time, it became clear that different programs often admit students with similar/same profiles and signals.

Reception at Harvard Faculty Club during admitted-student visits, March 2024.

Because of that, it can be helpful to study patterns. I recommend reading a range of statements of purpose and application materials.[sop-collection] [sop-mit] Focus on:

  • what kinds of research experiences they had
  • what kinds of projects they worked on (and with whom)
  • whether they had publications (and at what venues)
  • what skills and framing show up repeatedly

For a structured discussion of how PIs and committees evaluate candidates, Chapter 2 of The CS Assistant Professor Handbook [asstprofbook] is a great resource. Also, MIT has a helpful page summarizing what faculty look for in application essays.[faculty-hints]

Before the Actual Applications

Beyond the information gap, a second challenge (especially if you are applying internationally) is that you may have fewer informal channels for advice, mentorship, and introductions. That makes your timeline and outreach strategy even more important.

Who makes the admissions decision?

You’ll often hear people describe two admissions models: “professor-centered” admissions and “committee-based” admissions. In the former, individual professors/principal investigators (PIs) have significant influence over admissions decisions; in the latter, a committee made up of multiple faculty members (and sometimes students) plays a larger role.

That said, regardless of the formal structure, faculty preferences almost always matter the most. The main reason is funding: unless a student brings external funding that fully covers their PhD (often referred to as a “free student”), their support typically comes from a faculty member’s research grants.

To avoid substantial over- or under-hiring, departments usually ask faculty to report in advance how many students they expect to be able to fund in the upcoming admissions cycle. As a result, if one or more faculty members are genuinely interested in working with you and have the resources to support you, your chances of admission are very strong.

Start early and reach out (very important)

I started reaching out to professors and interviewing in May 2023, roughly seven months before most application deadlines. My first interview was on May 18 with Cornell, and it ended up being one of four interviews I had with Cornell faculty.

Here are three reasons to start early:

  1. You learn about programs faster and assess fit sooner.
    To find a good match for your interests and skills, you need to understand departments and people in detail. This was especially important for me because I was applying from Europe. Some schools combine departments (for example, EECS), while others separate them (CS/CIS vs. EE/ECE). If your background sits between hardware and software systems, multiple program labels can be relevant, but the actual culture and focus vary widely.

    Even within “ECE,” departments can look very different. For example, ECE at UIUC and Cornell has a strong computing focus, while Princeton’s ECE spans a wide range of areas including VLSI, networking, AI, materials, bio, photonics, and quantum. So if you are interested in optical computing, ECE at Princeton might be a good fit, while at another school you might need to look at materials or applied physics departments instead.

  2. You learn who is realistically hiring.
    Often, only a handful of faculty are a strong fit and have capacity in a given cycle. Several of my withdrawals happened because I learned faculty were not taking new students. For example, professors at UW and Columbia told me they were not able to take additional students due to recent over-hiring and the need to convert existing thesis students. That kind of information is hard to infer from their websites, and it matters even more during uncertain funding periods.

  3. You build interview skills through repetition.
    Many faculty interviews include a short research presentation and deep technical questions. Starting early gave me time to improve my slides and, more importantly, my ability to explain my work under pressure.

    I also learned some lessons the hard way. I had a Yale interview scheduled jointly with multiple professors, and I struggled to answer rapid-fire questions before the conversation moved on. My slides also had issues that were easy for someone experienced to spot. It was not a great outcome, but it was a valuable learning experience. After that, I scheduled interviews one-on-one when possible, and I improved quickly. As a result, I later received offers from every program that interviewed me (except Yale, which is fine :P). So, you might want to schedule some early interviews with less competitive programs to prime yourself for the harder ones later.

The Interviews

The table below summarizes how many interviews I had and the types of interview tasks I encountered. I ranked programs based on the overall difficulty of the interviews and tasks, but this is purely my personal experience (sample size == 1). Your experience may differ substantially.

Ranking of Overall
Interview Difficulty
University Number of Interviews Interview Tasks
1 U Toronto 5 (with 3 PIs) • Research presentation
• Coding question
• Take-home project
• Paper reviews (3 total)
2 U Cambridge 2 (with 2 PIs) • Research presentation
• Research proposal
(1,000 words)
• Proposal Q&A
3 UIUC 5 (2 with PIs; 3 with students) • Research presentation
• Paper discussions
4 Penn 4 (with 3 PIs and 1 postdoc) Research presentation
5 Harvard 1 • Paper reviews (2 total)
• Research presentation
6 Cornell 4 (with 3 PIs) Research presentation
7 Yale 1 (joint with 2 PIs) Research presentation
8 Princeton 1 Conversation with PI
9 MIT 1 Research presentation

A common question is why I sometimes had as many as five interviews at the same university. The reason is that multiple professors can be interested in the same candidate, and they usually don’t coordinate closely. So you might be interviewed by several faculty members independently.

As you can see, the most common tasks are:

  • a short research presentation (often with slides)
  • technical discussion
  • and sometimes reading and reviewing papers

So it helps a lot to practice explaining your work clearly, and to get comfortable discussing papers critically and constructively.

Research presentation and technical discussion

Many interviews start with a short research presentation. A typical target is about 15 minutes for a structured overview of your work.

If you have papers, it helps to include a small number of key figures and focus on the core idea, the design choices, and the evaluation logic. You should also expect interruptions and questions, especially around trade-offs, alternatives, and “why did you do it this way?”

The most useful advice I can share is to proactively anticipate questions and practice your answers. Many questions repeat across interviews once you know what faculty tend to probe.

You may also interview with senior PhD students or postdocs. I often found those conversations especially engaging and sometimes more technically detailed. Students and postdocs may also be thinking about day-to-day collaboration, so they are assessing whether you would be a good teammate for the long run. If you know who you will meet, it is worth reading the group’s recent papers and skimming relevant code repos ahead of time.

Paper review

Here are a few example reviews I wrote for the University of Toronto [reviews-uoft] and Harvard interviews.[reviews-harvard]

In these tasks, you are often evaluated on whether you can:

  • accurately identify the paper’s core contributions and assumptions
  • offer a thoughtful critique (strengths and limitations)
  • propose concrete extensions or alternative approaches

Since the papers often come from the interviewing group, PIs may often be looking for whether you can develop a coherent “next step” that builds on their work.

A helpful starting guide is Prof. Onur Mutlu’s paper review guide: mutlu-guide

Coding and other tasks

Some programs have other types of tasks. For example, several systems faculty at the University of Toronto gave me coding tasks and take-home projects; the University of Cambridge asked for a 1K-word research proposal.

If you are curious, here is my codebase for a UofT coding interview task on implementing an SCMP ring buffer.[ringbuffer] The repo includes both my implementation and experiment results.

School Visits

At the time, I lived in Zurich, Switzerland, and flights to the US were long and expensive. Fortunately, all US programs on my list (except UIUC) reimbursed travel and arranged hotels for me.

Visits are typically 2–3 days, and scheduling conflicts are common. For example, Cornell’s visit overlapped with Princeton and Penn’s, so I coordinated with Cornell to arrange an individual visit.

Caveat: weather can influence your experience

This is not a scientific point, but it is real. For instance, when I visited Boston, the weather was a bit dismal (cold and rainy), and while the city is wonderful, it affected how much I enjoyed being out and exploring. Similarly, Ithaca in late March was snowing like no tomorrow …

Visiting Harvard on a rainy day in 2024. Visiting Cornell in late March.
Left: Visiting Harvard on a rainy day in 2024. Right: Visiting Cornell in late March afterward.

By contrast, Princeton had beautiful weather during my visit, and combined with the campus, it left a strong impression:

IMG_1621.jpeg

How I Made My Final Decision

People still ask me why I chose Princeton, especially since I invested a lot of time interviewing with other programs and faculty.

It wasn’t an easy decision. In fact, it was difficult enough that I ended up researching the science of making hard decisions and even made a video[decision-talk] about it, which some of my friends found helpful:


Looking back, three factors mattered most.

  1. I did not fully enjoy how “job-like” many interviews felt.
    I understand why selection is necessary as competition is fierce, but parts of the process conflicted with a core belief of mine: a PhD should be an apprenticeship. If applicants are expected to already have every skill needed to succeed in the treacherous PhD journey, it raises the question of what kind of mentorship and training the program is offering.

    This contrast stood out because, at the time, I also had a job offer from a big tech. I was pursuing a PhD specifically because I wanted a different kind of learning and growth.

    Surprisingly, I initially thought my Princeton interview went poorly. It turn into a high-intensity research discussion: I never got to present the slides that I had prepared and practiced a million times by then, and instead I was met with lots of probing questions that required real-time reasoning. When it ended, I couldn’t gauge how I had done, in part because the PI (now my advisor) kept a neutral expression throughout. Later, I learned that this is simply how she engages when she’s thinking deeply.

    I believe she saw potential in me without putting me through a slew of tests and checks. I am deeply grateful for that trust.

  2. The people and the environment mattered a lot.
    During visits, I especially enjoyed meeting my current group members. They were consistently kind, supportive, and thoughtful, and I could imagine building a good working life with them. Culture is hard to measure from the outside, but it is one of the most important factors once you are actually doing the PhD.

    Additionally, after visiting many schools, I’ve come to believe that Princeton can satisfy all my imagination of a prototypical American campus, more so than anywhere else. After all, the word “campus” originated at Princeton.[campus-word]

  3. I wanted to lean into a new research direction.
    Most of my offers were in software/hardware systems, except for my advisor’s area. I appreciated that she welcomed me even though I did not have deep prior background in the specific subfield I would work on in my PhD.

    I’ve always believed that early in one’s career, it’s important to seize opportunities to try something different before settling into a specific field. This perspective is also echoed in this TED talk: david-talk

Outro

Time truly flies, and it has now been over a year since I started my PhD at Princeton.

Did I make the right choice? I’d say there is no single “right” choice in the abstract; you make it right by what you build from it. What I can say is that, ever since starting, I’ve been enjoying every single day of my PhD journey. I’m grateful for my advisor, the engaging research, and the wonderful people around me.

Is it still worth pursuing a PhD in the age of AI? That derserves a separate blog post. But if you want to do a PhD for money or status, do not. Your PhD journey is for you and only yourself. And if you do choose it, doing a PhD in a place like Princeton is an absolute privilege, and in my experience, a real joy~

🐯 in front of Alexander Hall, Sep 2024.

Acknowledgments

I want to thank Seungju Lee, Constantine Doumanidis, Mathew Madain, Peilin Xin (CMU), and Fengshi Zheng (TU Delft) for their helpful comments and feedback on an earlier draft of this post. I’m also grateful to Prof. Keith Winstein for sending his advice to me as a reference.[winstein-advice]

Resources

Leave a comment