Karen Li

About Me

Hello world! My name is Karen Li and I'm a fourth-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 systems 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
  • Java
  • OCaml
  • JavaScript
  • PHP / Hack
  • SQL

Software Tools

  • Linux
  • Android
  • Apache Spark
  • Firebase
  • MySQL / PostgreSQL
  • Node.js
  • React
  • Docker




Los Angeles, USA

Sept. 2015 - June 2019

Bachelor's Degree in Computer Science

Cumulative GPA: 3.95 (Dean's Honors List)

I am a member of the Upsilon Pi Epsilon and Tau Beta Pi honor societies. I won the Terence Lim Engineering Undergraduate Endowed Scholarship in February 2017.

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 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 131

OCaml, Java, Prolog, Scheme, Python

Programming Languages

Design and use of programming languages: abstraction, modularity, control mechanisms, types, declarations, syntax, and semantics. Functional, object-oriented, and logic programming language paradigms.

CS M146


Introduction to Machine Learning

Foundations for modeling data sources, principles of operation of common tools for data analysis, and application of tools and models to data gathering and analysis. Statistical foundations, regression, classification, kernel methods, clustering, expectation maximization, principal component analysis, decision theory, reinforcement learning and deep learning.

CS M151B


Computer Systems Architecture

Computer system organization and design, implementation of CPU datapath and control, instruction set design, memory hierarchy (caches, main memory, virtual memory) organization and management, input/output subsystems (bus structures, interrupts, DMA), performance evaluation, pipelined processors.




Facebook, Inc.

Menlo Park, USA

June 2018 - Sept. 2018

Software Engineer Intern for Facebook

Implemented script to detect new services after they had been created. Created new service detection algorithm that runs on every submitted diff and warns developers if their diffs are creating new services lacking adequate deployment automation. Auto-generated other diffs to automatically improve deployment automation for services lacking adequate deployment automation.


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 - April 2017

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). Plan and host Founder's School, the largest university entrepreneurship conference in SoCal.

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 || Java || JavaScript

Filter by Topic: Web || Mobile || Machine Learning || Games || Hardware-Integrated

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, Web


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, Web, Games

Rainbow Runner

Screenshot of nearby request feed


An Android application that uses crowdsourcing to make the pre-dining experience less stressful. Users can make requests for informal "reservations" at restaurants that don't take real reservations and other users can fulfill those requests in return for a small monetary payment.

Java, Mobile


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

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

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

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


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.


Autonomous Line-Sensing Car