Download PDF

Summary

Passionate, internally motivated, and a life-long learner. 

Focused on the intersection of Human-Computer Interaction and Generative A.I.

This focus comes after a diverse story starting from game design and programming into research and machine learning and then into web dev and data visualization. But the drive for learning and creativity underpins all!

Professional Experience

Programmer

Working as a front-end web programmer for educational games. This involves negotiating designs to match or challenge the current in-house tech. It also involves building highly interactive and graphics-intensive games in Phaser.js or modular educational games in Angular.js. All of which involve a great deal of iteration and communication with educators, designers, and other programmers.

I am also sometimes working as a game programmer for a game under NDA on Unity3D (2020.3). My tasks involved developing gameplay systems, UI systems (e.g. Off-screen indicators, in-world HUDs), tech design, large-scale refactoring (e.g. refactoring multiple A.I. agents behaviour to use state-machines), and rapid prototyping in early design stages.

Teaching Assistant Jobs

IAT 813: graduate course on A.I. with a focus on creative applications with Steve DiPaola. Roles: I grade and deliver workshops on using A.I. techniques like Stable Diffusion and GPT-3. [Sep-ongoing 2022]

IAT 355: undergrad course on visual analytics.
Roles: Led tutorials on D3.js, Vega-lite, and Tableau, and evaluated visualization projects. [Jan-April 2020]

IAT 312: undergrad course on game design.
Roles: Led labs, and provided design critique for the student's game projects. [Sep-Dec 2018]

Sep 2018March 2020

MITACS Accelerate Research Internship in partnership with The Boeing Company and Stantec Vancouver.

Design Analytics is about the extension and application of Visual Analytics principles to the design process. For example, this can take the form of exploring data-informed design processes/tools or using data visualization and analysis in exploring design alternatives.

My research activities included: surveying the literature, identifying gaps in it, and developing research prototypes. They also involved meeting with domain experts and conducting preliminary evaluations. As this is a relatively new research program, my work required a good deal of conceptualization and argumentation. Overall, I played a major role in the success of this research program and it resulted in 6 peer-reviewed conference papers and 2 prototypes: DesignSense and FlowUI.

Other topics explored: dimensionality reduction and novelty search for generative design.

Dec 2017 May 2018

Machine Learning Internship

Hazen.ai is a startup that uses Machine Learning and Computer Vision to solve problems in detecting traffic violations. My work there contributed to securing governmental funding.
A typical task at Hazen.ai includes a literature survey, choosing among ML solutions, and prototyping in a short time span. I worked on object detection and image classification tasks. To train better deep learning models, I also worked on making the collection of car's bounding boxes data more accurate (via DeepGTAV). Tech used: Python, Scikit, OpenCV, Redis.

Jun 2016Aug 2016

Unity Mobile Games Internship

Worked on the mobile game Kammelna (a card game with more than 170k daily active users) mainly through Unity Game Engine and in a Scrum-based development process.
Duties mainly included developing UI features and integrations with game services (e.g. iOS Game Center). Also worked on code refactoring and tracking in-game errors through Google Analytics.

Education

Ph.D Researcher

Fields: HCI and Generative AI
Intended topic:
Investigating processes (and tools) for building generative A.I. systems in different domains, and ways to augment these processes. 
Current courses: Information Visualization (with Munzner @UBC)

MSc. Researcher

Member of the Computation Design lab.
Thesis:
DesignSense: A Visual Analytics Interface for Navigating Design Spaces

Course Work (research/writing): Foundations of Research Design for Human-Centred Design of Interactive Tech || Science, Technology, and Culture || Proposal Writing.

Course Work (tech-related): Natural Language Processing (listener) || Visualization and Visual Analytics || Interdisciplinary Design Approaches to Computing || Creative AI & Computation Creativity.

Bachelor of Computer Science

Overall GPA: 3.68/4.00 , Major GPA: 3.85/4.00 , Second Honors

Upper-level CS Courses: Operating Systems || Design and Analysis of Algorithms || Principles of Artificial Intelligence || Machine Learning || Computer Graphics || Theory of Computing || Programming Languages || Principles of Software Engineering. Courses were mostly taught in Java.

Skills

AI/Machine Learning/Data Science=

Had multiple courses (online and in school) on machine learning, deep learning, computer vision, NLP,  stochastic search algorithms, statistics, calculus, and linear algebra.

NLP: NLTK, and OpenAI's GPT3 API.
Vision: OpenCV/Matlab

Search and constraint satisfaction: multiobjective optimization, quality diversity algorithms. Answer Set Programming

Python/Scikit/Pandas/Numpy/PyTorch
Linux. Docker, Conda, Git. Jupyter, Collab.

Data Visualization and HCI

Design, research and implementation of interactive data visualizations and interfaces. Design studies. Research interviews and focus groups. Design thinking, sketching, rapid prototyping. Figma. Miro. Vector design (inkscape). 
Tech: D3.js/Tableau/Vega-lite/Plotly/matlpotlib

Writing and Research

Experience in both creative and technical writing. Literature survey and critique, academic writing, proposal writing. Mentoring more junior researchers.

Web Development

--Web Bread-and-butter: HTML, CSS, SCSS, Javascript (ES6+), jQuery, TypeScript, JSON, YAML, Webpack, NPM, DevTools, assets optimization., SVG, lotties
Frameworks: Vue.js, Vuetify, Vuex, React (functional components), Angular.js, Redux, Redux-toolkit, Backbone, Nuxt.js, Material design
Graphics (2d/3d) & Animations:  Phaser.js, Three.js, GSAP, Twine,  D3.js, Vega-lite
Back-end (basics): Node.js, Express.js, MongoDB 

Game Development

Unity/C# (>5 years)

Worked in professional settings on PC and mobile games in Unity3D. My experience includes a blend of gameplay, procedural content generation, A.I., and 2D/3D graphics programming  (HLSL, some OpenGL) and optimization.


(Co)designed and developed games of diverse types ranging from small game jam entries (>10 of them) and up to medium-sized projects, as well as professional game programming at AHI.

Select Publications

Select Projects (see my website for more details)

DesignSense

Started during my master's thesis, supervised by Dr. Halil Erhan.
Front-end: Developed using Vue.js, Veutify, Vuex, Three.js, and D3.js; Webpack, Javascript (ES6). Back-End: Node.js, MongoDB backend. 
Vis techniques: coordinated views, scatterplot, parallel coordinates, clustering

Role: Research, design (vis, UI), and development from scratch.
Activities: Literature review, abstract task analysis, synthesis of requirements, iterative prototype development, collecting and analyzing periodic feedback from industry partners, evaluation (focus group, expert review).

Mala'eeb's Puzzle

Not published yet but won the Best Gameplay Award in the  2nd IMGA MENA and was presented in Gamers Day 2017.
Role: I worked on creating an evolutionary algorithm to generate valid and playable levels and partly developing the game in Unity Game Engine.

Oct. 2016June 2017

Kastle (Graduation Senior Project)

A voxel-based rogue-like game where you fight your way through a cursed castle with a mix of guns and magic. Uncover the lost stories of the souls that forever roam within.

Role: Game Co-Design. Implementing a novel combat system that is based on a combination of guns and magic. Implementing the dungeon generation algorithm. Implementing a local game database. Finding and implementing various optimization techniques (logical or CG-based). 

Awards

Volunteering

  • SFU Community Engagement Initiative - Making HER Future. A series of tech workshops aiming at introducing tech concepts and career options to teen girls to reduce the barriers against their entry to STEM. Roles: core team member, course development and delivery.