Opportunities

The lab is constantly looking for talented candidates for various programs/positions, including PhD, MCS, undergraduate student research assistants (USRA), and TA/markers. Please note that hiring strongly depends on the number of existing lab members, my availability, and available funding to support incoming students. Please read the details mentioned below before contacting me.

Table of contents

1. Research overview and projects

We research related to Software engineering topics (specifically software design and architecture, code quality, refactoring, technical debt, and program comprehension) and artificial intelligence techniques for software engineering applications. To give you a better idea about what we do, take a look at some of our research projects described below.

  • Next Generation Software Quality Analysis and Refactoring: Source code analysis, code quality issue (or, smell) identification, and refactoring have been explored extensively in the last two decades. Despite the progress, the existing methods and tools lack efficiency, rigor, extensible support for issue identification, and comprehensive support for potential refactorings. We aim to explore the next generation methods and tools by combining traditional approaches with AI-based approaches to improve the state-of-the-art in code analysis and refactoring.

  • AI-Assisted Software Development: We conduct both foundational and applied research on leveraging machine learning and large language models to support developers in key software engineering tasks, including code generation, completion, summarization, and documentation. Our work also focuses on enhancing developer productivity through intelligent tools and monitoring techniques. We study how developers interact with IDEs and other development environments to reduce cognitive load and improve efficiency—often by mining developer activity data and building smart coding assistants.

  • Energy Efficiency and Sustainability in Computing: The research lab conducts exploratory and empirical research and develops tools and datasets on sustainable AI topics. The lab has developed tools that measure and track AI's energy consumption at a fine-grained level, investigated and compared the energy consumption and run-time performance of deep learning frameworks, and studied existing techniques such as quantization and pruning to reduce AI models' computational and energy requirements while preserving their performance capabilities.

If these projects do not really interest you, consider DalSEL (lead by Prof. Paul Ralph) and RAISE (lead by Dr. Masud Rahman) within the Faculty of Computer Science at Dalhousie University.

2. Apply for post-doc

Simply emailing me your CV is unlikely to lead to a post-doctoral position—unless I already have funding and you have seen an advertised open position. Typically, you would need to secure an external post-doctoral award, such as:

To be eligible for a postdoctoral position, you must either have received your PhD within the past five years or be a PhD candidate nearing completion and close to defending. The position is open to both domestic and international applicants with a strong research record (i.e., publication(s) in a top-tier SE venue such as ICSE, FSE, ASE, ESEM, TSE, TOSEM, or EMSE).

3. Apply for PhD

If you're passionate about software engineering research and value rigorous, well-founded answers over quick but potentially incorrect ones, then pursuing a PhD may be a worthwhile investment.

You will need the following to apply for PhD at the SMART lab.

  • A Master’s or bachelor’s degree with a "good" academic record in computer science, software engineering, computer systems engineering, information systems, or a similar discipline.
  • A cumulative GPA equivalent of at least 3.7 out of 4.3 (about 3.4/4, 8.5/10, or 17/20) in your most recent degree.
  • Evidence of research aptitude, such as one or more peer-reviewed publications (or posters or presentations) in good relevant conferences, journals, or workshops.
  • English proficiency score (for instance, IELTS 7 or higher in all categories).

3.1 Funding

Funding is an important aspect of hiring graduate students. If you already have funding (from your company or a govt. organization, for example) and are just looking for a supervisor, contact me. If not, keep reading further.

Canadian citizens and permanent residents should apply for the Canadian Graduate Scholarship (typically due at the beginning of October). All applicants should apply for a Nova Scotia Graduate scholarship, through the harmonized scholarship process (typically due mid-January). Our guide for PhD applicants explains how to apply for these awards.

Once you have applied through the harmonized scholarship process, contact me. For prospective students, I typically conduct multiple-round short interviews and exercises to evaluate the candidate's fit with the lab. I also provide ample information about our work style and environment during these interviews so that the candidate can ensure that the lab and the university is a good fit for them.

4. Apply for Masters

4.1 Self-funded Masters

Most MCS students at Dal are self-funded. If you plan to self-fund, apply here as soon as possible. The official deadlines are June 1 for Canadians or April 1 for international students. You don’t have to contact prospective supervisors first. Your application should speak for itself. There is always space in my lab for enthusiastic and diligent self-funded MCS students. You will receive the same mentoring and opportunities as scholarship-funded students. I will try to help you find RA and TA work, but it’s not guaranteed.

Masters of Applied Computer Science (MACS) students do not need to have a supervisor. However, if you are interested in developing an application (either for research or entrepreneurship purposes) or contributing to the ongoing research projects, contact me.

4.2 Scholarship-funded Masters

Asking me for a funded position without you putting efforts your side will likely to go unnoticed. A better approach is to first apply for scholarships through the harmonized scholarship process (typically due mid-January). Canadian citizens and permanent residents should also apply for the Canadian Graduate Scholarship (typically due at the beginning of December). Most successful applicants have a GPA of at least 3.7/4.3. I will be happy to consider you once you apply to at least one of the scholarships, citing me as the prospective supervisor.

Reaching out to request a funded position without putting effort on your part is unlikely to receive a response. A more effective approach is to first apply for scholarships, such as those available through the harmonized scholarship process (typically due mid-January). Canadian citizens and permanent residents should also consider applying for the Canadian Graduate Scholarship (typically due in early December). Competitive applicants usually have a GPA of at least 3.7/4.3. I would be happy to consider your application once you’ve applied to at least one of these scholarships, listing me as a prospective supervisor.

5. Becoming an undergrad research assistant

Exceptional undergrads interested in research should apply for an Undergraduate Student Research Award (USRA). The deadline is usually around the end of January. Keep an eye out for announcements in December and information sessions in December or January. Both domestic and international students are eligible (domestic USRAs are funded by NSERC; international USRAs are funded by the faculty).

The USRA includes a 12-week full-time paid internship in the supervisor’s lab. Preference is given to second- and third-year students. A USRA is a great lead-in to an honours project. There is always room in my lab for USRA recipients. If you are thinking of applying for a USRA, let me know by mid-January and we’ll discuss topics.

6. Apply for TA position

If you are a student at the Computer Science Department, Dalhousie University, and would like to be a TA or a marker for the courses that I teach, please use this form to express your interest. I do not entertain any email communication related to TA/marker positions.

Finally, contact me if the above information doesn't answer your questions. You may remind me if you don't receive a response from me after waiting at least one week. If you are still waiting to receive a reply even after that, it implies that, most likely, I do not see a good overlap in the research interest between you and the rest of the lab.