Recently, especially approaching graduation as a senior undergraduate, I’ve seen a good amount of people, from freshmen to seniors ask about how to get involved in undergraduate research. I think this is great! I was very lucky to have my brother Ani Canumalla give me critical advice which I used to make my experience as an undergraduate researcher productive.

I’ll try to outline a few key points that I think are broadly applicable, as well as relevant anecdotes as an undergrad in the amazing UW PLSE lab. I would say roughly this advice is probably relevant to the following groups

  1. You’re an undergraduate looking to get involved in research at the UW PLSE lab with Zach (most relevant).
  2. You’re an undergraduate looking to get involved in research at PLSE, but not necessarily with Zach (still strongly relevant).
  3. You’re an undergraduate looking to get involved in research in general at UW CSE (fairly relevant).

Feel free to listen to as much or as little of this advice as you’d like, and I hope it helps you in your journey!

These notes are a work in progress

Start Early

Start early. Earlier than you think. As early as you can.

I think many undergraduates, me included, have a tendency to think that you have to be capable of doing flawless PhD-level research before you even think about asking labs or professors about research opportunities. This is not true.

You are supposed to be inexperienced and bad at research in the beginning1.


Starting research early has several strong benefits:

  1. Research takes a long time to see concrete results. Starting early gives you time to onboard onto a project, write a paper with your team, and see it through to publication. Seeing the fruits of your labor is a hugely rewarding experience!
  2. Starting early helps you get exposed to the tasks that a researcher does in all stages of a project’s lifecycle. This is especially useful if you might be considering graduate school, and want concrete experience to know if it will be a good personal fit for you.
  3. Starting early gives you time to build relationships with your labmates and professors. This is important regardless of whether you want to graduate school. These relationships can lead to internships and job opportunities that are not available to the average undergraduate.


After finishing your first or second year at UW, I would recommend reaching out to professors or labs based on your interests. That being said, I don’t think the project you work on is as important as the people you work with, which we will get to later. Apply to groups that have good culture—PLSE is great, I have additionally heard great things about the Syslab and the Security and Privacy Research Lab at UW, but there are also others. Some good proxies to look for to see if a lab has a good culture are:

  1. Undergrads get time to meet with professors occasionally (quarterly would be great).
  2. The ratio between undergrads to grad students are reasonable: its unlikely you’ll get much attention if each PhD student “mentors” 12 undergrads.
  3. Undergrad alumni from the lab have gone to strong PhD programs or industry positions.
  4. Your friends or people you’ve talked to have had good experiences in the lab.

This list is not exhaustive, but its a good starting point.

My Experience

I started research in the spring of my freshman year. I had taken a programming languages course that I found interesting, but notably didn’t get an A in (You don’t have to be perfect!), and asked the amazing Zach Tatlock if he had open research opportunities at PLSE. I really enjoyed Zach’s energy and personality, which was why I was drawn to working with him.

He said no, but to ask other PhD students and faculty in the group. Looking at his students, I emailed Gus to work on his project and after 6 months of closely working with Gus 2, I started meeting with Zach regularly during project meetings.

I think the most important thing I did was have persistence. Even though Zach said no, I still asked other people in the lab, and eventually Zach had to accept I wasn’t going away. I wouldn’t necessarily recommend that approach, but I do think being persistent by hanging around the lab or reading groups and getting to know the people there for an extended period of time is very impactful.

PLSE in particular has the first-rate PL and SE reading groups (PLRG and SERG) that are fantastic places to meet people and learn how to read academic papers. Other labs almost certainly have similar groups.

Don’t spread yourself too thin

This is perhaps the most important piece of advice that I can give. The single biggest killer of research productivity in your undergraduate will be other obligations.


At a top school like UW, you will have a lot of pressure from your peers and yourself to “grind” and take on as many opportunities as possible. This is a good thing! But if you don’t control yourself, you will quickly find that research is the first thing to suffer (atleast in my experience).


My advice isn’t something anyone likes to hear, but you’ll have to take some time to figure out what are you biggest priorities, and cut out commitments accordingly. This will be different for everyone, but I think it’s important to be honest with yourself about what you can handle while not going insane.

I think generally from what I’ve seen, the best way to get time back is to reduce courseload as much as possible. I suggest maximum 2 technical courses per quarter if you want to do great research, but this will vary from person to person. I personally usually go for only one because I’m lazy.

My Experience

I think following this advice was the single biggest factor in my success as a research assistant. For me, research was my top priority and my most interesting academic activity. I took light course loads the vast majority of the time, and the quarters I did not, I was not able to make significant progress on my research.

In spring quarter of 2023, we were pushing for a deadline on Lakeroad, and I was taking CSE 452, a notoriously time-consuming course along with a graduate special topics course on ML systems.

I found that I was really struggling to balance my mental and physical health while pushing on the Lakeroad deadline, and was falling behind on my project for the ML systems course. I ended up dropping the course, which helped me maintain sanity and have much-needed relaxation time during a busy deadline period3.

I also sacrificed several TA opportunities in order to have more time for research. I don’t regret my decision, but I do know that I would have really enjoyed TAing. Unfortunately I had to make a choice to achieve the research goals I had set for myself.

It is a personal decision how you want to split your time. One choice is not better than the other. I know undergraduates who did a small amount of research and TA’d regularly, and they are immensely successful. Just be sure to be conscious about the choices you make, and whether they are helping you achieve your personal goals.


I think this advice is a good way to get started in research. I might expand on this in the future, but I think this is the most important advice in regards to getting started in research.

  1. And you’ll probably graduate still feeling like you’re bad at research. I certainly still feel that way. 

  2. As of the time of writing, It’s been exactly 3 years since my first meeting with Gus! 

  3. We ended up missing the deadline anyway :).Research doesn’t always go as planned!