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
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
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.
Mofid High School
High School Diploma
Major: Mathematics and Physics
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.
University | Course | Level | Grade |
---|---|---|---|
Shahid Beheshti University | Enterprise Architecture | Graduate | 20 |
Software Architecture | Graduate | 20 | |
Business Processes Reengineering | Graduate | 20 | |
Decision Support Systems | Graduate | 20 | |
Self-Adaptive and Self-Organizing Systems | Graduate | 19.75 | |
Advanced Software Engineering | Graduate | 19.5 | |
Enterprise Resource Planning | Graduate | 19.5 | |
Knowledge and Ontology Engineering | Graduate | 17 | |
Sharif University of Technology | Software Engineering | Undergraduate | 17.7 |
System Analysis and Design | Undergraduate | 17.7 | |
Information Technology Ethics | Undergraduate | 20 | |
Patterns in Software Engineering | Graduate | 14.7 | |
Software Engineering Lab | Undergraduate | 20 |
Research Experience
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, 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.
Organizer | Course Title | Semesters |
---|---|---|
Shahid Beheshti University - Culture Home Center | Python Programming | Summer 2017, Fall 2017, Winter 2018, Summer 2018, Fall 2018, Winter 2019, Summer 2019 |
Front-end Web Development | Summer 2016, Fall 2018, Winter 2019, Summer 2019 | |
Linux System Administration | Fall 2016 | |
Web Scraping in Python | Winter 2018 | |
Content Management Systems Workshop | Summer 2016 | |
Sharif University of Technology - Sharif Rayan Academy | Python Programming | Spring 2019, Winter 2020 |
University of Tehran - Cultural Education and Development Centre | Python Programming | Fall 2018 |
Saipa Corporation - Saipa Training Center | Python Programming | Summer 2019 |
MapsaHR Company | Python Programming | Fall 2021 |
Teaching Assistant (TA)
Course | University | Semester | Instructor | Link |
---|---|---|---|---|
Advanced Software Engineering | Shahid Beheshti University | Fall 2021 | Dr. Fereidoon Shams Aliee | - |
System Analysis and Design | Sharif University of Technology | Fall 2017 | Seyed Ebrahim Abtahi | Course Page |
Spring 2017 | Seyed Ebrahim Abtahi | Course Page | ||
Fall 2016 | Seyed Ebrahim Abtahi | Course Page | ||
Sharif University of Technology (International Campus) | Spring 2017 | Dr. Mehraneh Shantiaei | - | |
Advanced Programming in Java | Sharif University of Technology | Fall 2015 | Dr. Salman Marvasti | Course Page |
Technical Presentation | Sharif University of Technology (International Campus) | Fall 2014 | Dr. Ali Mohammad Afshin Hemmatyar | - |
Seminars & Lectures
Hosted by Informatics Society of Iran (Enterprise Architecture Group)
Date | Title | Location | Links |
---|---|---|---|
Dec 10, 2020 18 - 20 | Animating and Simulating Business Processes in order to Redesign Them | Online | Slides Youtube Details ISI Report |
Hosted by Sharif University of Technology
Date | Title | Location | Links |
---|---|---|---|
Dec 19, 2017 16:30 - 18 | What is Net Neutrality, and Where Does it Come From? | Class 202 of Computer Engineering Department | Slides |
Dec 26, 2016 10-10:30 | Classroom Object Oriented Language (COOL) | Class 103 of Computer Engineering Department | Slides |
Sep 29, 2016 11:30 - 12 | An Introduction to ZeroNet and the Decentralized Web (Tehran Software Freedom Day Celebration) | Kharazmi Hall, Computer Engineering Department | - |
Apr 3, 2015 9 - 12 | Git Version Control System (Tehran Software Freedom Day and Advanced Programming in Java Workshop) | Class 102 of Computer Engineering Department | Slides (Part 1), Slides (Part 2) |
April 30, 2014 14:40 - 15 | Big Data: A Scale that Reflects the Real World | Class 202 of Computer Engineering Department | Slides, Voice |
Nov 6, 2013 11 - 12 | An Introduction to Sharif University's Free Software Users Group | Class 726 of Computer Engineering Department | Slides, Details (archive) |
Hosted by Tehran GNU/Linux Users Group
Date | Title | Location | Links |
---|---|---|---|
Sep 7, 2017 19 - 20:30 | A Comparative Introduction to MV* Patterns and Pattern Families | Avatech Conference Hall, School of Chemical Engineering, University of Tehran | Youtube, Details |
Aug 3, 2017 16 - 17 | Managerial Anti-Patterns in Software Engineering | Avatech Conference Hall, School of Chemical Engineering, University of Tehran | Details |
Jul 6, 2017 16 - 17 | Architectural Anti-Patterns in Software Engineering | Avatech Conference Hall, School of Chemical Engineering, University of Tehran | Details |
June 1, 2017 18 - 19 | Software Development Anti-Patterns in Software Engineering | Avatech Conference Hall, School of Chemical Engineering, University of Tehran | Details |
March 9, 2017 18 - 19 | Bad Smells and How to Fix Them | Avatech Conference Hall, School of Chemical Engineering, University of Tehran | Details |
Feb 8, 2017 17 - 18:30 | Concepts and Implementation of Web Crawlers | Avatech Conference Hall, School of Chemical Engineering, University of Tehran | Details |
Jul 14, 2016 14:45 - 16 | Design and Architecture of Amazon Cloud Services (AWS) | Avatech Conference Hall, School of Chemical Engineering, University of Tehran | Slides, Details |
Mar 12, 2013 19 - 20 | An Introduction to Anonymous Hacktivist Group | Information Technology Organization - Building No. 2 | Voice, Details |
Feb 26, 2013 18 - 19 | Some Examples of Social Semantic Web | Information Technology Organization - Building No. 2 | Slides, Voice, Details |
Hosted by Shahid Beheshti University
Date | Title | Location | Links |
---|---|---|---|
Jun 9, 2020 | History and Theoretical Background of Performance Measurement and Brief Introduction of Some Maturity Models and Standards for Software Engineering Processes, Information Technology Management, and Business Processes | Faculty of Computer Science and Engineering | Slides |
Jun 7, 2020 | Software Architecture Decision Support by Analyzing Trade-offs Between Quality Attributes | Faculty of Computer Science and Engineering | Slides |
Jun 2, 2020 | A Decision Support System for Identifying Candidate Architectures and Making Software Architecture Decisions | Faculty of Computer Science and Engineering | Slides |
Apr 29, 2020 | Preparing the Mind for Creativity and Storytelling Methods | Online | Slides |
Apr 5, 2020 | Semantic Storage and Retrieval Using the Resource Description Framework | Faculty of Computer Science and Engineering | Slides |
Jan 4, 2020 | Research Areas in Software Engineering that Address Self-Adaptive and Self-Organizing Systems | Faculty of Computer Science and Engineering | Slides |
Dec 12, 2019 | Simulating Self-Adaptive Software Architecture with the SWIM Scenario in the Rainbow Framework | Faculty of Computer Science and Engineering | Slides |
Dec 9, 2019 | Introducing and Teaching How to Use ERPNext Software for Enterprise Resource Planning | Faculty of Computer Science and Engineering | Slides |
Hosted by the University of Isfahan
Date | Title | Location | Links |
---|---|---|---|
Oct 20, 2016 | From Permission Culture to Free Culture: How Law Constrains Culture and Creativity | Faculty of Literature and Humanities | Slides, Details |
Hosted by the Iran University of Science and Technology
Date | Title | Location | Links |
---|---|---|---|
May 13, 2016 15:10 - 15:55 | Mezzanine Content Management System Introduction and Training | School of Computer Engineering - Class 122 | Slides, Details |
Hosted by the Information Technology Organization of Iran
Date | Title | Location | Links |
---|---|---|---|
Mar 04, 2015 12 - 13 | A Society and Government's Role in Promoting Free Software | Conference Hall of Ministry of ICT | Slides, Article, SalamDonya Magazine |
Hosted by Mofid High School
Date | Title | Location | Links |
---|---|---|---|
2009 | Statistical Study of the World's Top Universities | Mofid High School | Slides |
Certificates
Skills
Area | Skills | Level |
---|---|---|
Language | Persian | |
English | ||
Arabic | ||
Software Engineering | Requirement Gathering, System Analysis, Software Development Life Cycle (SDLC), Object-Oriented Programming (OOP), Software Testing, Code Documentation, Software Licensing | |
Patterns | GRASP, GoF Patterns, GoV Patterns, Refactoring Patterns, Reengineering Patterns, AntiPatterns, MV* Patterns | |
Version Control | GIT, GitLab, Git-Flow, SemVer | |
Software Modeling | UML, Software Architectural Design, DFD, GANTT, PERT, EER Modeling | |
Programming | Python, Bash, Java Standard Edition, C++, SQL, Markdown, XML | |
Web | Django, HTML5, CSS3, JavaScript, AJAX, JQuery, PHP, Mezzanine, Joomla, Magento, WordPress, MediaWiki, DokuWiki | |
Data Science | Recommender Systems, Ontology Engineering, Web Scraping, Deep Learning | |
Methodologies | Agile Methodologies, Kanban, XP, Scrum, RUP | |
Typesetting | LaTeX, XePersian, Libre Office, Google Docs, Overleaf | |
Tools | Selenium, Visual Paradigm, PyCharm, IntelliJ, Eclipse, YouTrack, Trello, Packet Tracer | |
Graphics | Gimp, Adobe Premiere | |
DevOps | Google Cloud Platform, AWS Services, Continous Delivery, Deploy on push | |
Linux | Zimbra, Bind, Apache, Nginx, uWSGI, iptables, Fail2ban, CentOS, Ubuntu, PostgreSQL | |
Organizational | Enterprise Architecture, Business Process Reengineering, BPMN, Capability Maturity Model Integration (CMMI) | |
Soft Skills | Teaching and presentation, Documentation, Discipline, Attention to detail | |
Miscellaneous | Court 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
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.
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.
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
Type | Date | Title | Accomplishments |
---|---|---|---|
Freelance Contract | Jun. 2017 – Sep. 2017 | Appetizer Production Deployment | Linux System Administration |
Jun. 2016 – Oct. 2016 | Bitervan Online Store | Design and Implementation | |
Sep. 2009 – Mar. 2010 | Materials and Energy Research Center VoIP Service | VoIP Installation and Setup | |
Course Project | Sep. 2015 – Jan. 2016 | Judge System Based on Wiki Platform | Undergraduate Project |
Jan. 2017 – Feb. 2017 | Wikipedia Searcher | Course: Modern Information Retrieval | |
Jun. 2016 – Oct. 2016 | Bilityab Ticket Sales and Distribution Web Site | Course: System Analysis and Design |
Volunteer Experience
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.