Joining Our Lab

For Prospective Graduate Students

I am constantly on the look out for motivated students to join my group at the University of Waterloo. I am interested in a broad range of topics including reconfigurable computing architectures, CAD algorithms, and custom spatial accelerators for deep learning and other applications. I am also always open to learning about and exploring new research areas. If you are interested in working with me, please send an email (just one email, see tips below) with the title Prospective Grad Student: <Your Name> from <Undergraduate Institute> and make sure to include 3 things: your up-to-date resume, your undergraduate (and masters) transcripts, and a short paragraph describing why you want to pursue graduate school and what you would like to work on during your degree (feel free to look at the list of my prior publications for examples on what I would be interested to work on).

Tips for Contacting Me

It is very challenging to respond to all email correspondance from prospective students, so I am usually able to respond only to a small subset of applications that pique my interest. If I am not able to respond to your email, I appologize for that in advance! Here are a few tips to consider when contacting me:

  • Please send only 1 email. There is no such thing as emails getting lost in my inbox since I follow a very detailed scheme for managing emails that minimizes the chance of missing any. Emails from prospective students are all batched and reviewed periodically. Spamming my inbox with many emails is not useful in any way.
  • Avoid AI-generated, sloppy, and generic/blanket emails. It is very easy to detect such emails and they are ignored right away.
  • Keep your email short and to-the-point. Details live in resumes and Github repos.

What am I looking for in a prospective student?

I am looking for graduate students who:

  • are interested in continuously learning new skills/topics and tackling open-ended research questions.
  • have a strong academic record from a reputable undergraduate ECE or CS program.
  • have a good grasp of the basics of programming, electronic circuits, and/or digital hardware design.
  • can clearly communicate/present their ideas in spoken and written English.

Prior research experience and publications are strong differentiators for your application, but are not required.

Choosing your graduate school advisor

I believe that choosing your advisor is the single most important decision of your graduate school experience. You ideally want an advisor who is not only technically strong but also a nice person to work with. I was lucky to have such an advisor (Prof. Vaughn Betz) and this had a significant impact on both my work and personal life. While you are selecting your advisor, it is always a good idea to talk to his/her students or collaborators, which will give you a better sense of how it is to work with him/her. I am happy to provide contact information of a number of people that I worked closely with for this purpose, if needed.

Application process

If you are interested in working with me during your grad school, you should first email me as described above. After the initial screening of the emails I receive, I will schedule a call to chat more with a few applicants during the Fall term (September to December). Besides that, you will need to submit an application to one of the university's graduate programs. Please refer to the following links for the requirements and deadlines of MASc and PhD program applications. This link will also provide you with a detailed guide on how to apply.

For UWaterloo Undergraduate Students

I usually hire a couple of students as undergraduate research assistants (URAs) every term to work with me on open-ended research projects. Due to my limited bandwidth to provide one-to-one mentorship, I almost always select students that I have directly interacted with in the courses I teach (e.g., ECE 327, ECE 493) and are eligible for the President's Research Award. Please check your eligibility for the URA program before contacting me.

What should you expect as a URA?

The URA program is intended to give you a taste of how graduate school and academic research is like:

  • You will be thrown into deep waters to work on an open-ended research project (or standalone component of a project) that you mostly own. Therefore, independence and self-learning skills are essential for a successful URA.
  • You will meet with me once every week to discuss progress/blockers and brainstorm next steps.
  • The workload is roughly equivalent to enrolling into an additional challenging UWaterloo undergrad course.
  • A successful URA is typically extended into future terms and sometimes results in a research publication.