About Me

Hello,
I am Siavash Ganji and I study Master of Science in Computer Software Engineering at Sharif University of Technology. I’ve mostly worked professionally with Python but also a little bit with Java. In my spare time I enjoy escaping from escape rooms with my friends, taking photos and developing telegram bots.
My skills
Programming | Python, Java, Android, JavaScript |
Databases | PostgreSQL, Redis, MySql, Mongodb |
Frontend | HTML, CSS, jQuery, Angular |
Framework & Libraries | Django, Celery, Pandas, NumPy, Keras, Hadoop |
Other | Linux, Docker, Git, GitHub, Gitlab CI/CD |
Education

Expected graduation date: January 2021
GPA: 18.66 out of 20 (4 out of 4)
Advisor: Prof. Abbas Heydarnoori
Thesis Title: Automated generation of commit messages in code repositories
Selected Courses:
- Semantic Web 20/20
- Software Testing 19.2/20
- Software Requirement 19/20
- Formal Specification of programs 18.8/20
- Software Evolution 18/20

Overal GPA: 15.88 out of 20 (3.06 out of 4)
Last 2 years GPA: 3.4 out of 4
Advisor: Prof. Ali Katanforoushi
Project Title: AI/NLP Bot Template for Gomanesh Contest
Selected Courses:
- Database Design and Analysis 20/20
- Design Compilers 20/20
- Datamining 19/20
- Linear Algebra 19/20
- Cryptography 18/20
- Artificial Intelligence 18.5/20
Publications
Topic Recommendation for Software Repositories using Multi-label Classification Algorithms (2020)
Abstract: Many platforms exploit collaborative tagging to provide their users with faster and more accurate results while searching or navigating. Tags can communicate different concepts such as the main features, technologies, functionality, and the goal of a software repository. Recently, GitHub has enabled users to annotate repositories with topic tags. It has also provided a set of featured topics, and their possible aliases, carefully curated with the help of the community. This creates the opportunity to use this initial seed of topics to automatically annotate all remaining repositories, by training models that recommend high-quality topic tags to developers.In this work, we study the application of multi-label classification techniques to predict software repositories’ topics. First, we augment GitHub’sfeatured topics. The core idea is to derive more information from projects’available documentation. Our data contains about 152K GitHub repositories and 228 featured topics. Then, we apply supervised models on repositories’textual information such as descriptions, README files, wiki pages, and filenames. We assess the performance of our approach both quantitatively and qualitatively. Our proposed model achieves [email protected] and LRAP of 0.890 and 0.805,respectively. Moreover, based on users’ assessment, our approach is highly capable of recommending correct and complete set of topics.
Keywords: Topic Tag Recommendation, Multi-label Classification, Recommender Systems, Mining Software Repositories, GitHub

Advanced Topics in Python (2020)
Python has become one of the most popular programming languages due to its simplicity and flexibility and is used in many fields, including data science, artificial intelligence, and web service development. Many developers do not know all the features of this language or do not use it properly. In this book, you will learn how to use Python language features correctly. This book examines different versions of Python, common mistakes, and idioms to turn you into a professional programmer. This book also describes functional programming, logging, testing, and package publishing as well.
Published by Dibagaran Tehran, Selected as the top university publisher in 28th Tehran International Book Fair.
Thesis: Automated Generation of Commit Messages in Code Repositories (2020)
Abstract: Software requirements change frequently hence during software evolution and maintenance, source code change are being committed in the software repositories. Reading the source code to understand the change is a very time consuming and tedious activity. Commit messages contain information about code change that let the developers know the nature of the change without having to read the source code. Unfortunately, developers neglect to write these messages due to the pressure of deadlines and lack of time. Commit messages can speed up the process of understanding the program for developers and also play an important role in writing software documents. Therefore, an automated method for generating commit messages is important. The former methods are divided into three categories: template-based, information retrieval, and deep learning. Deep learning is used nowadays to summarize code changes. One of the problems with previous methods is the lack of standard data. Also, if there is a lot of data, these methods are very time-consuming in training. Therefore, in this study, Java codes has been collected from the code repositories of the GitHub and has become a standard database during cleanup and tokenization. A pre-trained transformer model is used that can process and train large volumes of information in parallel. Afterward, commit messages are generated by finetuning the available data on the pre-trained model.
Keywords: Code Change Summarization, Commit Message, Deep Leaening, Software Evolution
AWARDS & HONORS
- Ranked 1st in the Gomanesh AI/NLP competition held by Shahid Beheshti University. (2018)
- Ranked 2nd in the fourth Codecup competition (Python) held by Quera.ir. (2019)
- Ranked 3rd in the fifth Codecup competition (Python/Django) held by Quera.ir. (2020)
- Ranked 3rd in the first Botcup competition held by srrc.sharif.edu. (2019)
- Ranked 4th in the fourth Codecup competition (Django) held by Quera.ir. (2019)
- Ranked 7th among more than 19,000 students in M.Sc. National Universities Entrance Exam. (2018)
Certifications
LPIC
Tehran Institute of Technology
Teaching Python
Ministry of Science, Research and Technology
Network +
Rahin Co
Teaching Experience
- Teaching Assistant, Data Science For Software Engineering (Graduate Course)
Instructor: Prof. Abbas Heydarnoori, Sharif University of Science and Technology (2020) - Teaching Assistant, Database Design and Analysis (Undergraduate Course)
Instructor: Prof. Abbas Heydarnoori, Sharif University of Science and Technology (2019) - Teaching Python Programming Language
Online class at cafetadris. – (2018)
- Teaching Assistant, Advanced Programming (Undergraduate Course)
Instructor: Prof. Adel Hosseini, Shahid Beheshty University – (2017)
Experience

Optimizing and converting old Clarity system into RESTful webservice which
MCI (Hamrah Aval) uses it as OSS.
Technologies: JavaEE, Oracle DB, Spring, GWT, RabbitMQ, Hadoop, HBase
Angular, Kafka

Jomlex is an Iranian social networking service.
Technologies: Python, Django, Celery, Redis, Ubuntu, NginX, PostgreSQL, Android, Java
Retrofit, Picasso

Participating in Ahmadi Roshan Project Founded by Iran National Elites Foundation
Under the supervision of Prof. Behroozi and Prof. Soleymani
Developing Backend and Designing Database Schema for Sina Hospital Information System.
Technologies: Python, Django, Celery, Redis, Graphene, NginX, PostgreSQL,
Docker, GraphQL

Design and Implementing Telegram bot games.
Technologies: Python, Redis, PostgreSQL, SQLAlchemy
Portfolio
- All
- Backend
- Bot
- Game
- Persian
Subtitle Downloader
BotEnjoy downloading movie/series subtitles easily. You can also filter subtitles by language and episode number.

Spamgram
BackendIt is a web-based platform connects automatically to Instagram despite of all restricted API, it provides a user-friendly dashboard to…

HFX
BackendThis is a light-weight and smooth HDFS (Hadoop File Manager System) Written in Python and Django. It has some essential…

Subfix
BotSubfix is a telegram bot can fix encoding problem in subtitle file. It accepts Srt and Zip file.

Dlnew
BotDlnew is a telegram bot that send you file in social media like Youtube, Instagram, Pinterest, Soundcloud, Twitter, Radio Javan…

WOW 504
BotPersianWorld of Words 504 is a telegram bot that help you to learn new words in 504 essential word. it…

Siarobo
BotSiarobo is a multi plugins bot in telegram. It can chat, send youtube video, get music, get lyric, get subtitle,…

Nasser bot
BotGamePersianNasser e din Shakh was my second experience in developing telegram game with escaperoom.ir group. It is funny with some…

Contagion Bot
BotGamePersianIt was my first cooperation with Escaperoom.ir group. It is Online Escape room game in telegram.

Interests

Escape Room Team Leader
I like to manage a group of people to escape from escape rooms. I believe the escape room is a team-building activity and helps me to boost my skills in project management, communication, and problem-solving.

Running E-Commerce Business
Starting an online business is a challenging activity. I like to go through different business courses and try them in reality. Starting a business also allows me to interact more with people in areas other than software engineering.
Channels
Recent posts
