biography

I was born in 1st of June 1989 in an educated Persian family with strong social values of hard work and resilience in the face of adversity. My parents are well-educated: My father is a professor and teaches psychology and my mother majored in computer engineering. During my childhood they took their most effort to educate me and my siblings to ratiocinate. They always counseled us to study hard and keep our mind disengaged from the existing difficulties. In addition, my older brother's interest and curiosity in computer-based technologies was an inspiration for me to have thirst of computer science. Now my older brother is continuing his study in M.Sc. (Computer Architecture) and my sister is studying Medicine.

My passion for creating new programs began to be realized from 1998 when my brother bought a Comodor 64. He used to program games from a programming book and although I didn't know anything about it in that age, I was curious about the codes and always changed the codes for seeing the difference. Then after we bought computer for the first time, I could hardly take my eyes off it. During my early ages in school, I was introduced to 'BASIC' language and on how computers can be used and programmed. In addition, my brother got accepted in computer engineering in university and I was always curious about his books and courses. From then, I became more fascinated about computers and programming. After I entered high school, I took part in a discussion group (Computer Club) of students and schoolteachers where I was made known with languages like 'C' and 'HTML' on my personal interest. In my second year of high school, I developed a 'paint' program with 'C' language that let to my teachers' motivation to continue my studies in computer engineering and select it as my career.

Personal satisfaction also plays a key role in my career decision. I enjoy acquiring new skills and information, which help me adapt myself to the fast-changing world, as well as pique my interest in innovation. In addition, a career with open prospects would give me constant incentive to improve myself and to gain more knowledge. In order to accomplish my eagerness and curiosity for both empirical and theoretical engineering matters, I participated in the national entrance exam for university and I ranked 1023th among more than one million students, in 2007. I selected Computer Engineering considering future and my interest in computer.

When I entered Amirkabir University of Technology, the premier of Iranian universities in computer engineering, in the first term I participated in programming fundamentals course that was presented by Prof. Pourvatan, my favorite professor. I learnt how to develop better programs and create new 'C' programs. I was really fascinated by the materials he taught us in his classes and became more interested in programming. In consequent years, the versatility and facile nature of computers made it even more interesting and really left me spellbound and enthralled. This solidified my interest in Computer science and exposed me to the enormous potential of this developing field. As the depth of studying about computers increased, it helped me to widen my background in various concepts. I also paid special attention to vital subjects I would deal with in my professional life.

The following term, I learnt 'JAVA' programming, I started my career by accepting a project that I did not know much about it. I searched on the internet and read 'JAVA' books for developing that project and I was successful and then decided to accept even more projects. That was the time that I understood in this field I should always learn new things and never scare of new concepts. As a result, I entered game programming group and participated in graphic design group for learning new things and searching for my second interest from childhood , 'Graphics'. Because of the fact that I learnt to be a hardworking person, I practiced a lot in designing models and became the leader of modeling group.

After that, as I participated in information retrieval class, I took a project for implementing 'tri' trees for searching because of the fact that I like practical work and like to implement new methods. During that project, I realized my interest in information retrieval algorithms. Then, when I participated in database class, I found myself interested in the lessons and whenever I learnt them I tried to implement them practically. After that, I took a project in which I had to implement a sample ORM , during that project I searched for ORMs and read books about them and found them interesting. After finishing that project, I continued my research about ORMs and started to use them in my work projects, specially 'Hibernate' in 'Java' When 'C#' had become my favorite and profession, I searched the net for its ORMs and found 'NHibernate' and focused my research and career on it. During my internet engineering course I began to think of using them in my web projects and I researched about them and published a technical report and presented my researches called it "using Hibernate and NHibernate in designing websites". After that I continued my researches in database laboratory and eventually presented my works as a presentation "How Fluent NHibernate makes life easier for developers".

I believe in multi-dimensional life. Prosperous people do not restrict their mind on one major. As a result of this kind of thought, and also as a curiosity satisfaction, I read many books as hobby and play many sports like Swimming and Tennis. During my bachelor years in university, I was a member of swimming team and participated in different competitions.

During my studies, I have been working as a teacher assistant and have found much interest in working with students, preparing problems, taking quizzes and defining projects for them. I'm so happy I could answer their questions and help them solve their problems. I have always dreamt of being an outstanding professor in my field of study and I think being a TA is a good exercise to reach it.

My friends have been one of the most important issues in all periods of my life and in my progress. I really like team-work and group projects, however others prefer to work individually. I always have believed that a group project, exchanges individual experiments, such materials that never can be written in books or taught in classes. In a team-work one has an opportunity not only to experience more works but also to have pleasure by teaching and learning. I experienced many situations in leadership of design group in game programming group and I found out how to arrange a team-work and connect and bond with my coworkers.

My ultimate goal in my career is to make a commendable contribution to the computing world either by starting an innovative venture or doing research which would change the dimensions of future computing and the way we perceive the computers. Now I have determined that a dedicated study on Computer Science will enable me to aggregate all my previous knowledge & experience on the field and encourage me in achieving my career goal.

interests

Research Interests
Programming Concepts
Software Engineering
Context-Awareness
Web Services
Hobbies
Surfing on the net, blogs and social media
CrossFit
Playing video games
Watching TV series and movies
Cooking
CV

awards and honors

2015
Top 15% of faculty, Golden Key International Honour Society member.
2009
Candidate for membership in SSC (Student Scientific Committee).
2007
Ranked 1023rd in National Universities Entrance Exam among more than 1,000,000
applicants for Engineering and Mathematical science.
2007
Ranked 675th in National Universities Entrance Exam among more than 500,000
applicants for Foreign Languages science.
2005
Ranked 2nd amongst students during 3rd year of high-school.
CV

education records

Education
2017-2017
School of Continuing Studies, McGill University

Agile Project Management certificate, Grade: A

2013-2015
Department of Computer Science, Concordia University

M.Sc. graduate and research assistant in GIPSY Lab, GPA: 4.0/4.30

2007-2012
Department of CEIT, Amirkabir University of Technology (Tehran Polytechnic)

B.Sc. graduate in software engineering, Major GPA: 16.16/20

2003-2007
Salam High School, Tehran, Iran

Diploma in Mathematics and Physics, GPA: 18.65/20.

Teaching/Research Assistantship
2013-2015
Research assistant - GIPSY lab (web services and context-awareness)
Fall 2009
Teaching assistant - Operating Systems
Spring 2009
Teaching assistant - Software Engineering
CV

publications and presentations

Dec 2015
Arash Khodadadi, Joey Paquet, "Collection and Classification of Services and Their Context"

- LAP Lambert Academic Publishing, ISBN 978-3659814471, Dec 2015 (In English)

Sept 2015
Arash Khodadadi, "Collection and Classification of Services and Their Context"

- M. Comp. Sc. thesis, Concordia University, Sept 2015 (In English)

Aug 2014
Touraj Laleh, Arash Khodadadi, Serguei A. Mokhov, Joey Paquet, and Yuhong Yan., "Toward Policy-Based Dynamic Context-Aware Adaptation Architecture for Web Service Composition"

- Proceedings of the 2014 International C* Conference on Computer Science & Software Engineering (C3S2E '14). ACM, New York, NY, USA, Article 23, Aug 2014 (In English)

Nov 2013
Arash Khodadadi, Joey Paquet, "Service Composition Caching System using Expert Broker"

- Accepted and participated in ECSGA graduate student poster competition, Computer Science and Software Engineering, Concordia University, Nov 2013 (In English)

Apr 2012
Arash Khodadadi, "Increasing Maintainability of Sale Charting Programs Using Fluent NHibernate ORM and MVP Pattern"

- B.Sc. thesis and presentation, Amirkabir University of Technology, Apr 2012 (In Persian and English)

Jan 2011
Arash Khodadadi, "How Fluent NHibernate makes life easier for developers"

- Presentation, National Computer-Aided software seminar, Amirkabir University of Technology, Jan 2011 (In English)

Dec 2010
Arash Khodadadi, "Using Hibernate and NHibernate in designing websites"

- Presentation and technical report, Amirkabir University of Technology, Dec 2010 (In English)

CV

selected accomplished course projects

Advanced Software Architectures,
"Software Architecture design, description and evaluation of HIS system", 2013
Advanced Programming Practices,
“Design and development of a Kingdoms board game”, 2013
Advanced Database Design,
“Design, development and optimization of 2PMMS merge and join”, 2013
Internet Engineering,
"Design and development of a portal via PHP, J2EE and ASP", 2010
Microprocessors Lab.,
"Design and build a sample kitchen timer using Atmega32", 2010
Artificial Intelligence,
"Design and development of an intelligent RISK game", 2010
Computer Architecture Lab.,
"Design and implementation of a basic computer", 2010
Data Storage and Retrieval,
"Develop a program to analyze articles contained in a gigantic file, and semantic search for specific words using Stemming algorithm via Java", 2009
Machine Language Programming,
"Implementing a file explorer via C++ & Assembly", 2008
Advanced Programming,
"Development of network multiplayer WORMS game via Java", 2007
CV

work experience

Microsoft, Vancouver, BC, Canada
Jan 2021 - Present (Full-time)
Software Engineer II
Developing, delivering, and owning E2E sports experiences across different canvases in MSN, Bing, Windows, etc. at scale such as Bracket and Olympics experiences
Front-End/Back-End architecture, services, features (Client/Server side, C#, HTML, JS, Azure, React, JS, Web Components)
Hypertherm Robotic Software Inc. (Robotmaster), Montreal, QC, Canada
Sept 2015 - Dec 2020 (Full-time)
June 2014 - Sept 2015 (Part-time)
Staff Software Developer
Optimized, dynamic and persistent data structures design and development (C#)
WPF user interfaces following MVVM design and development (C#, WPF)
Application logic, APIs, and Serialization design and development (C#)
Software architecture, user experience, and workflow design
DevOps team member, infrastructure setup and administration
QA team member, patterns, best practices, code styling, and project management
Product Owner in Scrum cycles
Freelance, Montreal, QC, Canada
Sep 2013-May 2014 (Contractor)
Freelance Developer and Personal Tutor
Auto-trading application development with different strategies and multiple agents to predict the market, receive quotes and sell/buy shares using Sterling API (C#)
A secure complete online banking web application for educational purposes (Hibernate, JSF2&Richfaces, Maven, SQL, HTML&CSS, JavaScript)
Java and .Net technologies tutoring
Defraz Software Solutions Company, Tehran, Iran
May 2012 – Dec 2012 (Full-time)
Oct 2011-March 2012 (Part-time)
Senior Software Designer and Developer
Full AVL system and web application with GPS tracking systems design and development (ASP.Net MVC, NHibernate, Telerik, HTML&CSS, JavaScript&JQuery, SQL)
Services for GPRS, GSM and SMS data transfers design and development (WCF)
Rule management and rule checking system design and development (WCF, C#, SQL)
Map application and map services design and development (Silverlight, WCF RIA)
Contract management application development (C#, NHibernate, SQL, Telerik)
Sales and delegation management web application development (C#, ASP.Net MVC, NHibernate, Telerik, HTML, CSS, JavaScript, JQuery, SQL)
Limoo Computer Company, Tehran, Iran
Feb 2011-May 2012 (Part-time)
Technical Project Manager of Desktop Projects
Application for cinema ticket selling and reservation (C# Windows Forms, NHibernate, Telerik, SOAP, SQL)
Management portal and CMS application (Java)
CV

technical skills

Technical Skills
  • 10+ years of experience in software and web development with .Net Framework technologies,
  • - Skilled in C# (Core, LINQ, Reflection, Multi-threading, asynchronous programming, TAP, serialization, etc.)
    - Skilled in ASP.Net MVC and Razor Engine
    - Skilled in Windows Forms applications, WPF, Silverlight, and MVVM
    - Skilled in Fluent NHibernate, familiar with EF
    - Skilled in WCF, WCF RIA and web services
    - Experience with Telerik RadControls and Infragistics Components
    - Experience with Json.Net, NuGet, XUnit, JSON.NET, ReSharper, and StyleCop analyzers

  • 3+ years of experience in software and web development with Java technologies,
  • - Skilled in Java (Core, Swing and AWT)
    - Experience with Hibernate
    - Experience with Servlets, JSP, JSTL, JAX-WS and web services
    - Experience with JSF 2, CDI and Richfaces
    - Experience with JUnit and Maven

  • Skilled in HTML and CSS, JavaScript, JQuery, React, TS, Web Components, FAST
  • Skilled in SQL and DBMS (SQL Server and MySQL)
  • Skilled in UML, GIT, unit testing, code coverage, test fixtures, and code styling
  • Skilled in web services, SOAP and REST
  • Skilled in Agile practices, frameworks, and methodologies
  • Experience with C, C++ and Assembly
  • Experience with infrastructure and build server administration (JIRA, Confluence, Bitbucket, Bamboo, TeamCity, etc.)
  • Experience with Robotics
Languages
  • Persian: Native
  • English: Fluent, IELTS: 7 (Listening: 8, Reading: 6, Writing: 6.5, Speaking: 6.5)
  • French: Basic
CV

theses

M.Sc. Thesis Abstract
Collection and classification of services and their context

SOA provides new means for interoperability of business logic and flexible integration of independent systems by introducing and promoting Web Services. Since its introduction in the previous decade, it has gained a lot of attraction through industry and researchers. However, there are many problems which this novel idea of SOA encounters. One of the initial problems is finding Web Services by the service consumers. Initial design of SOA proposed a service registry between the consumers and providers but in practice, it was not respected and accepted in the industry and service providers are not registering their services. Many SOA researches assume that such registry exists but, a repository of services is preliminary to the research. The Internet is filled with many Web Services which are being published every day by different entities and individuals such as companies, public institutions, universities and private developers. Due to the nature of search engines to support all kinds of information, it is difficult for the service consumers to employ them to find their desired services fast and to restrict search results to Web Services. Vertical search engines which focus on Web Services are proposed to be specialized in searching Web Services. Another solution proposed is to use the notion of Brokerage in order to assist the service consumers to find and choose their desired services. A main requirement in both of these solutions is to have a repository of Web Services. In this thesis we exploit methodologies to find services and to create this repository. We survey and harvest three main type of service descriptions: WSDL, WADL, and Web pages describing RESTful services. In this effort, we extract the data from previous known repositories, we query search engines and we use Web Crawlers to find these descriptions.

In order to increase the effectiveness and speed up the task of finding compatible Web Services in the Brokerage when performing service composition or suggesting Web Services to the requests, high-level functionality of the service needs to be determined. Due to the lack of structured support for specifying such functionality, classification of services into a set of abstract categories is necessary. In this thesis we exploit automatic classification of the Web Service descriptions which we harvest. We employ a wide range of Machine Learning and Signal Processing algorithms and techniques in order to find the highest precision achievable in the scope of this thesis for classification of each type of service description. In addition, we complement our approach by showing the importance and effect of contextual information on the classification of the service descriptions and show that it improves the precision. In order to achieve this goal, we gather and store contextual information related to the service descriptions from the sources to the extent of this thesis. Finally, the result of this effort is a repository of classified service descriptions.

B.Sc. Thesis Abstract
Increasing Maintainability of Sale Charting Programs Using Fluent NHibernate ORM and MVP Pattern

For increasing the value of a program mostly in maintainability part we can do lots of things. One of them that is common nowadays, is to make the program into layers, which means each part of it will have its own duties and other layers use the output of each layer. One of implementations given for this architecture is Model-View-Controller (MVC) model which nowadays Model-View-Presenter (MVP) model presented as an advanced model for implementation of layer architecture.

ORM (Object Relational Mapping) tools responsibility is to read your database structure and making some classes according to these structures, making connection between the objects and tables, Views, stored procedures and etc,. These tools can also define the one-to-one, one-to-many, many-to-one and many-to-many connections with objects according to your database structure.

NHibernate is an ORM that works with Microsoft.Net platform and suggests a framework for easier work with a database with less complexity. In this model our Entities in database map to obejcts for using in .Net platform. By this programmers will scape of the complexity of databases.

Another library for mapping is recently made that is called Fluent NHibernate which took the attention of the ones who are interested to .Net framework. With the help of this library the progress of writing objects into charts is done by the codes within the program, instead of the XML files.This has lots of advantages, such as using a single and complete programming language for defining the maps, automatically checking of the data formats, and even the ability to define a specific logic for the mapping section of the program.

Sales Diagrams are prepared to make ERP predictions easier. I hope this program make an improvement to such kind of programs in the way of using Fluent NHibernate to design an advanced database and retrieve data and implementing two hierarchical trees which presenting seller sites and products. The sale chart presenting sale improvements and regressions is drawn from selected site and product between specified dates selected from two calendars. This program has many options for make predicting easier such as charting style, scroll bars, presented values in each view, data mode and day mode for horizontal axis, stepping and auto stepping.

Download Full

contact me

Address: Vancouver, BC, Canada.
Telephone: +1 514-862-1368
E-mail: arashk1368@gmail.com

downloads