Career Profile
Senior machine learning researcher and full-stack software developer with 10+ years of experience developing testing and maintaining enterprise software applications implemented in Python, C++, HTML, CSS, and JavaScript. Designing and developing enterprise projects as well as machine learning frameworks to work on the soccer simulation environment. Contributing to the open-source community by making the machine learning projects publicly available. Winning the championship of RoboCup competition as the leader of Cyrus Soccer Simulation 2D team, thanks to Strong programming knowledge in addition to profound machine learning background.
![graphical history](/assets/images/his2.png)
Experiences
- Developed and maintained a sensitive system by constant monitoring of the performance.
- Handled different aspects of the project through the entire software development life cycle.
- Coordinated and assisted team members during the development of the project.
- Managed task assignments to team members and collaborated with them throughout the development of the project.
- Engaged with research collaborators at the Department of Fisheries and Oceans Canada (DFO) and the University of Toronto.
- Introduced agile concept and directed project plans.
- Supported and troubleshot the system in a Ubuntu server.
- Developed back-end and front-end of the website powered by Django and MongoDB.
- Implemented an email crawling module to process received emails, download files, parse PDF forms, standardize data, store standardized data in a database, and respond to emails.
- Implemented port and coordinates standardization algorithm to standardize inputs and create suggestions.
- Created web interfaces to help users in filtering queries.
- Improved the performance of the system in many different algorithms such as calculating Ballast Risk Assessment, Updating Geo Location Fields and Updating port scaled parameters by multiprocessing and running tasks in the background.
- Developed unit tests for features and functions.
- Developing an application programming interface(API) to help users to filter and get stored data in JSON format.
- Developed a vessel navigation framework for training autonomous vessel navigation.
- Employed deep reinforcement learning methods to train autonomous vessels for navigating in a simulation of real-world environments.
- Developed CYRUS, a 2D soccer simulation team, and employed various novel machine learning methods to solve the multi-agent learning problem.
- Applied machine learning algorithms to the CYRUS soccer simulation 2D team and participated in qualified RoboCup competitions.
- Developed the first Python soccer simulation 2D base code called PYRUS2D, consisting of over 20k lines of code.
- Released the most powerful C++ soccer simulation 2D base code by merging Helios and Gliders base codes and applying the best features of the CYRUS team.
- Developed a soccer simulation 2D log analyzer called Cyrus Log Analyzer that can analyze and generate useful statistical reports from soccer simulation 2D game logs powered by Python.
- Improved and upgraded AutoTest2D software for parallel testing of soccer simulation 2D teams powered by bash scripts.
- Developed AutoTune2D software for fine-tuning soccer simulation 2D team parameters.
- Implemented a simple library called CppDnn for using Keras and TensorFlow for feed forwarding in C++.
- Implemented a Python mathematical library called PyrusGeom for working in two-dimensional geometry fields.
- Simplified Helios base code and its library to help junior students participate in the junior RoboCup competition called StarterAgent2D and StarterLibRCSC.
- Created an application containing bash scripts powered by Docker, a web service powered by Django and SQLite, and a Telegram bot for testing and holding soccer simulation 2D tournaments called SS2D-Docker-Tournament-Runner.
- Implemented a new observation model in soccer simulation 2D server to make the player’s observation closer to humans and new robots. The server includes over 50k lines of C++ code.
- Developed and designed a C++ component to manage and monitor SMS messages among GSM network providers.
- Built a high-speed, multi-process Python application to store GSM data on ElasticSearch.
- Redesigned and developed an application with components for parsing, creating flow messages, and storing flows on ElasticSearch.
- Conducted integration tests using the Python Robot Framework for GSM C++ components.
- Worked with many different technologies such as Robotframwork, Kibana, Elasticsearch, and git.
Rewards and Achievements
- 2022 - 2nd Place in RoboCup, Worldwide International Robotic Competition, Soccer Simulation 2D League, Bangkok, Thailand
- 2021 - 1st Place in RoboCup, Worldwide International Robotic Competition, Soccer Simulation 2D League, Online
- 2019 - 3rd Place in RoboCup, Worldwide International Robotic Competition, Soccer Simulation 2D League, Sydney, Australia
- 2018 - 2nd Place in RoboCup, Worldwide International Robotic Competition, Soccer Simulation 2D League, Montreal, Canada
- 2017 - 4th Place in RoboCup, Worldwide International Robotic Competition, Soccer Simulation 2D League, Nagoya, Japan
- 2014 - 5th Place in RoboCup, Worldwide International Robotic Competition, Soccer Simulation 2D League, Jeoa Pesoa, Brazil
- 2020 - 2nd Place in Japan Open RoboCup Competition, Soccer Simulation 2D League, Japan
- 2018 - 1st Place in Asia-Pacific RoboCup Competition, Soccer Simulation 2D League, Kish, Iran
- 2018 - 1st Place in Iran Open RoboCup Competition, Soccer Simulation 2D League, Tehran, Iran
- 2014 - 1st Place in Iran Open RoboCup Competition, Soccer Simulation 2D League, Tehran, Iran
Projects
Cyrus Soccer Simulation Team
- I have lead CYRUS RoboCup soccer simulation 2D team since 11 years ago. CYRUS is one the world's most powerful soccer simulation 2D teams. I have implemented and designed many artificial intelligence algorithms and strategies for our CYRUS team.
Ballast Water Report System
- BWRFIS is a website developed at Dalhousie University for Transport Canada and Fisheries and Oceans Canada. I was the manager and full-stack developer of this project. As part of this project, I was responsible for managing and assigning tasks to team members and working with the Django framework and MongoDB database.
SS2D Tournament Runner
- This project is a 2D soccer simulation tournament management system that utilizes Django, SQLite, and Docker. With the website, teams can upload and test their teams, and executive members can use scripts powered by Docker to manage the tournament.
OSS Contributions
Cyrus2D Base Code
- Cyrus2D-base is a sample team for the RoboCup Soccer 2D Simulator. This base is a Helios base Fork. We merged the newest version of Helios base(Agent2D) with the Gliders2D base V2.6 together, After that we applied several features of Cyrus2021, the champion of RoboCup 2021 in Soccer Simulation 2D league to improve the performance and capabilities of this base.
Pyrus2D Base Code
- Pyrus is the first complete python sample team code for the RoboCup Soccer 2D Simulator.
CppDNN
- CppDnn is a simple library for using Keras and TensorFlow for feed forwarding in C++.
AutoTest2D
- AutoTest2D is a software for parallel testing of soccer simulation 2D teams powered by bash scripts.
AutoTune2D
- AutoTune2D is a software for fine-tuning soccer simulation 2D team parameters.
CyrusLogAnalyzer
- Cyrus log analyzer is library to help RoboCup researcher to analyze soccer simulation 2D game logs.
PyrusGeom
- PyrusGeom is a Python library for dealing with math and geometry in soccer simulation 2D and 2-dimensional problems.
Publications
RoboCup 2022: Robot World Cup, Springer
RoboCup 2022 Symposium and Competitions: Team Description Papers. Bangkok, Thailand.
RoboCup 2021: Robot World Cup XXIV, Springer
RoboCup 2021: Robot World Cup XXIV, Springer
RoboCup 2021 Symposium and Competitions: Team Description Papers. Online.
Canadian Conference on Artificial IntelligenceCanadian AI. Canada. 2020.
RoboCup 2019 Symposium and Competitions: Team Description Papers. Sydney, Australia.
RoboCup 2018 Symposium and Competitions: Team Description Papers. Montreal, Canada.
RoboCup 2017 Symposium and Competitions: Team Description Papers. Nagoya, Japan
Artificial Intelligence and Robotics (IRANOPEN), 2016. Page 1-6, Publisher IEEE. Tehran, Iran.
RoboCup 2016 Symposium and Competitions: Team Description Papers. Leipzig, Germany.
RoboCup 2015 Symposium and Competitions: Team Description Papers. Hefei, China.
RoboCup 2014 Symposium and Competitions: Team Description Papers. Joao Pessoa, Brazil.
RoboCup 2013 Symposium and Competitions: Team Description Papers. Eindhoven, Netherlands.
Artificial Intelligence and Robotics (IRANOPEN), 2013. Page 1-6, Publisher IEEE. Tehran, Iran.