About Me
Hi, my name’s Shayan, and I’ve recently graduated with a Bachelor of Science in Computer Engineering from Iran University of Science and Technology. Right now, I am a software engineer at Informatics Services Corporation (ISC). I was a research assistant at the Bio-Inspired System Design lab under the supervision of Prof. Soroush Sadeghnejad at the Amirkabir University of Technology. Before that, I was a research assistant at the Robotics lab under the supervision of Prof. Mohsen Bahrami at the Amirkabir University of Technology.
Projects
Due to policies, I am not able to provide code that is being used as production at Informatics Services Corporation. However, I have provided sample ones which I have implemented during the development.
Central Securities Depository (CSD) V2
Informatics Services Corporation, May 2020 - Present
A new version of Central Bank of Iran’s CSD system. The project is based on the microservices architecture. As a member of team, I am reponsible for:
- Back-End services development based on Spring Boot and Spring frameworks.
- Implemented a non-blocking API gateway using Spring Cloud Gateway based on Netty.
- Secured services through Keycloak based on OpenID Connect.
- Migrate the previous admin dashboard to a new one based on Angular framework.
Iranian Instant Payment (IIP)
Informatics Services Corporation, August 2019 - Present
IIP is Central Bank of Iran’s newest inter-bank payment system. IIP services are available all-around-the clock and should result in the immediate or close to immediate crediting of the Beneficiary’s account. The project is based on microservice architecture. As a member of team, I:
- Developed a Socket.IO client based on Spring Boot for pre-defined communication between IIP and consumer banks. The client receives from and send messages to consumer banks using IBM MQ and communicates with Socket.IO server.
- Developed a terminal for real-time communication between the Angular application and the server’s command line using WebSocket and Xterm.js.
- Zuul gateway implementation for receving messages from clients based on REST endpoints and delivering them to destination services using Apache Kafka. For service discovery, Eureka server is used.
[code]
Central Securities Depository (CSD) V1
Informatics Services Corporation, August 2018 - August 2019
Central Bank of Iran’s service for providing inter-bank security market and communication with Tehran Exchange Market. The project was implemented based on microservice architecture. During the development, I:
- Developed back-end services based on Spring Boot and Spring frameworks.
- Developed Angular application components based on material design.
- Implemented microservice architecture patterns including:
AUTMan Teen Size Humanoid Robot
Bio-Inspired System Design Lab
As a member of AUTMan team, I developed:
- Ball Trajectory Predictor: Intented for solving Robocup’s humanoid robots league’s roll and kick challenge. Implemented in Python. Simulation’s data captured from ROS platform’s simulator
Gazebo.
[code]
[Paper]
- Motion Editor: a PyQt application for monitoring and configurating Herkulex servo motors and motion generation using pre-defined sequences.
[code]
- Walk Tuner
[code]
and Offset Tuner[code]
PyQt applications for walking calibration. Communication with robot is done using Arduino boards.
PS5 News Crawler
Fall 2020
An application for crawling and saving recent news from CNN and recent tweets about Playstation 5 console. Selenium is used for crawling CNN and recent tweets are crawled using Twitter Developer API.
Crawled data is persisted into a PostgreSQL database. An angular application is used for presenting crawled data and requesting for re-crawl. Tweets’ sentiments are analyzed by Stanford Core NLP and labeled in the angular application.
[code]
Unity Game with Hand Gesture Recognition
Fall 2019
A 2D puzzle game written in Unity game engine, focused on guessing words by connecting letters together.
Player can interact with the game either by matching the letters via mouse (or touch screen) or using pre-defined hand gestures that is recognized by image processing algorithm written in OpenCV framework. Game and image processing programs communicate through WebSocket. [code]
Linux Kernel Module
Fall 2019
Linux kernel module which hooks read and write system calls using ftrace and performs encrypt/decrypt actions with ROT13. [code]
English to Persian Subtitle Translation
Spring 2018
A Seq2Seq LSTM network to translate english to persian Subtitles. [code]
AUTCup Application
Winter 2018 & Fall 2016
S&P Stock Index Prediction
Fall 2017
Boxing with Q-Learning
Fall 2017
Implemented an agent learns how to box based on Reinforcement Learning. It is implemented in two phases. In the first phase, Naive Q-Learning is used. Then, the Deep-Q Network for improving the performance as the second phase.
[code]
Process Scheduler in NachOS
Fall 2017
Completing the implementation of NachOS schedulers (NachOS is an educational operating system.) [code]
Search Engine
Spring 2016
Implemented a search engine using the Inverted Index algorithm, and also A web-scrapper in Python, flask, SQLite & Scrapy. [code]
Experience
ISC is the market leading provider of banking systems to almost all commercial banks of Iran as well as many financial institutions
I am a software engineer in the “National Payment Systems Development” group. Nowadays, I am engaged in two national banking projects, Central Securities Depository (CSD)and Iranian Instant Payment (IIP).
I develop back-end services mainly through Spring Boot and Spring frameworks based on microservice and monolithic architectures. Also, I develop front-end applications with Angular framework. In terms of DevOps, I am responsible for dockerizing our services and using Jenkins for CI/CD.
Bio-Inspired System Design Lab
autman.aut.ac.irResearch Assistant
Amirkabir University of Technology
June 2016 - February 2020
I was mainly responsible for solving the Robocup’s competition Roll and Kick challenge. We designed a method for predicting ball’s trajectory by combining k-NN Regression and Autoregression methods. Also, I developed Motion Editor, Offset Tuner, and Walk Tuner softwares for our teen-size humanoid robots and Iranian standard platform robot, Kiarash. In addition, I developed, modularized, and migrated our codes to the ROS platform.
Robotics Lab
Research Assistant
Amirkabir University of Technology
October 2013 - July 2014
I got deeper into robotics and artificial intelligence concepts by researching on Q-Learning method and developing the stand-up motion for our humanoid robot based on the ROS platform.
Education
Iran University of Science and Technology
B.Sc. Computer Engineering
2015 - 2020
GPA 17.32/20 (3.72/4)
A Little More About Me
Alongside my academic and professional life, some of my hobbies are:
- Gaming; I am a huge fan of Hidetaka Miyazaki’s games.
- Running
- Movies