|
github linkedin

About Me

Hi, I'm Kai. I am a Software Engineering Intern at Snowflake and a 4th year Computer Science and Statistics student at the University of Waterloo. I am interested in distributed systems, low-latency and low-level programs, and algorithms.

As a Software Engineering Intern at Jane Street, I improved the availability of retail order ports through data replication to speed up endpoint recovery time after node failure by 100x, as well as implemented a failure detection library and automatic failovers.

As a Research Intern at Uber ATG, I did deep learning research on intelligent vehicle-to-vehicle communication in cooperative self-driving.

As a Software Engineering Intern at MemSQL (a distributed database, now SingleStore), I developed efficient search algorithms for the distributed query optimizer to find optimal join plans significantly faster and better backup join plans

As an Android Software Development Student at BlackBerry, I improved the BlackBerry Hub+ Inbox, Calendar, Contacts, Tasks, and Notes Android apps.

I also enjoy competitive math and programming. I achieved a Silver Medal at the International Mathematical Olympiad in 2016, was on the 4th Place Team in the ACM-ICPC East Central North America Regional Contest in 2018, and received Honorable Mentions in the Putnam Mathematical Competition in 2018 and 2019.

|
github linkedin
Chat for Class
Chat for Class

A messaging app for schools that allows students and teachers to branch new conversations from the current one, for a more organized and efficient method of communication.

Built with Node.js, Express, MongoDB, AWS S3, Redis, Socket.IO, and React.js.

Route Planner
Route Planner

Finds the shortest route visiting a list of up to 10 places, specified by exact address or a place name. Used Bitmask Dynamic Programming, Breadth First Search, Google Maps Places API, Directions API, and Distance Matrix API.

Built with Java, XML, SQLite, and Android Studio.

VM
VM

Vim-like text editor. Implemented a Splay (Self-Balancing Binary Search) Tree to optimize text insertion and deletion time. Designed the architecture using object-oriented principles and the Model-View-Controller framework.

Built with C++.

Find and Search
Find and Search

An Android app that makes finding and searching text in photos simple, convenient, and fast.

Built with Java, XML, and Android Studio.

Get it on Google Play
|
github linkedin