David Chen

|

About Me


david.png

Hi! I'm a computer science and math lover, and love automation and learning about how things work :)

I like building websites with React, and writing fun programs in Python—feel free to check out some my projects below!

Or glance through some of the books I've read beginning in high school.

I'm currently a CS/Math senior at Harvey Mudd College in Claremont, CA.

Industry Experience


slingshot.png
scout.png
revscale.svg
google.png
stripe.png
databricks.png

Projects


data-open-logo.jpg

Citadel Data Open

Winner of 2022 Citadel Data Open Championship ($100,000 prize): regression on college data to identify important features predicting pay and loan amounts.

data-open-logo.jpg

Citadel Data Open

Winner of 2022 Citadel Data Open Championship ($100,000 prize): regression on college data to identify important features predicting pay and loan amounts.

wordscapes.png

Wordscapes++

Progressive web app clone of Wordscapes, a popular word finding game -- additional features and higher difficulty.

Wordscapes++

Progressive web app clone of Wordscapes, a popular word finding game -- additional features and higher difficulty.

wordscapes.png
backgammon.png

Backgammon Dashboard

Developed website for rapid iteration regression testing to create optimal, memorable backgammon strategies based on game state.

Demo
backgammon.png

Backgammon Dashboard

Developed website for rapid iteration regression testing to create optimal, memorable backgammon strategies based on game state.

Demo
pingmote.png

pingmote (Poor Man's Discord Nitro)

Developed hotkey triggered cross-platform global emote picker to create and quickly insert custom images and gifs.

Source Code

pingmote (Poor Man's Discord Nitro)

Developed hotkey triggered cross-platform global emote picker to create and quickly insert custom images and gifs.

Source Code
pingmote.png
ruzzle-solver.png

Ruzzle Solver

Designed a program to play Ruzzle, a mobile word finding game in a 4x4 grid. Utilized optical character recognition, custom trained models, graph theory, and Android automation.

Source Code
ruzzle-solver.png

Ruzzle Solver

Designed a program to play Ruzzle, a mobile word finding game in a 4x4 grid. Utilized optical character recognition, custom trained models, graph theory, and Android automation.

Source Code
slashgen.png

Reddit Username Generator

Trained LSTMs and GRUs on 400,000 Reddit usernames for text generation, then integrated into React through TensorFlow.js and Flask and deployed on Heroku.

Source CodeDemo

Reddit Username Generator

Trained LSTMs and GRUs on 400,000 Reddit usernames for text generation, then integrated into React through TensorFlow.js and Flask and deployed on Heroku.

Source CodeDemo
slashgen.png
isola-game.png

Isola Game

An easy to learn 2 player turned based game, Isola involves players moving and destroying blocks in an attempt to isolate the opposing player. After learning about the minimax algorithm in Stanford CS221 (Intro to AI), I decided to implement it in a more difficult setting, since Isola requires 2 moves per turn rather than per alternating moves.

Source Code
isola-game.png

Isola Game

An easy to learn 2 player turned based game, Isola involves players moving and destroying blocks in an attempt to isolate the opposing player. After learning about the minimax algorithm in Stanford CS221 (Intro to AI), I decided to implement it in a more difficult setting, since Isola requires 2 moves per turn rather than per alternating moves.

Source Code
arduino-car.jpg

Arduino Obstacle Avoider

My first dabble into the world of robotics, this Arduino car uses an ultrasonic sensor to avoid bumping into obstacles. Later, I used ROS models for simulation in Gazebo to optimize path following.

Source Code

Arduino Obstacle Avoider

My first dabble into the world of robotics, this Arduino car uses an ultrasonic sensor to avoid bumping into obstacles. Later, I used ROS models for simulation in Gazebo to optimize path following.

Source Code
arduino-car.jpg
autologin.png

AutoLogin

A Chrome extension for automatically signing into websites with saved passwords -- saves time clicking and waiting for login buttons, especially on websites with multi-step logins.

Source Code
autologin.png

AutoLogin

A Chrome extension for automatically signing into websites with saved passwords -- saves time clicking and waiting for login buttons, especially on websites with multi-step logins.

Source Code
cartpole.png

CartPole RL

After learning about Reinforcement Learning in Stanford CS221 (blackjack HW), I applied vanilla Q-learning with epsilon-greedy to OpenAI Gym's CartPole problem. I was able to meet the criterion for solving the problem without any advanced methods such as Deep Q Networks or Policy Gradient.

Source Code

CartPole RL

After learning about Reinforcement Learning in Stanford CS221 (blackjack HW), I applied vanilla Q-learning with epsilon-greedy to OpenAI Gym's CartPole problem. I was able to meet the criterion for solving the problem without any advanced methods such as Deep Q Networks or Policy Gradient.

Source Code
cartpole.png
edutools.png

EduTools

Winner of HackPHS 2020: With the worsening global pandemic, online learning has severely magnified inequality for students with limited access to technology. EduTools makes traditional online learning accessible without the need for internet access: all you need is a basic phone.

Source Code
edutools.png

EduTools

Winner of HackPHS 2020: With the worsening global pandemic, online learning has severely magnified inequality for students with limited access to technology. EduTools makes traditional online learning accessible without the need for internet access: all you need is a basic phone.

Source Code
sunrise-alarm.jpg

Sunrise Alarm

We always feel more refreshed waking up to the sunrise on weekends without a blaring alarm clock. This Android tasker script uses an adjustable light to simulate the sunrise, as well as the sunset before sleep. REM sleep cycles are considered for alarm times.

Source Code

Sunrise Alarm

We always feel more refreshed waking up to the sunrise on weekends without a blaring alarm clock. This Android tasker script uses an adjustable light to simulate the sunrise, as well as the sunset before sleep. REM sleep cycles are considered for alarm times.

Source Code
sunrise-alarm.jpg
codenames.png

Codenames

A simple application of Stanford GloVe word vectors to the game codenames, where a spymaster attempts to give a clue to hint at certain words, while avoiding others.

Source Code
codenames.png

Codenames

A simple application of Stanford GloVe word vectors to the game codenames, where a spymaster attempts to give a clue to hint at certain words, while avoiding others.

Source Code
ambient-light-color-adjuster.png

Ambient Light Color Adjuster

After purchasing a color changing lightbulb to use a sunrise simulator alarm clock, I decided to have some fun with adjusting ambient light to match a game's dominant color.

Source Code

Ambient Light Color Adjuster

After purchasing a color changing lightbulb to use a sunrise simulator alarm clock, I decided to have some fun with adjusting ambient light to match a game's dominant color.

Source Code
ambient-light-color-adjuster.png
sketchful_demo.png

Pictionary AutoDraw

With image preprocessing, color matching, brush size optimization for resolution, and PyAutoGui, AutoDraw takes images and turns them into beautiful art on a canvas.

Source Code
sketchful_demo.png

Pictionary AutoDraw

With image preprocessing, color matching, brush size optimization for resolution, and PyAutoGui, AutoDraw takes images and turns them into beautiful art on a canvas.

Source Code
nonogram-solver.png

Nonogram Solver

With Selenium and bit operations, this fully solves nonogram visual logic puzzles.

Source Code

Nonogram Solver

With Selenium and bit operations, this fully solves nonogram visual logic puzzles.

Source Code
nonogram-solver.png