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 formatI am extremly grateful for having the opportunity to work with amazing people over years in academia and industry. Here you can find a list of the students who have collaborated in my group:
Zachary Hayden, BEng. @ECE, McGill University
I have experience working as a data engineer for Boston University Medical Lab for Neurobiology working with high fidelity actigraphy data. I've been a part of McGill's prometheus robotics lab working with Joseph Vybihal, and I'm the former software lead for McGill's Space Club. My favorite programming language is currently Rust, although scala comes as a close second. I make use of GitHub Copilot as an AI tool for assisting with development speed. I'm interested in advancing the DevOps field and connecting it more intuitively to the AI development pipeline.
Felicia Sun, CS. @ECE, McGill University
Currently, I have the privilege of working with Dr. Babaei on a systematic literature review focusing on AI-augmented test automation techniques within the realm of DevOps. I am also part of Dr. Ruths' Bot or Not project, where we investigate the dynamics between bots and bot detection systems on social media. My favourite programming languages are Java and Python, and I've been able to get hands-on experience with them through my internships and group projects. During my most recent internship, I worked in Java in a team of software engineers to predict cloud computing costs across AWS, Azure, and GCP cloud platforms. Upon graduating from Honours Software Engineering in 2024, I aim to apply my skills and knowledge at tackling substantial real-world challenges in DevOps and software engineering. Beyond tech and academia, I enjoy hanging out with friends, gaming with them, and exploring new sports.
Michael Buchar, BEng. @ECE, McGill University
I was born and raised in the Czech Republic with an interest in computer science, education, finance, rocketry, and cycling. I have successfully completed my B.Eng. in Software Engineering at McGill University with a Minor in Aerospace Engineering in 5 long and rewarding years! During my undergraduate studies, I served as a Teaching Assistant for COMP 206 and COMP 202. Currently, I hold the position of Senior Software Developer at RBC, contributing as a full-stack developer proficient in TypeScript, React, Python, and Java helping with automation and implementing cloud platforms. Among all these languages, Python stands out as my favorite. During my Capstone Design Project, I collaborated with Dr. Babaei on an NFT Locker - an innovative decentralized application designed to lock non-fungible tokens. My favorite AI tool at the moment has to be Chat-GPT.
Dominic Chan, BEng. @ECE, McGill University
As an Electrical Engineering graduate with interests in software, AI, embedded systems and electronics, I completed my studies at McGill with a Bachelor of Engineering in Electrical Engineering in 2023. During my undergraduate studies, I had the opportunity to work with Dr. Babaei for my Final Year Capstone Design Project. With his dedicated guidance and support, we created an innovative decentralised application to lock NFTs, a web-based application designed to shield users from having their NFTs hacked and stolen especially from phishing links. In the world of software and technology, Python is my preferred and most used programming language, especially due to its simplicity and efficiency for data analysis, as well as its AI and Machine Learning applications. Furthermore, ChatGPT has been a great resource in aiding me during my studies. It is a tremendously useful tool in helping me continuously learn and further my understanding of technical and complex concepts.
Zakaria Bouhemhem, BEng. @ECE, McGill University
I am Zakaria Bouhemhem, currently wrapping up my Computer Engineering degree at McGill University. My favorite programming language is Java, which I've mastered during my coursework and used extensively for various projects. I'm also adept with Eclipse, an IDE that I find intuitive and efficient for my development work. Outside of my academic endeavors, I'm an avid strategy game player and love to immerse myself in the great outdoors, engaging in activities like skiing, snowshoeing, hiking, and running, which provide a refreshing balance to my studies.
Here is a list of past and current projects people@R3iSE been involved over the past few years!
McGill University |
Winter'24 - 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. |
Winter'24 - CCCS 300: Programing Techniques 1 (Description) |
Computer Science (CCE) : Fundamental programming techniques, concepts, and data structures, including modularization and maintainability. Emphasis on facilitating communication and understanding between systems analysts and programmers to support decision-making. |
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!