University of Alberta, Edmonton, Alberta
Thesis: Effective Transfer Learning with the Use of Distance Metrics
Supervisor: Dr. Matthew Taylor
GPA: 3.9/4
Education
Msc in Computer Science
BSc in Computer Engineering (Software Engineering)
Diploma in Mathematics and Physics
2019 - 2021
BSc in Computer Engineering (Software Engineering)
2013 - 2017
University of Isfahan, Isfahan, Iran
Thesis: Facial Expression Recognition
Adviser: Dr. Amirhassan Monadjemi
Last 60 credits GPA: 18/20 = 3.83/4
Thesis: Facial Expression Recognition
Adviser: Dr. Amirhassan Monadjemi
Last 60 credits GPA: 18/20 = 3.83/4
Diploma in Mathematics and Physics
2009 - 2013
Farzanegan Amin High School, Isfahan, Iran
GPA: 4/4
GPA: 4/4
Work Experience
Data Engineer at Borealis AI, Toronto, Canada March 2022-March 2023
Xenon Project
This project included working on large amount of stock data:
- Run, maintain, and support an ETL pipeline with three stages of clean and partition,
normalization parameters calculation, and indexing in order to process the received
data from RBC with more than 15 million records (size order : Terabytes) and providing it to the research team. - Adding new features to the pipeline such as appending new features (in a distributed
manner and without requiring additional memory), and data profiling. - Leading the migration of Xenon and its Jenkins integration tests from OCP3 to OCP4
manner and without requiring additional memory), and data profiling. - Checking data quality with automated quality scripts cron jobs and monitoring the
results on Superset. - Technologies: PySpark, OpenShift, Jenkins, Delta Lake, S3, PureStorage, Superset, Grafana
Anahit
The Anahit consisted of two main subprojects: Anapipes, and Anaflow. Anapipes was a pipeline for pulling data from data warehouse by writing SQL queries, while Anaflow added the posibillity to make data pull jobs and data pull test jobs automatic via DAG definitionas on Airflow.
- Expanding Anapipes to pull data for additional datasets from data warehouse
- Migrating Anaflow to OCP4, and optimizing it by reducing the number of pvcs
- Improving code quality by adding Pylint spellcheck to Jenkins quality checks.
RBC Brain POC
- Working on a POC project in collaboration with RBC Brain to develop an ML platform
that enables researchers to develop their models faster by reducing the needed
time for environment setup. Improving the platform by adding features such as
running in local mode, training in FastFile mode, and upgrading poetry packages. - Migrating Anaflow to OCP4, and optimizing it by reducing the number of pvcs
- Improving code quality by adding Pylint spellcheck to Jenkins quality checks.
Reasrch Scientist Intern at Delphi Technology Corp, Calgary, Canada Jan 2020-Jun 2021
- Fine-tuning the reward function and training an agent to perform straight and level and climb
tasks in the X-plane flight simulator. - Analyzing (OCR,..) data of a real pilot’s flight, showing that the trained agent achieves
comparable results to a pilot - Comparing the performance of students with the performance of the trained aganet
- Technologies: Tensorflow, OpenCV, Seaborn
Data Scientist at Sadra Eye Clinic, Isfahan, Iran Aug 2018-May 2018
- Worked on data mining and predictive analysis for Retinopathy of Prematurity
on a real world dataset of over 18000 records. - Using bagging methods (Random Forest) to tackle the problem of small dataset size and achieving 84% accuracy.
- Technologies: Matplotlib, Sklearn
Backend Developer at ITOrbit, Tehran, Iran 2016-2017
- Working with JAVAEE, C++ and MYSQL to develop an ERP(Enterprise resource planning)
system named 'NAAD' for managing the information of university students and professors. NAAD was
the most famous and only ERP in academia in Iran and is used in nearly 1 out of 4 universities
across the country. - Database developer
- Software developer
- Writing a program to clean, compress & encrypt text files to increase security
- Working with TortoiseSVN and helping the IT support team to migrate from it to Git.
- Working with WampServer and Making refreshing a single page possible in it in order
to fasten developing process.
Projects
Facial Experiences Recognition: Determining which of happiness, sadness, disgust/anger, fear/surprise feeling the person in an image is experiencing.
Email Network Analysis: Analyzing the internal email communication network between employees of a company(strongly connected components, centers, diameter, radius, etc)
Path Construction Planning: A Python program to determine between which cities a new road should be constructed.
Sudoku Solver: Solving 4x4 and 9x9 Sudoku using AI algorithms such as backtracking.
Difficult words of movies: Parsing subtitle files of movies and finding the difficult words in them using the WordDifficulty.csv dataset.
Forest Cover Type Prediction: A data mining classification problem. The goal of this project was to train a classifier that is able to classify(predict) the forest cover types for areas which were not included in its training data.
Sorting Visualization: Visualizing the sorting process of three sort algorithms in a simple project in order to experiment with matplotlib animation, Streamlit and AWS EC2 servers.
Depression Measurement: : A program in LISP that can tell the user whether he is suffering from depression or not and if he is by how much. If the program recognizes that the user is very depressed it will give further advice.
Country Prediction: A program in LISP that asks about the primary attributes like its continent, Colors included in its flag, etc of a country and tells the name of the country.
Store Sales Forecasting: simple time-series forecasting project for predicting the sales of a company using Prophet.
Telegram anonymous connector: Working with pyTelegramBotAPI, an API for Telegram application, to let two people talk to each other anonymously.
Emojifier: Adding Emojis to text messages can make them more expressive and the goal of this project is to add appropriate emojis to text messages automatically.
Failed Servers Detection : Using Gaussian distribution for anomaly detection in order to detect servers with unnatural behaviors in a network.
Artificial Ant with GP:I wrote the code for solving this problem and visualized the of finding the best path. You can see its video on the project's page.
Car detection with YOLO : A program with Keras and Tensorflow and the powerful YOLO model for detecting cars. Car detection can have applications in areas such as Autonomous driving.
Research Experience
Research Assistant, University of Alberta
Supervisor: Prof. Matthew Taylor
Supervisor: Prof. Matthew Taylor
- Working on improving transfer learning (regarding final performance, jumpstart, and time to threshold)
2020 – 2021
with the use of distance metrics (action distance, next-state distance, reward distance)
in OpenAIgym environments: Pendulum and Hopper.
- Creating new source tasks for transfer learning based on two distinct distance metrics
- Comparing the quality of generated source tasks based on each metric
(regarding final performance, jumpstart, and time to threshold)2021 – Present
Research Assistant, University of Isfahan
Supervisor: Prof. AmirHassan Monadjemi
Supervisor: Prof. AmirHassan Monadjemi
- Working on video action recognition (using spatial & temporal stream CNNs)
2017 – Present
- Working on data mining and predictive analysis for Retinopathy of Prematurity
(a type of eye disease) on a dataset of over 18000 records2017 – Present - Working on autonomous robot movement with video analysis
2015
Publications
- Machine Learning and the Use of Classifier Algorithms in Identification and Classification
of the Risk for Retinopathy of Prematurity in Premature Infnats2018
Gh.Naderian, Shiva Soleimany,[and 5 others]
- A Note on the Euclidean Algorithm
2018
Shiva Soleimany, K.Bagheri
Published in the Journal of Mathematics and System Science 8 (2018) 175-6
Published in the Journal of Mathematics and System Science 8 (2018) 175-6
- A Note on Acyclic Matchings in Abelian Groups
2018
M.Aliabadi, Shiva Soleimany
Submitted to the Journal of Combinatorial Mathematics and Combinatorial Computing
Submitted to the Journal of Combinatorial Mathematics and Combinatorial Computing
Teaching Experiences
Teaching Assistant, University of Alberta
- Algorithms I
Fall 2019-Winter 2020
- Algorithms II
Fall 2020
- Introduction to Computing
Winter 2021
Teaching Assistant, University of Isfahan
- Data Mining
2016
- Data Structures
2013
- Advanced Programming(JAVA)
2015
- Technical English
2017
Instructor, Farzanegan High School (NODET)
2015-2017
- Mathematics(Algebra, Combinatorics, Geometric Analysis)
- Programming (HTML, C++)
- Mechanical Physics and Astronomy
English Instructor, Iran Language Institute (ILI)
2014-2016
- Teaching English as a Second Language (ESL) to Teenagers.
Honors and Awards
- Graduate Research Assistantship Fellowship upon admission, University of Alberta, Edmonton, Canada
2019-2021
- Graduate Student Award (3800 CAD), University of Alberta, Edmonton, Canada
2020
- Graduate Student Award (3600 CAD), University of Alberta, Edmonton, Canada
2019
- Received honorary admission from University of Isfahan graduate
studies in
Artificial Intelligence for outstanding academic success, Iran2017 - Received honorary admission from University of Isfahan graduate
studies in
Artificial Intelligence for outstanding academic success, Iran2017 - Top 10 percent during Bachelor studies
2017
- First team in the ACM contest held at the University of Isfahan
2016
- Third place in Isfahan Startup Weekend, Isfahan,Iran
2015
- Ranked top 0.007 in the Nationwide University Entrance Exam among all
students in mathematics and physics (approximately 570,000)2013 - Second place,IranOpen RoboCup Competitions, Junior Soccer Leauge
2012
- Second place,IranOpen RoboCup Competitions, Junior Soccer Leauge
2011
- Participating in the International Robotic competitions, Istanbul, Turkey
2011
- Participated in AUTCUP RoboCup Competitions, Line Follower League
2010
Certificates
- Machine Learning by the Stanford University on Coursera
- Neural Networks and Deep Learning by Deeplearning.ai on Coursera
- Sequence Models by Deeplearning.ai on Coursera
- Convolutional Neural Networks by Deeplearning.ai on Coursera
- Practical Deep Learning with PyTorch
- Linux Administration Bootcamp: Go from Beginner to Advanced
- Git Complete: The definitive, step-by-step guide to Git
- Data Analysis with Pandas and Python
- Docker Mastery: with Kubernetes + Swarm from a Docker Captain
- The Ultimate MySQL Bootcamp: Go from SQL Beginner to Expert
- Data Visualization with Python and Matplotlib
- Machine Learning for Data Science and Analytics by ColumbiaX on edX
- Introduction to Graph Theory by the University of California San Diego on Coursera
Technical Skills
- Programming Languages Python PySpark C++ Java R Prolog
- Libraries PyTorch TensorFlow Sklearn Pandas Numpy Keras NLTK NetworkX
- Database systems Microsoft SQL Server MySQL Delta Lake BigQuery SQLite Tableau Great Expectations MongoDB Grafana PureStorage Amazon S3
- Cloud/MLOps AWS (EC2, Lambda, Sagemaker, Glue) Azure Docker Airflow Jenkins OpenShift
- Web Technologies HTML CSS JavaScript JQuery XML Json