Prospective students

Prospective students

If you are interested in working with Ivan on research, then you are on the right page. Please read this page carefully.


You are an undergraduate student at UBC

Most of the students I work with have taken the basic UBC systems and software engineering courses (210/310, 213/313, 317) and have done well in those courses (have scored B+ or better). I do make exceptions to this, particularly if you have outstanding marks in 1st/2nd year CPSC courses or if you can demonstrate relevant work or personal project experience. There are several ways to get involved:

Directed studies. I host several students each term for directed studies courses, CPSC 448. This is the best way to get started with me on research. If you are interested, you should send me an email with (1) your transcript, (2) your resume/CV, and (3) links to any of your projects that are available online (code repositories or deployments). You should also peruse some of my publications/projects to get a sense for the kind of work that I do. It is especially important for me to know your interests and what you want to get out of a research experience. Make sure to note this in your email to me.

I typically have directed studies students join an existing project -- this gets you quickly bootstrapped on research since coming up with a new research projects is non-trivial!

USRA summer positions. I am always interested in strong USRA candidates. A USRA position is a 16 weeks, 40hrs/week, serious research commitment that cannot be mixed with TAing, course work, or other work. Application deadline is usually around the end of January. You should email me early. Note that this is a competitive process: we apply together and you compete against other students in the UBC Faculty of Science for the USRA grant.

Volunteer positions. I rarely take on student volunteers. I prefer that you do a directed studies course instead.


You are a graduate student at UBC

You should send me an email and set up a time to chat with me. I usually recruit graduate students during the grad application process and have no capacity to accept other students during the year. But, I make exceptions for strong students, particularly students who have taken my/other graduate systems courses and have done well in these courses.


You are a non-UBC undergraduate student

My primary means of hosting international undergraduate students is through the MITACS Globalink program.

I do not host students for other visits/internships unless (1) they come with their own funding, and (2) have relevant prior research experience.


You are a prospective graduate student

You should apply to our program! I recruit students annually. The number of positions varies, but I encourage strong students with research experience to apply. Please do not contact me before you have applied.

Here is what I look for in graduate (MSc/PhD) applicants:

  • High English scores for international students. Ideally a TOEFL score over 110 and IELTS scores of 7.0 or higher in all categories. Your ability to communicate in English is critical to your success in graduate school.
  • Relevant research experience. If you have never done research, then I am unlikely to be interested in your profile. If you have done research on a topic that is unrelated to what I work on, then I am also less likely to be interested. In the best case you have publications (or submitted work) at research conferences/journals that are in my areas of interest.
  • Work experience in systems and software engineering. Many of my projects require extensive software development/design expertise. I prefer students who have done internships or have worked for a few years in industry.
  • Strong recommendation letters. This is outside of your control, but make sure to ask for letters from people who have worked closely with you. I care less about the title of the letter writer than the content and the depth of the letter.
  • A strong motive for why you are applying. You should not apply to graduate school just because. Your personal statement should cogently explain why you are applying for a graduate Computer Science degree, and why you want to spend several years working as a (poorly-paid) graduate student working on research.
  • Life outside the academy. Research requires outside-the-box thinking. Applicants with non-traditional experiences that are outside the typical academic path tend to have this kind of thinking. If you have this kind of experience, make sure to weave it into your personal statement.
  • You are generally amazing. You are competing against hundreds of other applicants (last year our department received over 2,000 applications). Many of the applicants come from top schools around the world, have high GPAs, and are generally amazing. What are your best qualities? Why should our lab choose you over all these other applicants?

Note that the above is my personal perspective on the grad application process. Other professors will most definitely have a different take on this.


Final notes

I receive a substantial amount of email from prospective students, particularly prospective graduate student. I have limited capacity to reply to these emails and will usually not reply unless you have (1) applied to our program, and (2) have a profile that fits the above bullet points.