Shayan Khorsandi

I'm a

About

Hi. My name is Shayan. I am a software engineer with 3+ years of experience in full-stack development of cloud-native applications based on microservices architecture. I got my Master's in Digital Media from University of British Columbia (UBC). I am always eager to embrace challenges and rapidly learn new technologies.

In addition, I was a research assistant for more than three years at the Bio-Inspired System Design Lab under the supervision of Prof. Soroush Sadeghnejad. Before that, I worked under the supervision of Prof. Mohsen Bahrami at the Robotics laboratory at the Amirkabir University of Technology.


Download CV    |    Download Resume

Software Engineer & Researcher.

  • Birthday: 15 September 1997
  • Phone: +1 (236) 868 - 7483
  • City: Vancouver, BC, Canada

My Projects

  • All
  • web
  • ai
  • game
  • os
  • robotics
  • mobile

CSD V2

A new version of Central Bank of Iran’s CSD system based on microservices architecture.

SAP Feature Flag Service

SAP's Feature Flagging Service on HANA and Analytics product.

Iranian Instant Payment (IIP)

Iranian Instant Payment (IIP) is Central Bnak of Iran's newest payment system.

PS5 News Crawler

A web application for crawling the latest news from CNN and latest tweets from Twitter about PS5 console.

CSD V1

Central Bank of Iran's Central Securities Depository System

KPMG WebAR Exhibition

WebAR Application for KPMG Ignition Center's Exhibition

Reddit Analysis

Application for crawling subreddit posts from the Reddit website and analyzing their parameters and trends for comparing subreddits with each other

Coco (Unity Game)

A puzzle game made with Unity with Image processing for interaction.

EcoGo

EcoGo is an application for changing people's walking behavior by engaging them in a gamified and exciting experience.

Boxing Q-Learning

An Agent learns how to box using Naïve Q-Learning and Deep Q Network (DQN).

Ball Trajectory Prediction

A method for prediciting a rolling ball's trajectory based on the combination of K-NN Regression and Autoregression methods.

Microservices Saga Pattern

Saga is a pattern for managing distributed transactions in microservices architecture.

S&P Stock Index Prediction

S&P Stocker Index Prediction using Feed Forward Neural Networks implemented in Tensorflow.

Microservices Patterns

Implementation of microservices common patterns, including API gateway, async communication, redis sentinel, and security through OCID.

AUTMan Humanoid Robot

AUTMan Team's teen size humanoid robot for participating in robocup and firacup international competitions

Word Cloud

A project for generating word clouds for persian pop/rap songs and machine learning for predicting songs' genre.

Search Engine

A search engine based on the Inverted Index Algorithm and Flask framework.

Linux Kernel Module

A kernel module for hooking read and write system calls and encryption using ROT13

Pcap Parser

An application for extracting data from pcap files.

Cache Simulator (ios)

an ios application for simulating caching Algorithms in CPU

AUTCUP Application

Applications for robotic leagues management for AUTCUP 2018 and AUTCUP 2016 international competitions.

Resume

Education

Master of Digital Media

September 2021 - April 2023

University of British Columbia
GPA: 4.02/4.33
Details: The Master of Digital Media program is accredited and awarded by four leading Canadian post-secondary institutions: The University of British Columbia (UBC), Simon Fraser University (SFU), Emily Carr University of Art + Design (ECUAD), and the British Columbia Institute of Technology (BCIT).

B.Sc. Computer Engineering

2015 - 2020

Iran University of Science and Technology, Tehran, Iran
GPA: 17.32/20 (3.72/4.0)
Supervisor: Professor Mohammad Reza Jahed-Motlagh
Thesis Title: Ball Trajectory Prediction and Estimating Shooting Time

Research Experience

Research Assistant @ Bio-Inspired System Design Lab

2016 - 2020

Amirkabir University of Technology, Tehran, Iran
Supervisor: Professor Soroush Sadeghnejad

  • Research and Development on humanoid robots and Iranian standard-platform robot (KIARASH).
  • Design and Implementation a method for predicting rolling ball’s trajectory based on the combinations of K-NN regression and Auto Regression methods for Robocup’s roll and kick challenge in real and ROS simulator (Gazebo) environments.
  • Developed Motion Editor application for monitoring Herkulex servo motors and motion generation based on pre-defined sequences using Python, PyQt, and Arduino.
  • Developed Walk Tuner and Offset Tuner applications for walking calibration based on PyQt and Arduino.
  • Modulation, development, and code migration to the ROS platform.

Research Assistant @ Robotics Lab

2013 - 2014

Amirkabir University of Technology, Tehran, Iran
Supervisor: Professor Mohsen Bahrami

  • Research on Q-Learning method for humanoid robots ball catching approach.
  • Implementation of stand-up motion for teen-size humanoid robot based on ROS platform.

Teaching Experience

Teaching Assistant - Operating Systems Course

Spring 2019

Iran University of Science and Technology, Tehran, Iran
Instructor: Professor Reza Entezari

Teaching Assistant - Advance Programming Course

Spring 2016

Iran University of Science and Technology, Tehran, Iran
Instructor: Professor Adel Rahmani

Teaching Assistant - Foundations of Computer and Programming Course

Fall 2016

Iran University of Science and Technology, Tehran, Iran
Instructor: Professor Adel Rahmani

Publications

  • Y. Mirmohammad, Sh. Khorsandi, M. N. Shahsavari, B. Yazdankhoo, S. Sadeghnejad. ”Ball Path Prediction for Humanoid Robots : Combination of k-NN Regression and Autoregression Methods”, The International Robocup Symposium, 2021. (PDF)
  • S. Ramezani, A. Setayeshi, N. Pourmohammadi, A. Arvand, P. Yarahmadi, F. Fallah, Sh. Khorsandi, S. Sadeghnejad. ”AUTMan Humanoid Kid Size Team Description Paper”. The International Robocup 2017 Humanoid Robot League, Nagoya, Japan. (PDF)
  • M. Tamiz, E. Bararian, T. A. Shangari, M. Karimi, et al. ”AUT-UofMHumanoid TeenSize Team Description Paper”. The International Robocup 2014 Humanoid TeenSize Robot League, João Pessoa, Brazil. (PDF)

Work Experience

Agile Developer Intern

September 2022 - April 2023

SAP, Vancouver, Canada

  • Implemented REST APIs for automating specific jobs using Spring Boot in feature flagging microservice.
  • Implemented Jenkins pipelines for automating instance backups, managing other services’ data, and compiling responses from instances across all regions, reducing 2+ days of manual work to under 15 minutes.
  • Implemented unit tests using JUnit, Mockito, PowerMock, and Postman collections for automated API testing.
  • Implemented Jasmine unit tests for validating the submitted data from other services to feature flagging microservice.
  • Developed a Slack bot Integration with the feature flagging microservice for users to toggle features through Slack.
  • Produced 10+ software documents, including elaborating on changes, deployment guidelines, and Slack integration.

Software Developer

February 2022 - May 2022

Dyne Technologies Inc., Vancouver, Canada

  • Mobile application development through Flutter framework for iOS and Android platforms.
  • Redesigned the whole routing and dependency management of the mobile app for reducing memory usage and increasing performance
  • Implemented new features, including integration with Instagram and tutorial for onboarding users.

Software Engineer

May 2018 - Present

Informatics Services Corporation, Tehran, Iran

  • Developed backend services through Spring Boot and Spring frameworks based on microservices architecture.
  • Implemented microservices patterns, including Saga Transaction pattern, API Gateway using Spring Cloud Gateway and Zuul, securing services with Keycloak based on OpenID Connect, messaging/streaming using Apache Kafka and IBM MQ, and distributed log tracing using Zipkin and ELK stack.
  • Developed a Socket.IO client based on Spring Boot for communication between customers and central banks.
  • Developed dashboard monitoring and management applications via the Angular framework. Implemented a terminal for real-time communication between an Angular application and the server’s command line using WebSocket and Xterm.js.
  • Containerized applications using Docker and used Jenkins for CI/CD.

Honors and Awards

  • Technical Committee Member of Humanoid Robots League, International AUTCup 2018, Tehran, Iran.
  • Ranked 3rd in Humanoid TeenSize Soccer League as a member of AUTMan Team of Amirkabir University of Technology, International Robocup 2017, Nagoya, Japan.
  • Ranked 3rd in Humanoid TeenSize Soccer League Technical Challenge as a member of AUTMan Team of Amirkabir University of Technology, International Robocup 2017, Nagoya, Japan.
  • Technical Committee Member in Humanoid Robots League, International AUTCup 2016, Tehran, Iran.
  • Ranked 1st in Humanoid Robots Olympics League as a member of AUTMan Team of Amirkabir University of Technology, International AUTCup 2016, Tehran, Iran.
  • Ranked 2nd in Humanoid Robots Olympics League Technical Challenge as a member of AUTMan Team of Amirkabir University of Technology, International AUTCup 2016, Tehran, Iran.
  • Ranked the top 0.5% among near 200,000 participants in the “National Universities Entrance Exam” in Mathematics & Physics (2015).
  • Ranked 1st in Humanoid TeenSize Soccer League Technical Challenge as a member of AUT-UofM, Joint Team of Amirkabir University of Technology and University of Manitoba, International Robocup 2014, Joao Pessoa, Brazil.
  • Ranked 1st in Humanoid Soccer League as a member of AUTMan Team of Amirkabir University of Technology, International AUTCup 2013, Tehran, Iran.
  • Ranked 2nd in Urban Robots League as a member of High-Tech Team, International ARAIF 2012, Tehran, Iran.