Karen Li

About Me

Hello world! My name is Karen Li and I'm a second-year Computer Science student at UCLA, originally from Vancouver, Canada.

For me, coding is not merely the act of writing code to solve problems, but an extremely creative process where the code that I write is a physical manifestation of my self-expression, representing the way I visualize and analyze a problem to find a solution. I'm fascinated by machine learning and back-end development.

You can learn more about me by perusing my resume or by watching a stop motion animation video I made:


Programming Languages

  • C++
  • C
  • Python
  • JavaScript
  • HTML / CSS
  • PHP / Hack
  • SQL

Software Tools

  • Linux
  • Git / Mercurial
  • Bash
  • WebGL
  • MySQL / PostgreSQL
  • Bootstrap
  • Node.js
  • Arduino




Los Angeles, USA

Sept. 2015 - June 2019

Bachelor's Degree in Computer Science

Cumulative GPA: 3.98 (Dean's Honors List)

I went into UCLA with no experience in computer science, but soon fell in love with the puzzle-solving nature of programming. C++ was my first language. I am a member of the Upsilon Pi Epsilon and Tau Beta Pi honor societies.

Handsworth Secondary

North Vancouver

Sept. 2010 - June 2015

High School

I won the "Top Scholar Award" and "Governor General of Canada Academic Medal" in senior year for having the highest unweighted average (98%) out of a graduating class of more than 300 students.

College Coursework

CS 33

C, Assembly

Introduction to Computer Organization

Computer architecture, assembly language, parallel programming, operating systems fundamentals, GDB debugging, memory hierarchy, caches, processes and process management, control flow, optimization.

CS 111

C, Python

Operating Systems

Computer software systems, kernel structure, bootstrapping, input/output (I/O) devices, interrupts, processes and threads, memory management, virtual memory, scheduling, synchronization, file systems, distributed systems, protection and security.

CS 174A

Javascript, WebGL, HTML, CSS

Introduction to Computer Graphics

Manipulating objects in scene using geometric/camera transformations; creating final images using perspective/orthographic transformations; modeling primitives such as polygonal models and implicit and parametric surfaces; implementing illumination models, shading, and texture mapping.

CS 118


Computer Networking

Design and performance evaluation of computer networks, layered network architecture, Internet protocol architecture, network applications, transport protocols, routing algorithms and protocols, internetworking, congestion control, link layer protocols including Ethernet and wireless channels.

Online Coursework


Octave, MATLAB

Machine Learning by Stanford University

Intro to machine learning, datamining, and statistical pattern recognition. Topics include: (i) Supervised learning (parametric/non-parametric algorithms, support vector machines, kernels, neural networks). (ii) Unsupervised learning (clustering, dimensionality reduction, recommender systems, deep learning). (iii) Best practices in machine learning (bias/variance theory; innovation process in machine learning and AI).




Facebook, Inc.

Menlo Park, USA

June 2017 - Sept. 2017

Software Engineer Intern for Facebook

Built all infrastructure for comment ranking personalization from ground up: feature engineering, machine learning model execution, and user-personalized ranking of comments. Extracted features from comments and users to use as input for ML models, both in real-time and using data pipelines for aggregate features. Combined user engagement prediction scores generated from ML models for each comment into personalization scores used for ranking comments. Ran ranking experiments in production and then analyzed resulting metrics.


Fortinet Inc.

Vancouver, Canada

June 2016 - Sept. 2016

Jr. Web Developer for Fortinet

Created a new archive for Fortinet’s bug reporting database to optimize time required to view entries by splitting data between two servers. Wrote scripts to correctly insert and remove data between relational databases with tables of +4 million entries (currently used in production). Utilized bug database APIs to implement a new website for Fortinet developers to view the archived entries.


Neurovascular Imaging Research Core

Dr. Fabien Scalzo


Jan. 2017 - present

Undergraduate Researcher

Develop an original RL system, in the context of time-series forecasting, to learn an optimal interaction/trading strategy to maximize the reward of the simulated RL agent. Through experiments, the Bitcoin time-series is used retrospectively to evaluate the effectiveness of the learned policies. The project is being implemented using Python, the Maja Machine Learning Framework, and scikit-learn.


Upsilon Pi Epsilon

Los Angeles, USA

May 2017 - present

Entrepreneurship Chair for Upsilon Pi Epsilon, California Beta Chapter

Organize and obtain sponsorship for events such as StartupFair.LA (emailed over 150+ companies and raised over $2500 in sponsorship funds last year). Create events to promote entrepreneurship culture and allow students to network with start ups and tech companies.

UCLA Engineering

Los Angeles, USA

May 2016 - present

Engineering Ambassador for UCLA Engineering School

Serve as the face of the UCLA Henry Samueli School of Engineering and Applied Science. Give personal tours of the UCLA Engineering School and research labs to at least three groups every week. Volunteer at events such as Engineering Welcome Day, which hosts over 700 new students every year.


Los Angeles, USA

Sept. 2016 - present

Mentor for MentorSEAS

Act as a mentor to a small group of first-year students in computer science by sharing personal experiences and lessons learned so they can make the most out of their time at UCLA and receive advice and support when needed.


Reset to Default: Show All Projects

Filter by Language: C++ || C || Python || JavaScript || HTML/CSS

Filter by Topic: Machine Learning || Games || Hardware-Integrated || Software-Only

Loop textbook trading app


A textbook trading application that uses graph theory algorithms to find trade loops between users. Implemented live search, user authentication, and back-end APIs to interact with database. Created home page and pop-up to allow user to add and edit a new trade relation.

JavaScript, HTML/CSS


Rainbow Runner video game screen in Mario mode

Rainbow Runner

A vertically scrolling game where the player must dodge cubes while navigating through a Rainbow Road or Super Mario themed world. All computer graphics and game logic written completely from scratch, using JavaScript and WebGL.

JavaScript, HTML/CSS, Games

Rainbow Runner

Graph of Bitcoin prices over time

RL Trading

A reinforcement learning (RL) agent that uses the Bitcoin price time series to learn the optimal policy for trading. Research project supervised by Dr. Fabien Scalzo at UCLA and implemented in Python on top of the Maja Machine Learning Framework and scikit-learn.

Python, ML

RL Trading

Terminal shell icon

Simpleton Shell

A simple, stripped down shell that takes in as command line arguments which files to access, which pipes to create, and which subcommands to invoke. Child processes are spawned to run the subcommands and their exit statuses reported.


Simpleton Shell

MRI scans of brains

Brain Hemorrhage Prediction

Multiple machine learning models running different classification algorithms to predict whether a patient would have future hemorrhagic transformations, based on their initial MRI scan images. Implemented using both Tensorflow and scikit-learn.

Python, ML

Brain Hemorrhage Prediction

Frackman video game


A 2D arcade-style game where the player, Frackman, tries to find all of the oil barrels on each level, while bribing the angry protestors who are following him with gold nuggets or shooting them with water squirts. This was my first intensive CS project.

C++, Games


Cyber Spider program

Cyber Spider

An attack detection system that searches for relationships between known malicious entities and other entities to discover as-yet unknown malicious entities. I created a disk-based hashtable class for quick data storage and access.


Cyber Spider

Sponsorship email automation script

Sponsorship Email Automation

A script to help automate the process of sending emails via Gmail to potential sponsors for campus events, such as StartupFair.LA. User input is obtained in order to format the email and complete the template used for the email body.


Sponsorship Email Automation

Autonomous line-sensing car with Arduino

Autonomous Line-Sensing Car

An autonomous line-sensing car prototyped on a breadboard that uses IR LED distance sensors and PID control implemented using Arduino to follow a line/track. This was my team capstone project for the IEEE: Open Project Space program.

Arduino, Hardware

Autonomous Line-Sensing Car