Extracurricular activities at Sharif University of Technology

The following is a (~chronological) list of my extracurricular activities and academic volunteer services at Sharif University of Technology, and the details of my responsibilities and contributions to each. The department of Computer Engineering at Sharif University of Technology, hosts multiple event and contests annually in various fields, designed to introduce Sharif's students and/or any interested party in their respective topics. While I participated in many of such events as a student, I was also very much involved with the efforts that went into setting up such events as a volunteer.

Datadays 2021

Head of Scientific Team

Nov. 2020 - Sep. 2021 • Tehran, Iran

DataDays was the first and the largest national data science competition held annually by Sharif University of Technology. Its main goal was to broaden the appeal for working on data-driven problems. In essence, Datadays was a large-scale attempt at assessing data science knowledge in Iran and improving it.

Every year, a group of volunteer data science experts gathers around to create and hold Datadays. I had the pleasure to lead the 2021's Datadays team, a diverse international group of Iranian Machine Learning and data science academic and industrial experts. After intense negotiations with various tech giants and startups in Iran, Torob.ir, an emerging product searching platform for commerce, joined us as our sponsor. After weeks of preparations, we developed a data-driven challenge around Torob's search logs to recommend new products given a raw query.

To teach our participants about the fundamental concepts regarding Machine Learning and Recommender Systems, I authored a roadmap and led the scientific staff in creating Persian Educational notebooks. I also started a talk series and organized workshops by inviting tech and academic experts. To host the competition, I led the negotiations with RoboEpics, a Kaggle like platform for hosting AI competitions, and eventually authored a contract between Datadays, Torob, and Roboepics. Our competition was held during the summer of 2021 and had over 500 participants internationally.

Datadays 2019

Head of Infrastructure

Jul. 2018 - Feb. 2019 • Tehran, Iran

In the first year of the commencement of DataDays, I was in charge of the computational infrastructure. Our challenge was computationally heavy and could benefit a lot from accelerated hardware so I volunteered to setup and maintain a GPU cluster of over 40 units for our contestants.

I also co-develop the Datadays contests platform by contributing to its user-interface implementation written in Django.


Sharif Winter Seminar Series (WSS)

Organizer

Nov. 2020 - Jan. 2021 • Tehran, Iran

WSS is a well known seminar series held annually by Sharif University of Technology. It hosts talks and presentations from international academic experts in advanced topics of computer science and engineering. During WSS 2020, I volunteered as one of the presentation organizers.


Sharif Made in Lobby

Lead Scientific Staff & Mentor

May 2020 - Jul. 2020 • Tehran, Iran

Sharif Made in Lobby was a make-shift workshop held by the upper year classmen of the Computer Engineering department at Sharif University of Technology, designed to keep the freshmen engaged during the COVID-19 lockdown. I took the role of leading the scientific staff and mentoring the freshmen in the field of Computer Vision. Together with a team of other mentors, we designed and tutored an introductory course to Computer Vision and Deep Learning for undergraduate freshmen.


Rasta Computer Science Summer School 2020

Scientific Staff

May 2020 - Aug. 2020 • Tehran, Iran

Rasta is an educational organization established by the students of Sharif University of Technology, aiming to provide high-quality educational content to the public, specially to highschool students. Rasta holds several workshops and events across Iran annually, but perhaps the most notable one is the Rasta Summer School. During the summer of 2020, I volunteered as a scientific staff member in the Artificial Intelligence workshop, where I helped design an interactive introductory to AI workshop intended for highschool students. Rasta's Computer Science Summer School of 2020 was held online due to the COVID-19 pandemic.

Rasta Computer Science Summer School 2019

Scientific Staff

Jun. 2019 - Aug. 2019 • Tehran, Iran

As my first contribution to Rasta, I volunteered as a scientific staff member in the Artificial Intelligence workshop during the summer of 2019. During the workshop, I helped design a series of interactive discussions that aimed to introduce highschoolers to concepts in statistics such as point estimation, hypothesis testing, and regression analysis. Rasta's Computer Science Summer School of 2019 was held in person at Sharif University of Technology with students from all over Iran.


Sharif Artificial Intelligence Challenge (SAIC) 2020

Scientific Staff

Nov. 2019 - Feb. 2020 • Tehran, Iran

SAIC is an annual AI competition held by Sharif University of Technology established to promote AI research and development in Iran using a game-like competition format. Each year, a group of volunteer developers, algorithms and AI experts gather around to design a challenge in form of a multi-agent video game. This event is a huge undertaking and requires a lot of technical effort both in terms of the game development and the AI challenge design.

During the 2020's SAIC, I volunteered as a junior scientific staff member and helped design the game environment and the AI challenge. My main responsibility was to anylize candidate game environments and scenarios from the perspective of implementing Reinforcement Learning agents and the feasibility of the optimal policy search.

Sharif Artificial Intelligence Challenge (SAIC) 2019

Infrastructure Developer

Jul. 2018 - Feb 2019 • Tehran, Iran

During the 2019's SAIC, I volunteered as a junior infrastructure developer and helped the senior developers in setting up the game environment and the AI challenge. Our team was in charge of developing and maintaining the game server environment and evaluation backbone. Users recieved a local copy of a game server implementing the game logic, and two game clients implementing the AI agents competing against each other. For example, for a game of chess, the server would implement the rules of chess and expect two clients to send their moves in each turn. Players are also arbitrary programs that recieve the game state and return their move based on their strategy by sending it to the game server.

During the challenge, players could run a local copy of the game server and test their agents against itself or our provided baseline agents, or submit their agents to our central challenge competition server and request a match against other players. The winner of the competition was determined by performing a round-robin tournament between all submitted agents at the end of the competition.

As a member of the infrastructure team, we inherited the codebase for a central competition runner, and we were responsible to adjust the code base to accomodate the new game environment. The system had a central server written in Django that recieved two agents to compete against each other and asynchronously ran the game and returned the evaluated results. This central Django server outsourced crone jobs to containerize the two agents and the game server and then run the game on a docker cluster. The techstack for the previous year was based on DockerSwarm but we migrated everything to Kubernetes. This was my first experience with containerization and orchestration technologies and I learned a lot about the challenges of running a distributed system.


Sharif Webelopers 2019

Infrastructure & Judge System Developer

Jul. 2019 - Feb 2020 • Tehran, Iran

Drawing in the experience I accumilated during the SIAC 2019, I volunteered to co-develop a centeral judge system for Sharif's Webelopers 2019 event. Webelopers targets the first year and second year undergraduate students interested in learning the in and outs of becoming a full-stack developer, offering a crash-course in Front-End and Back-End software engineering. The participants then compete in desigining a fully functional website that satisfies a set of predefined user stories.

As a team of two, we designed and implemented a similar system as the game-runner in SAIC, where a central Django server We integrated our system with Sharif's GitLab (where the consestants were supposed to push their codes), to automatically build an image of each contestants code. Given a judgement request, we then containerized these images along with a our own unit testing program that connects and interacts with the each contestants implementation of the website. We wrote our unit tests with dynamicity of the contestants Front-Ends in mind, to analyzes the produced HTTP outputs by cross-checking the existance of a set of predefined qualities in each supposed web-page. The result of each unit tests were then returned to other micro-services developed by other volunteers to score teams based on the quality of their codes as well as the agility of their implementation compared to other participating teams.

We used a Kubernetes cluster of ~5 virtual workers along with our custom cluster manager and judgement system to host ~50 teams.


Sharif Hardwar 2019

Software Developer

Jul. 2019 - Jan 2020 • Tehran, Iran

Hardwar was the first event at Sharif's department of Computer Engineering that specifically aimed to involve students in the joys of digital logic design and low-level hardware programming. As a former participant of this event, I was excited to contribute to the development of the Aurdoino workshop at Hardwar 2019. Our workshop took students on a step-by-step journy in designing their very own game-controller, and LED grid display, to play a custom open-world treasure hunt game, where participants are to roam a grid and gather as many gem stones as possible to get a higher ranking.

As a volunteer software developer, I designed & implemented a serial port to TCP middleware in Python that connected the mesh of these custom-made Aurdoino game controllers to the competition's centralized real-time game server.


Iranian ICPC 2018

Technical Staff

Dec. 2018 - Dec 2018 • Tehran, Iran

During the nationals' round of the International Collegiate Programming Contest (ICPC) 2018, which is hosted by Sharif's department of Computer Engineering annually, I was an oncall technical staff, responsible for setting up the contestants PCs, and resolving technical difficulties during the contest.

I also helped co-develop an automatic image labeler in Python, which was used to help the On-site photoshoots, automatically creating a frame containing team's meta data along with their images, significantly reducing the photoshoot processing pipeline, as the design of each frame was done manually in the past years of this event.