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 software engineer at Databricks in SF working on the Database Infrastructure team, and graduated from Harvey Mudd College in 2025.

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.

pool_agent.png

8-Ball Pool Agent

Computer Vision agent for Miniclip 8-Ball Pool: uses OpenCV and PyTorch to detect the table and balls, and calculate the best shot. PyAutoGUI automation actually plays the game on an Android phone projected to a computer screen.

Source Code

8-Ball Pool Agent

Computer Vision agent for Miniclip 8-Ball Pool: uses OpenCV and PyTorch to detect the table and balls, and calculate the best shot. PyAutoGUI automation actually plays the game on an Android phone projected to a computer screen.

Source Code
pool_agent.png
wordscapes.png

Wordscapes++

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

wordscapes.png

Wordscapes++

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

backgammon.png

Backgammon Dashboard

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

Demo

Backgammon Dashboard

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

Demo
backgammon.png
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.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
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

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

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

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

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

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

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
nonogram-solver.png

Nonogram Solver

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

Source Code
nonogram-solver.png

Nonogram Solver

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

Source Code