×
Rustin Soraki

Rustin Soraki

B.Sc. in Computer Engineering

School of Electrical and Computer Engineering, University College of Engineering, University of Tehran, North Kargar st., Tehran, Iran, 14399-57131
Farsi, English

Background


About

About

My name is Rustin Soraki. I'm currently working as a reaserch and development engineer at JCo. Previously, I studied a B.Sc. in Computer Engineering at the University of Tehran. My interests are mainly in Machine Learning and Computer Vision, and I also spend my leisure time on cryptocurrencies trading and developing mathematical or learning-based trading bots.

Education

Education

  • Computer Engineering, Bachelor of Science, University of Tehran

    Sep, 2016 - Apr, 2022

    • Software Engineering major
    • Last Two Years GPA: 19.37/20 (Total GPA: 17.25/20)
    • Awarded a governmental full Tuition-Waiver scholarship

    Artificial Intelligence - 18.75/20

    Neural Networks - 19.74/20

    Engineering Mathematics - 20/20

    Signals and Systems - 18.2/20

    Introduction to Software Testing - 19.3/20

    Advanced Software Design - 19.07/20

    Software Engineering - 19.1/20

  • Physics and Mathematics, Diploma, Sampad, Shahid Beheshti

    Sep, 2011 - Sep, 2016

    • Total GPA: 19.69/20
Research Interests

Research Interests

  • Machine LearningComputer VisionObject detectionMedical ImagingTime-series AnalysisReinforcement LearningBlockchainSoftware EngineeringData Mining
Research Experience

Research Experience

  • Undergraduate Research Assistant, University of Tehran

    Feb, 2021 - Present

    • Working on Texture Synthesis problem in Single-View 3D Reconstruction

    • Best Undergraduate Project Award

    • Under the Supervision of Prof. Hadi Moradi and Prof. Reshad Hosseini

  • Research and Development EngineerJadooye Fekr (JCo)

    Jan, 2019 - Present

    • Associated with machine learning, computer vision, time-series analysis, cryptocurrencies and python skills

Publications

Publications

  • Texture Synthesis for 3D Shapes with Complexly Repetitive Pattern Using Poisson Blending, Drafted

    To be published

    • Under supervision of Prof. Hadi Moradi and Prof. Reshad Hosseini, University of Tehran, Iran.

    • One of the biggest challenges in 3D reconstruction is single-view 3D reconstruction, a topic that has recently received much attention with hardware and software advances. This problem contains two main challenges: the production of 3D model geometry and the production of texture. This study aims to produce the texture of a 3D model using the object's surface patterns from the input image using a repetitive slice extracted from it. We utilize a linear optimization strategy to address the problem by minimizing color disparities and light intensity in the border sections of recurring design slices by utilizing image editing in the gradient domain and Poisson blending. We employ our method on middle-eastern domes and pottery with repetitive patterns, and the results demonstrated that using this method leads to visually smooth textures that are comparable with the object's original pattern. Texture generation for objects with an odd number of repetitions in their surface patterns and the ability to preserve textual sections of the pattern are two advantages of the suggested method.
  • Learning Tensorflow 2.0 (Farsi Translation), Simorgh Azargan Publications

    Published on: May 01, 2021

    • Farsi translation of ”Learn Tensorflow 2.0” by Pramod Singh and Avinash Manure

Honors & Awards

Honors & Awards

  • Best Undergraudate Final Project Award , University of Tehran

    Awarded on: Mar, 2022

    • For "Texture Synthesis for 3D Shapes with Complexly Repetitive Pattern Using Poisson Blending"

  • Iran's University Entrance Exam , Sanjesh

    Awarded on: Aug, 2016

    • Ranked 269 (Top 0.2%) in Konkur(Iranian University Entrance Exam) among more than 160,000 participants

Volunteer Work

Volunteer Work

  • Teaching Assistant, University of Tehran

    Sep, 2017 - Feb, 2022

    • Neural Networks and Deep Learning - Prof. A. Kalhor

    • Artifial Intelligence - Prof. H. Moradi & Prof. H. Fadaei

    • Software Systems Analysis & Design - Prof. F. Ghasemi

    • Introduction to Programming and Computing Systems - Prof. H. Moradi & Prof. M.R. Hashemi

Certificates

Certificates

  • Cloud Computing Concepts, Part 1University of Illinois Urbana-Champaign

    Issued on: Jun, 2022

  • Neural Networks and Deep LearningDeepLearning.AI

    Issued on: Jul, 2021

  • GCP Big Data & ML Fundamentals, Binx.io | Part of Xebia

    Issued on: Jun, 2021

  • Security +, Karyar Argham (Carrier Digit)

    Issued on: Mar, 2020

  • Computer Vision, Robotech Academy

    Issued on: Dec, 2019

  • Iran Blockchain Summer School, Sharif Accelerator

    Issued on: Aug, 2019

Projects Experience

Projects Experience

  • A Framework for Executing Trading Strategies  |  Python, Deep Learning, Algorithmic Trading, Pandas, Forecasting

    2022

    • With capabilities to backward or forward test implemented strategies.

    • Implementing different cryptocurrencies trading strategies based on different indicators.

    • Implementing different trading strategies using deep learning methods.

  • TradeGate  |  Python, Algorithmic Trading, Pandas

    2022

    • A python library for algorithmic trading and connecting to different exchanges.

    • Unifying different exchanges' APIs.

    • Implemented using different design patterns.

  • Automatic Real-Time Refereeing for Bocce Ball Game  |  Python, Computer Vision, Object Detection, Pytorch, OpenCV

    2021

    • Using four wide angle cameras above the center line of the game court.

    • Detecting balls on the ground (four colored balls with a single white ball) using YOLOv5.

    • Finding exact distance between colored balls and the white ball using different geometry and image processing techniques.

    • Implemented mainly using OpenCV functions.

  • Finding Sentence Similarities  |  Python, NLP, Django

    2021

    • For farsi sentences, using ParsBERT.

    • Implemented for a knowledge management system.

    • Converting sentences to vectors and finding similar sentences using cosine similarities.

    • Provided REST API endpoints using the Django framework.

  • An Automatic License Plate Recognition for Iranian Plates  |  Python, Pytorch, Object Detection, Django

    2020

    • Using YOLOv3 and updated to YOLOv5.

    • Data acquisition was made manually, and different image augmentation techniques were used on the dataset.

    • Image augmentation is done using the "Albumentations" package and editing the labels correctly.

    • Implemented as a two-step detector: First locating the plate and then recognizing plate characters inside the plate area.

    • Provided REST and SOAP API endpoints using the Django framework.

  • Training CGAN on Fashion-MNIST dataset  |  Python, Keras, Deep Learning

    2020

    • Training the GAN network and generating new data.

    • Analyzing effects of different loss functions and optimizers in training.

    • Generating different results using different latent space points and decoder networks.

  • Training Variational Auto Encoder and Conditional Variational Auto Encoder on MNIST dataset  |  Python, Keras, Deep Learning

    2020

    • Training the encoder and the decoder parts.

    • Visualizing the data in latent space with a scatter plot.

    • Generating different results using different latent space points and decoder networks.

  • Text Generation Using RNN Network  |  Python, Keras, NLP

    2020

    • Using Shakespear dataset.

    • LSTM layers for data generation and memory.

  • Video Frame Prediction Using CNN and RNN  |  Python, Keras, Image Processing

    2020

    • Predicting future frames of pendulum movement video.

    • 1, 5, 10, 20, 50 frames look-ahead window.

    • Using convolutional layers to implement an encoder and a decoder to reduce the frame's dimensions.

    • Using LSTM layers as the middle part of the network between encoder and decoder to predict future frames.

  • Solving Frozen Lake Problem Using Q-Learning and Deep Q-Learning  |  Python, Keras, Reinforcement Learning

    2020

    • Using "FrozenLake v0" environment from gym.

    • Implemented Q-learning method.

    • Implementing Deep Q-Learning with experience replay using keras.

  • YOLO Object Detection on Chess Pieces Dataset  |  {Python, Keras, YOLO, Computer Vision, Object Detection

    2020

    • Using YOLO-v5.

  • Transfer-Learning with EfficientNet  |  Python, Keras, Deep Learning

    2020

    • A review on EfficientNet novelties and network structures.

    • Running inference using EfficientNet-B0 using Keras.

    • Transfer learning using EfficientNet-B0 top part and custom dense layers to classify two classes from the CIFAR-10 dataset

  • Solving Simple Problems using Multi-Layer Perceptron  |  Python, Keras, Neural Networks

    2020

    • Predicting average daily rates of "Hotel Booking Demand" dataset as a regression problem.

    • Predicting labels of CIFAR-10 dataset as a classification problem.

    • Implemented using Keras library.

    • Analyzing effects of using different activation functions, loss functions, optimizers, and evaluation metrics.

    • Providing and implementing a solution for unbalanced data.

  • Software testing course projects  |  Java, Software Testing, JUnit

    2020

    • Different testing methods implemented on "Spring PetClinic Sample Application".

    • Testing methods including JUnit, test doubles, code coverage methods, input‌ space partitioning, API testing, mutation testing, UI testing, and BDD.

  • Ball on Plate Balancing System  |  Python, OpenCV, Computer Vision, Socket Programming, PID Controller

    2020

    • Using a rectangle plate with four arms and a camera above the plate.

    • Fetching ball position using camera and object detection based on the ball's color.

    • Balancing the ball in the center of the plate using a PID controller and four-step motors.

  • Jalas Website  |  Java, Java Spring Framework, SQL, NoSQL, REST API

    2019

    • A website to set meeting dates.

    • Creating users and meetings, adding users to meetings, editing meetings, and notifying meeting invitees through email.

    • Java Spring Framework for the back-end and Reach.js for the front-end.

  • Jaboonja  |  Java, Java Spring Framework, HTML, CSS

    2019

    • Implementation of a web application for finding projects to do if you are qualified for them.

    • Implemented in Java(Spring framework) for backend and JavaScript(React.js) for frontend.

  • "UCI Heart Disease" data set classification  |  Python, Artificial Intelligence, Machine Learning, Data Science

    2019

    • Using bagging decision tree and random forest methods.

  • Saadi and Hafez poem classification  |  Python, Artificial Intelligence, Machine Learning, NLP, Data Science

    2019

    • Pre-processing and using the bag-of-words method on the Saadi and Hafez poems dataset.

    • Classification using naive Bayes method.

  • Simple Intelligent Game Players  |  Python, Artificial Intelligence

    2018

    • Checkers player using Mini-Max algorithm with alpha-beta pruning method.

    • PacMan player using different searching algorithms (A*, IDS, BFS) to design an intelligent PacMan in a modified game version.

  • Operating Systems Course Projects  |  C, C++, Operating Systems, Socket Programming, Threading, Distributed Systems

    2018

    • Synchronization of MLP Neural Networks Using Semaphores: Using semaphore locks to assure synchronization and output integrity of distinct concurrent processes in each layer of an MLP neural network.

    • Multi-Thread Store Search: Using load balancing and multi-threading through a pipeline and asynchronous forking techniques.

    • Online Battleship Game: Using the C programming language, createing a Battleship game in which the server connects two clients and the game runs in a peer-to-peer manner.

  • Image compression and decompression  |  Verilog, C, Computer-Aided Design

    2018

    • With color space conversion (RGB to YUV), downsampling, signal transform, quantization, and lossless coding steps for compression.

  • Advanced Programming Course Projects  |  C++, RSDL, Qt

    2016 - 2017

    • Taxiare: A taxi ordering application: Client-Server architecture, Qt application with user administration, pricing computation (using graph search methods), and graphical interface.

    • "Plants Vs. Zombies" Game: Simple graphical implementation, employing the RSDL library for graphical rendering and simple C++ to handle various moving elements.

    • Image Steganography: Using a cipher key to perform both the encryption and decryption of a text message contained within a picture.

  • Simple project version control  |  C

    2016

    • With the capabilities of creating users and projects, adding users to projects, versioning projects, and keeping track of the versions.

Skills

Skills

  • Programming

    Python

  • Programming

    C

    C++

    Java

    Verilog

  • Programming

    SQL

    C#

  • Machine Learning

    Pandas

    NumPy

    Keras

    PyTorch

    Scikit-Learn

    Jupyter Notebook

    CNN

    RNN

  • Other Technologies

    Docker

    Git

    JUnit

  • Web Development

    Django

    Java Spring

  • Markup Languages

    Latex

    HTML

    CSS

  • Software Engineering

    OO Design Patterns

    Agile

    Scrum

    Software Testing Methodologies

    TDD

    BDD

  • Operating Systems

    Linux

    MacOS

Interests

Interests

  • Personal

    ExercisingReading BooksSoccerCookingTravelingVideo Games
  • Music

    Alternative RockAlternative MetalRapHip HopClassical Music