About me

I am a Penn graduate student majoring in Computer and Information Science. My primary interest lies in using software engineering to solve challenges in computer science, computer vision, finance, economics, health, and medical fields.


University of Pennsylvania (Expected Graduation: Jun 2023)

Master of Science and Engineering, Computer and Information Science: GPA 3.77/4.0

University of California, San Diego (Graduated: Jun 2021)

Bachelor of Science, Computer Science: GPA 3.961/4.0
Bachelor of Arts, Economics: GPA 3.714/4.0

Work Experiences

Research Scientist Intern

Nanotools Bioscience (Mar 2020 - Jun 2021)

Researched methods to segment individual cardiomyocyte cells boundaries in videos using image processing.

Researched methods to extract action potential using image processing.

Researched methods to extract and analyze contraction traces.

Packaged methods into an intuitive software for researchers to use.

Implemented a GUI with configurations and process status.

Software Architect / Engineer

In some cooperation with Shanghai Rural Commercial Bank (Sep 2019 - Jan 2020)

Built a personal delivery locker that allows deliveries to be contactless, also provides real-time monitoring system and prevents theft.

Used Raspberry Pi with a touchscreen as prototype, Python, TKinter, Bash Shell, GPIO, PHP, MySQL, QR Code, and WeChat API.

Produced a locker that allows scanning QR codes and lock control, as well as a WeChat client for managing and picking up packages.

Website: the Website dl.zhukaihan.com
Project on Github: the Github Project https://github.com/users/zhukaihan/projects/1
Locker's Github Repository: Locker's Github Repository https://github.com/zhukaihan/Delivery-Locker
Server's Github Repository: Cannot be posted yet, it has server-side sensitive information, such as database password or WeChat service account secrets.

Computer Science Tutor

University of California, San Diego (Apr 2019 - Jun 2020)

Tutored computer science courses and assisted professors by holding office hours, grading homework, and creating exam questions.

Java Engineer Intern

Shanghai Amarsoft Info. Tech. Corp. (develop software for Wanda Group) (Aug 2018 - Sep 2018)

Utilized Java, Oracle, and Tomcat to design, manage, and service a fully functional, dynamic, and expandable management system for controlling loans for Wanda Group’s financial institution.

In-depth design of databases, the user privilege managing, the cooperation between team members, the use of Git in real teams, etc.

Web Developer

Shanghai Greenpool Environmental Tech Co., Ltd. (Jun 2017 - Sep 2018)

Plan, build, and maintain the entire architecture of a dynamic website from scratch with LAMP model and responsive UI design for different devices.

PHP based with a MySQL database storing contents and a complete admin system for editing contents.

Extensive practices of PHP, HTML, CSS, JavaScript, SQL. Real-life experience with MySQL and servers.

Website: the Archived Website (Wayback Machine) https://web.archive.org/web/20190527210357/http://shgreenpool.com/


Hand Gesture Mouse

Building a cross-platform input software with Mediapipe’s Hand pipeline and Pynput to create a gesture-controlled trackpad using a camera.

Method 1 (Completed): Used Multilayer Perceptron to estimate gesture from hand landmark data. Trained with active learning and SKLearn.

Method 2 (Conv2d weight layout incompatible): Transferred weights from Mediapipe’s BlazePalm (Single-Shot Detector with ResNet) TFLite model into PyTorch model, finetune with custom data, and redeploy model into pipeline by converting into ONNX then Tensorflow then TFLite.

Method 3 (In Progress): Transferred weights from Mediapipe’s BlazePalm TFLite model into reimplemented Tensorflow Graph (done), finetune with custom gesture data on a GPU, redeploy model into Mediapipe pipeline as TFLite, and evaluate the effect of quantization.

Website: the Website gesture.zhukaihan.com
Project on Github: the Github Project https://github.com/zhukaihan/Gesture-Mouse

Music Recommendation

Predict whether the user would churn on a music given how they were presented with the music and the music’s basic information using NumPy, SciPy, SKLearn, Matplotlib, Pandas.

Engineered and visualized probabilistic features, embeddings, dimensional reduction, and various categorical variables.

Tested various machine learning methods: Logistic Regression, Gradient Boosting Trees, LightGBM, Neural Networks, and their ensembles.

Report: the Report Music Recommendation Report.pdf

Online Posting Platform

Building, as a team player, a React web software that allows people to join interest groups, post articles, and chat among each other.

Responsible for designing wireframes, designing RESTful API, setting up MangoDB, and programming both backend and frontend.

Website: the Website group-social.herokuapp.com

Bombing Game

Built, as a team player, a multiplayer 3D 3rd-person-view game from scratch, including server-client communication and graphics engine.

Responsible for the whole server-client networking system, server game logic, and debugging client graphics.

Designed and programmed networking with Asio framework for one server and up to 4 clients, and game state synchronization.

Website: the Website https://cse125.ucsd.edu/2021/cse125g1/
Project on Github: the Github Project https://github.com/ucsd-cse125-sp21/cse125-sp21-group1

Student and Student Housing

This is a React Native application that allows UCSD students to list their houses online for others to rent, or to post themselves online for finding potential roommates.

The privacy is ensured such that the no personal information, other than what user entered is stored. We also created a messaging system that allows students to communicate to each other. Therefore, no personal communication methods are disclosed.

Website: the Website ssh.zhukaihan.com
Github: the Github https://github.com/zhukaihan/SSH
Expo Public Project (Expired :( ): the Expo Project Page https://expo.io/@zhukaihan/SSH
Testflight (Expired :( ): the Testflight https://testflight.apple.com/join/EZsDgIDu

Obstacle Detection

It uses an deep learning object detection model (Single Shot Detector with MobileNet v2) to detect any obstacles to help patients with Parkinson's disease to be aware of their surrounding.

It uses a single camera on iOS, although the model is trained with Tensorflow and is able to be used cross-platform.

It is a project for ECE Design Competition and we end up being the most voted project by the audiences after the final presentation but still didn't win the competition (because we didn't communicate enough with the patients).

Website: the Website od.zhukaihan.com
Github (iOS App): the App https://github.com/zhukaihan/Obstacle-Detection
Github (Training Code): the Github https://github.com/zhukaihan/Obstacle-Detection-Training
Training Data with Labeling Visualization on DataTurks (DataTurks Went Down): the Dataset We Collected https://dataturks.com/projects/kaihan.zhu/Obstacle%20Detection%20Dataset
Training Data on GitHub: Training Data on GitHub https://github.com/zhukaihan/Obstacle-Detection-Training/tree/master/data/Our%20Data
Log / Notes: the Log / Notes od.zhukaihan.com/log

Stock Prediction

Predict a stock’s trend using historical data with deep learning with Tensorflow, using LSTM RNN combined with CNN.

Studied CS231n from Stanford University. Implemented most-used layer with NumPy using Python.

Realtime data sourced from AlphaVantage. Understood deep learning, backpropagation, the use and ideology of different layers, and the methodology of different famous networks on a mathematical level.


It is a simple blog site. It is entirely handwritten -- without autocompletion -- by me. Using Javascript instead of PHP to fill in pure text contents so that not only allows user not need to look at browser's loading indicator, but also that the website can be hosted on Github. I created this blog aimed at sharing my experiences with others. I wish it can be a server-sided scripting so I can know what the reader thinks about my writing.

Website Demo: the Blog blog.zhukaihan.com


Developed an algorithm using Canny edge detection, Hu Moments, etc to detect a targeting shape with NVIDIA Jetson TK1.

Responsible for robot’s software and its vision. Utilized serial and TCP/IP communication, OpenCV to complete the task of detecting a targeting shape with a camera and communicating such information to robot’s controller.

Researched various noise reduction techniques, edge detecting algorithms, and shape descriptors to detect the targeting shape.

Home Automation

A home automation...... by me...

Used Java with CMUSphinx for speech recognition and Jython for communicating with Philips Hue through the network to control the lights.


Rect() is a web game. It is a platformer game with new mechanics. There is something special about it.

It was created in collaboration with Max Manning during Stanford Summer Session.

Use arrow keys to move yourself, and use mouse with left click to aim and shoot body parts.

Web Game Website: the Game game.zhukaihan.com
iOS Game's Code on Github: Code github.com/zhukaihan/Rect-iOS
Original Web Game's Code on Github: Code github.com/MaxBookPro/Rect-

Ultra, Simple Browser

Ultra, Simple Browser is a web browser.(obviously) It is a browser with simple design. I made it just for trying Swift and iOS ecosystem

Website: Website ultrasimplebrowser.zhukaihan.com
iOS App Store: iOS App Store itunes.apple.com/us/app/ultra-simple-browser/id952551914?mt=8
Code on Github: Code github.com/zhukaihan/Ultra-Simple-Browser