Welcome to R3iSE, Software Egineering group @ SCS, McGill University.
We are passionate about discovering emerging tech. and empowering people

I was born in Tehran (Shemiran), the capital of Iran, in 1988. I have obtained my Ph.D. in December, 2021, in software Engineering at School of Computing, Queen's University, Canada, under Prof. Juergen Dingel supervision. My Ph.D. thesis was on Regression Testing of Distributed Real-Time Embedded Systems in the Context of Model-Driven Development.
Recently, I have joined School of Continuing Studies (SCS), McGill University where I work as an Assistant Professor and Academic Program Coordinator at Technology and Innovation Group. I am also serving as a member of Strategic Planning Committee at SCS where we design/adjust school's long-term vision.
During my Ph.D. studies I have been involved in many industrial and academic projects such as:
Before I moved to Canada, I worked for one year in the Internet of Things (IoT) department at Bosch Engineering Group GmbH in Germany. Meanwhile, I have completed 6-month internship and 6-month master thesis that gave me an exceptional opportunity to explore fundamental concepts of Big Data Analytics, Artificial Neural Networks, and Deep Learning. Before that, I had the opportunity to work for around 2 years as a software developer at EPAK GmbH which is a satellite communication company based in Leipzig. During this time, I have implemented some software projects in Python and C/C++ programming languages to provide reliable satellite communication. Moreover, I have implemented a web-based content management system using PHP, MySQL and JavaScript programming languages.
I obtained my Bachelor degree (B.Sc.) from Shahrood University of Technology in Iran, in the field of Software Engineering. After my graduation, I joined Farazpajohan, a software tech startup company in Sharif University of Technology, where I've started my first professional position and worked for around 3 years. In this company I have been responsible for developing PKI-based Digital Certificate solutions in CentOS Linux environment.
I shared my thoughts and experiences in a lovely interview with Steven Myers at SCS, McGill University.
Download resume as PDF formatHere is a list of past and current projects people@R3iSE been involved over the past few years!
McGill University |
Fall'23 - ECSE 437: Software Delivery (Description) |
ECSE 437 is a core course in the Computer Engineering stream in Electrical and Computer Engineering department at McGill University.
I will be teaching this course in Fall semester 2023 with the help of two Grad. TAs:
Assigments5 Labs Short Exams3 Quizzes Course ProjectFinal ExamThe core concepts
|
Fall'23 - CCCS 301: Programing Techniques 2 (Description) |
Computer Science (CCE) : Object oriented design and programming techniques, including the creation of classes, the use of objects, inheritance, and other object oriented principles. Strong focus on problem solving techniques and ways in which programmers can support decision-making within an organization. Inheritance. Interfaces. Design patterns. Application development frameworks. Build automation tools. |
Summer'23 - CCCS 330: Database Design and Business Applications Development (Description) |
Computer Science (CCE) : Design and implement applications that make use of different database management systems. Simple and complex Structured Query Language (SQL) used in manipulation of information, data design, querying, and programming. Connectivity to different databases through programming languages to implement web applications. |
Fall'22 - ECSE 437: Software Delivery (Description) |
ECSE 437 is a core course in the Computer Engineering stream in Electrical and Computer Engineering department at McGill University.
I will be teaching this course in Fall semester 2022 with the help of two Grad. TAs:
Assigments3 Labs Short Exams3 Quizzes Course ProjectFinal ExamThe core concepts
|
Concordia University |
Winter'23 - COMP 218: Fundamentals of Programming ( Description) |
The primary objective of this course is to enable you to understand the basic principles of programming with classes and objects. The language used for the course is C++, chosen because it supports object oriented programming and because it is widely used in industry. By the end of this course students should be able to: 1. Develop an algorithm for the solution of a word problem. 2. Write a complete C++ program given an algorithm. 3. Describe the output of a C++ program written by someone else. 4. Start judging the efficiency of a program. The course will include discussions and explanations of the following topics (not necessarily in this order): algorithm development; data types, expressions, and operators; input and output; assigning values to variables; control structures for decision and repetition; one dimensional arrays; the use of libraries; functions; classes and objects: design and implementation of simple classes; class descriptions, class development, program development using classes. |
Fall'21 - COMP 218: Fundamentals of Programming (Description) |
The primary objective of this course is to enable you to understand the basic principles of programming with classes and objects. The language used for the course is C++, chosen because it supports object oriented programming and because it is widely used in industry. By the end of this course students should be able to: 1. Develop an algorithm for the solution of a word problem. 2. Write a complete C++ program given an algorithm. 3. Describe the output of a C++ program written by someone else. 4. Start judging the efficiency of a program. The course will include discussions and explanations of the following topics (not necessarily in this order): algorithm development; data types, expressions, and operators; input and output; assigning values to variables; control structures for decision and repetition; one dimensional arrays; the use of libraries; functions; classes and objects: design and implementation of simple classes; class descriptions, class development, program development using classes. |
Queen's University |
Fall'21 - ELEC 377: Operating Systems (Description) |
ELEC 377 is a core course in the Computer Engineering stream in Electrical and Computer Engineering department at Queen's University.
I've thought this course in Fall semester 2021 with the help of 8 TAs (4 undergrad TAs and 4 Grad. TAs).
I thought the students the basic concepts of operating systems and the historical and technical basis for many of the features that are in current operating systems.
|
The more I have been in industry, the more I realize that when it comes to a collaboration with an enterprise, quality and customer satisfaction cannot be compromised! Creating a pipline of the best practices technologies, perfomring regurous analysis, is one of the most promissing ways to ensure the quality of an industrial-grade projects. Leveraging on my academic skills enabling me to effectively served many companies/organisations in various domains.
We are just one click away! I am always open to new opportunities and challenges, so if you have any ideas in the domain of software engineering and AI, I will be happy to help you and your team. Please fill out the form below and share with me some detail of your idea!