Welcome to my homepage

I created this website for a couple of different reasons:

  • One primary usage of this website is writing my notes, so I'm proudly using DokuWiki software because it helps me to focus on publishing and updating the content with the most negligible overhead. So, here you may find many articles about different subjects, from philosophical topics to configuring and installing a mail server. Some of them are available in English, and some of them are written in Farsi. I don't guarantee that my content is quality enough to get used in real projects. Even I don't keep them updated unless I need them once again.
  • Here, you may find a long list of my past responsibilities and experiences that may or may not be relevant to attract you as a recruiter to hire me in your company or laboratory. In addition, It complements my resume by providing a portfolio and additional documents and details regarding the items mentioned there.
  • I have been teaching as an extracurricular instructor at different universities and companies, so I have a special section on my website for sharing materials and homework with my students. You can take some time to view the courseware on my website. This section is available mainly in English, but some parts are in Farsi.

Brief Introduction

Education

Shahid Beheshti University
2019 - 2022
Shahid Beheshti University

Master of Science - MSc

Major: Information Technology
Subdiscipline: Enterprise Architecture
GPA: 19.46 / 20 (1st Rank)
Supervisor: Dr. Sadegh Aliakbary
Thesis Title: Using empirical data to support technology selection in software architecture decision-making

Activities and Societies:
I coordinated with the executive team and workshop lecturers of the Third National Conference on Enterprise Architecture at the Sharif University of Technology. (Team Page in Conference Website)

Sharif University of Technology
2012 - 2018
Sharif University of Technology

Bachelor of Science - BSc

Major: Computer Engineering
Subdiscipline: Software Engineering

Activities and Societies:
I designed and implemented a website for the department magazine, which is named Rayanesh. This site is based on MediaWiki. I also wrote articles for Rayanesh. I initiated the Free Software Users Group as well. I was Sharif AI Challenge 2015 Technical Staff, and I built a QA website for the participant's questions about the competition in this position. I also installed and configured its server for running contestants' submitted codes. Sharif AI Challenge is an International artificial intelligence competition held at SUT.

2008 - 2012
Mofid High School

High School Diploma

Major: Mathematics and Physics

2005 - 2008
Rouzbeh Cultural Institute

Middle School Education

Related Coursework

Grading in Iran is based on a 0 to 20 scale, so all grades in the below table are out of twenty.

UniversityCourseLevelGrade
Shahid Beheshti UniversityEnterprise ArchitectureGraduate20
Software ArchitectureGraduate20
Business Processes ReengineeringGraduate20
Decision Support SystemsGraduate20
Self-Adaptive and Self-Organizing SystemsGraduate19.75
Advanced Software EngineeringGraduate19.5
Enterprise Resource PlanningGraduate19.5
Knowledge and Ontology EngineeringGraduate17
Sharif University of TechnologySoftware EngineeringUndergraduate17.7
System Analysis and DesignUndergraduate17.7
Information Technology EthicsUndergraduate20
Patterns in Software EngineeringGraduate14.7
Software Engineering LabUndergraduate20

Research Experience

Data Oriented Research for Software Analytics Lab
2020 - 2022
Data Oriented Research for Software Analytics Lab, Shahid Beheshti University

Graduate Researcher

Supervisor: Dr. Sadegh Aliakbary
Thesis Title: Using empirical data to support technology selection in software architecture decision-making

Projects and Publications:
I haven't published any articles yet, but I'm working on finishing some of my projects and publishing them.

Deep Learning
Hybrid Recommender System
Google Colab
Google BigQuery
Google Data Studio
GitHub Public Datasets
Intelligent Software Engineering Lab
Sep. 2016 – Jul. 2018
Intelligent Software Engineering Lab, Sharif University of Technology

Undergraduate Research Assistant

Supervisor: Dr. Abbas Heydarnoori
Area of Research: Data collection and empirical study of GitHub repositories public data

Projects and Publications:
I participated in programming parts of the Cross-project code clones in the GitHub article, and you can find my name in the acknowledgement section of it. I developed a tool to find and fix potential bugs in source code by clone detection with the history of GitHub projects. I developed a tool to find all commits with bugs fixed later in other commits. I developed a plugin for JetBrains IDE that records users' activities.

pygit2
gensim
nltk
GHTorrent
code clone detection
JGit
JetBrains Plugin

Teaching Experience

I have taught more than two hundred people as an extracurricular instructor at various universities and companies.

OrganizerCourse TitleSemesters
Shahid Beheshti University - Culture Home CenterPython ProgrammingSummer 2017, Fall 2017, Winter 2018, Summer 2018, Fall 2018, Winter 2019, Summer 2019
Front-end Web DevelopmentSummer 2016, Fall 2018, Winter 2019, Summer 2019
Linux System AdministrationFall 2016
Web Scraping in PythonWinter 2018
Content Management Systems WorkshopSummer 2016
Sharif University of Technology - Sharif Rayan AcademyPython ProgrammingSpring 2019, Winter 2020
University of Tehran - Cultural Education and Development CentrePython ProgrammingFall 2018
Saipa Corporation - Saipa Training CenterPython ProgrammingSummer 2019
MapsaHR CompanyPython ProgrammingFall 2021

Courseware

Teaching Assistant (TA)

CourseUniversitySemesterInstructorLink
Advanced Software EngineeringShahid Beheshti UniversityFall 2021Dr. Fereidoon Shams Aliee-
System Analysis and DesignSharif University of TechnologyFall 2017Seyed Ebrahim AbtahiCourse Page
Spring 2017Seyed Ebrahim AbtahiCourse Page
Fall 2016Seyed Ebrahim AbtahiCourse Page
Sharif University of Technology (International Campus)Spring 2017Dr. Mehraneh Shantiaei-
Advanced Programming in JavaSharif University of TechnologyFall 2015Dr. Salman MarvastiCourse Page
Technical PresentationSharif University of Technology (International Campus)Fall 2014Dr. Ali Mohammad Afshin Hemmatyar-

Seminars & Lectures

Hosted by Informatics Society of Iran (Enterprise Architecture Group)

DateTitleLocationLinks
Dec 10, 2020 18 - 20Animating and Simulating Business Processes in order to Redesign ThemOnlineSlides Youtube Details

Hosted by Sharif University of Technology

DateTitleLocationLinks
Dec 19, 2017 16:30 - 18What is Net Neutrality, and Where Does it Come From?Class 202 of Computer Engineering DepartmentSlides
Dec 26, 2016 10-10:30Classroom Object Oriented Language (COOL)Class 103 of Computer Engineering DepartmentSlides
Sep 29, 2016 11:30 - 12An Introduction to ZeroNet and the Decentralized Web (Tehran Software Freedom Day Celebration)Kharazmi Hall, Computer Engineering Department-
Apr 3, 2015 9 - 12Git Version Control System (Tehran Software Freedom Day and Advanced Programming in Java Workshop)Class 102 of Computer Engineering DepartmentSlides (Part 1), Slides (Part 2)
April 30, 2014 14:40 - 15Big Data: A Scale that Reflects the Real WorldClass 202 of Computer Engineering DepartmentSlides, Voice
Nov 6, 2013 11 - 12An Introduction to Sharif University's Free Software Users GroupClass 726 of Computer Engineering DepartmentSlides, Details (archive)

Hosted by Tehran GNU/Linux Users Group

DateTitleLocationLinks
Sep 7, 2017 19 - 20:30A Comparative Introduction to MV* Patterns and Pattern FamiliesAvatech Conference Hall, School of Chemical Engineering, University of TehranYoutube, Details
Aug 3, 2017 16 - 17Managerial Anti-Patterns in Software EngineeringAvatech Conference Hall, School of Chemical Engineering, University of TehranDetails
Jul 6, 2017 16 - 17Architectural Anti-Patterns in Software EngineeringAvatech Conference Hall, School of Chemical Engineering, University of TehranDetails
June 1, 2017 18 - 19Software Development Anti-Patterns in Software EngineeringAvatech Conference Hall, School of Chemical Engineering, University of TehranDetails
March 9, 2017 18 - 19Bad Smells and How to Fix ThemAvatech Conference Hall, School of Chemical Engineering, University of TehranDetails
Feb 8, 2017 17 - 18:30Concepts and Implementation of Web CrawlersAvatech Conference Hall, School of Chemical Engineering, University of TehranDetails
Jul 14, 2016 14:45 - 16Design and Architecture of Amazon Cloud Services (AWS)Avatech Conference Hall, School of Chemical Engineering, University of TehranSlides, Details
Mar 12, 2013 19 - 20An Introduction to Anonymous Hacktivist GroupInformation Technology Organization - Building No. 2Voice, Details
Feb 26, 2013 18 - 19Some Examples of Social Semantic WebInformation Technology Organization - Building No. 2Slides, Voice, Details

Hosted by Shahid Beheshti University

DateTitleLocationLinks
Jun 9, 2020History and Theoretical Background of Performance Measurement and Brief Introduction of Some Maturity Models and Standards for Software Engineering Processes, Information Technology Management, and Business ProcessesFaculty of Computer Science and EngineeringSlides
Jun 7, 2020Software Architecture Decision Support by Analyzing Trade-offs Between Quality AttributesFaculty of Computer Science and EngineeringSlides
Jun 2, 2020A Decision Support System for Identifying Candidate Architectures and Making Software Architecture DecisionsFaculty of Computer Science and EngineeringSlides
Apr 29, 2020Preparing the Mind for Creativity and Storytelling MethodsOnlineSlides
Apr 5, 2020Semantic Storage and Retrieval Using the Resource Description FrameworkFaculty of Computer Science and EngineeringSlides
Jan 4, 2020Research Areas in Software Engineering that Address Self-Adaptive and Self-Organizing SystemsFaculty of Computer Science and EngineeringSlides
Dec 12, 2019Simulating Self-Adaptive Software Architecture with the SWIM Scenario in the Rainbow FrameworkFaculty of Computer Science and EngineeringSlides
Dec 9, 2019Introducing and Teaching How to Use ERPNext Software for Enterprise Resource PlanningFaculty of Computer Science and EngineeringSlides

Hosted by the University of Isfahan

DateTitleLocationLinks
Oct 20, 2016From Permission Culture to Free Culture: How Law Constrains Culture and CreativityFaculty of Literature and HumanitiesSlides, Details

Hosted by the Iran University of Science and Technology

DateTitleLocationLinks
May 13, 2016 15:10 - 15:55Mezzanine Content Management System Introduction and TrainingSchool of Computer Engineering - Class 122Slides, Details

Hosted by the Information Technology Organization of Iran

DateTitleLocationLinks
Mar 04, 2015 12 - 13A Society and Government's Role in Promoting Free SoftwareConference Hall of Ministry of ICTSlides, Article

Hosted by Mofid High School

DateTitleLocationLinks
2009Statistical Study of the World's Top UniversitiesMofid High SchoolSlides

Certificates

Skills

AreaSkillsLevel
LanguagePersian
native
English
fluent
Arabic
basic
Software EngineeringRequirement Gathering, System Analysis, Software Development Life Cycle (SDLC), Object-Oriented Programming (OOP), Software Testing, Code Documentation, Software Licensing
PatternsGRASP, GoF Patterns, GoV Patterns, Refactoring Patterns, Reengineering Patterns, AntiPatterns, MV* Patterns
Version ControlGIT, GitLab, Git-Flow, SemVer
Software ModelingUML, Software Architectural Design, DFD, GANTT, PERT, EER Modeling
ProgrammingPython, Bash, Java Standard Edition, C++, SQL, Markdown, XML
WebDjango, HTML5, CSS3, JavaScript, AJAX, JQuery, PHP, Mezzanine, Joomla, Magento, WordPress, MediaWiki, DokuWiki
Data ScienceRecommender Systems, Ontology Engineering, Web Scraping, Deep Learning
MethodologiesAgile Methodologies, Kanban, XP, Scrum, RUP
TypesettingLaTeX, XePersian, Libre Office, Google Docs, Overleaf
ToolsSelenium, Visual Paradigm, PyCharm, IntelliJ, Eclipse, YouTrack, Trello, Packet Tracer
GraphicsGimp, ‫‪Adobe‬‬ ‫‪Premiere
DevOpsGoogle Cloud Platform, AWS Services, Continous Delivery, Deploy on push
LinuxZimbra, Bind, Apache, Nginx, uWSGI, iptables, Fail2ban, CentOS, Ubuntu, PostgreSQL
OrganizationalEnterprise Architecture, Business Process Reengineering, BPMN, Capability Maturity Model Integration (CMMI)
Soft SkillsTeaching and presentation, Documentation, Discipline, Attention to detail
MiscellaneousCourt tennis, Movie review, Western philosophy, Free knowledge, Classical and Middle Eastern traditional music

Research Interests

I work in the area of Software Engineering. I aim to improve industrial software production practices in the following different areas.

Software Architecture

Architectural Decision Making, Software Quality, Reusability and Product Lines, Patterns

I am passionate about maintainability in code and application architecture because, as a software developer, I see how the complexity of software gets out of control if we do not invest enough in its quality and use best practices and engineering methods from the beginning.

Human Aspects of Software Engineering

Processes and Methodology Engineering, Cognitive Biases, Team Productivity and Leadership

Intelligent Software Engineering

Building Recommender Systems, Ontology Engineering, Tools and Technologies

Work Experience

Connect Platform
Jul. 2017 – Present
Connect Platform

Technical Lead

Responsibilities:
Plan and implement recruitment scenarios and human resource documents.
Develop web software using frameworks like Django and Semantic-UI.
Develop black-box regression test suits with Selenium.
System Administration of the Server and configuring LEMP Stack.

Django
Semantic-Ui
Human Resource
Metraj Co.
Aug. 2018 - Jan. 2021
Metraj Co.

IT Consultant

Accomplishments:
Install and maintain JetBrains YouTrack and JetBrains Hub Services as the issue tracking and project management systems for software development projects.
Install and manage DokuWiki as a wiki software for writing tutorials and meeting agendas.
Install and document Linux infrastructure for the company-developed products and internal company services.
Plan and participate in Sharif JobFair Exhibition 2018.
Requirement gathering and writing analysis documents.
Write scripts to extract data on real estate transactions from the Ministry of Roads & Urban Development website.
Coach the organization for reengineering the current system.
Train the team on various topics like Software Testing and Continuous Delivery and Version Control.

YouTrack
Behestan Rayan Co.
Sep. 2012 – May. 2016
Behestan Rayan Co.

Linux System Administrator

I worked with Datacenter, Research & Development Department, and Marketing Department in this company. Moreover, I fulfilled projects for some of Behestan’s clients, such as the Municipal Employees Fund Institution and Kosar Credit Institution.
Accomplishments:
Setup, hardenings, and performance tuning of various GNU/Linux servers, including Debian, Ubuntu, and CentOS.
Install and configure VMware ESX, vCenter, and VMware vSphere in an environment with shared nodes and physical resources.
Install and configure Linux Services, including LAMP, Bind, Zimbra Collaboration System, and Cacti.
Work with HP Generation 8 and 9 Servers.
Lecture in Big Data and Relational Database and Filing approaches. (Course Page)
Implement, optimize SEO and improve the performance of the company and its client's multilingual websites based on their specific requirements, using web frameworks.

Joomla
Zimbra

Projects

TypeDateTitleAccomplishments
Freelance ContractJun. 2017 – Sep. 2017Appetizer Production DeploymentLinux System Administration
Jun. 2016 – Oct. 2016Bitervan Online StoreDesign and Implementation
Sep. 2009 – Mar. 2010Materials and Energy Research Center VoIP ServiceVoIP Installation and Setup
Course ProjectSep. 2015 – Jan. 2016Judge System Based on Wiki PlatformUndergraduate Project
Jan. 2017 – Feb. 2017Wikipedia SearcherCourse: Modern Information Retrieval
Jun. 2016 – Oct. 2016Bilityab Ticket Sales and Distribution Web SiteCourse: System Analysis and Design

 Volunteer Experience

Free Knowledge Foundation
Sep. 2010 – Present
Libre/Free Knowledge Foundation

Founding Member

I have been an active volunteer member of the Free Knowledge Foundation for more than seven years. In this position, I organized the Software Freedom Day (SFD) conference, held in Tehran in 2013, 2015, and 2016. Besides Tehran SFD, I have coordinated weekly meetings about philosophical aspects of Free Knowledge since July 2013. Also, I have been responsible for running and maintaining the wiki, editing and writing papers on the wiki, translating the various selected articles, and composing subtitles for chosen speech videos from the prominent people of the free software movement.
I had speeches more than twenty times about technical, social, and philosophical aspects of free software and free knowledge at events such as SFD, PyCon, and TehLUG weekly meetings at the Sharif University of Technology, University of Isfahan, Iran University of Science and Technology, Avatech Startup Accelerator (University of Tehran), Information Technology Organization and Arasbaran Cultural Center.