Duy Pham

Hi, I'm
Duy Pham

Fullstack developer

I'm a developer based in Orange County, California. I'm always willing to learn new tricks.

I build responsive components.

Duy Pham

Duy Pham

Web Developer

duypham12241999@gmail.com

(714) 332-7916

https://github.com/qbit-0

Recent college grad always eager to learn. Likes building stuff.

I bring data to life.

Some of my projects.

Two Pills

Go down user-generated rabbitholes.

DoomScroll

Filter Reddit by sentiment.

Flocks

Simulate flocks of birds.

Collapse

Generate pixel landscapes.

My skills.

React
Material UI
Java
TypeScript

What I do for fun.


  • CAD Model
  • WIP Robot
  • Modules
    Each module has inputs and outputs. We use RabbitMQ to communicate between modules.
  • Node Grid
    For pathfinding, we use a simple grid of nodes and adjust pentalties based on the expected position of future robots.
  • Jump-Point Search
    Jump-Point Search is an optimization for A* that is significantly faster than our previous usage of any-angle Theta*.
  • Line of Sight
    To further improve pathfinding, we simplify via line of sight checks. This results in beter paths than JPS alone.

Teams of students compete to build a set of robots to play miniture soccer. The project involved collaboration between mechanical engineers, electrical engineers, and software engineers.

As a member of the AI side on software, I developed the centralized off-field AI software to simultaneously coordinate a team of 6 independent on-field robots. This program was responsible for pathfinding, decision-making, and sending movement and kicking commands. It was written in Java.

I also developed TritonBot, a python program to control the actual wheels for each individual robot by tranforming the high-level commands sent by the AI. It was written in Python.

After two years, I was asked to lead software development. Unfortunately, due to the Covid-19 pandemic, we were unable to finish the physical robots in time. Our aspirations for RoboCup soccer is still ongoing, and hopefully we'll get it done this year. Since I've already graduated, I'm mostly just an advisor nowadays.

We wrote two papers describing our progress for 2021 and 2022. Check them out, if you want to learn more.


  • Second Place Nationals
    We won second place in the national competition. I'm the one in the center.
  • First Phototype
    The first phototype used a barcode scanner.
  • Bubbles
    Rather than reading papers via barcodes, I learned to run OpenCV on a Raspberry Pi so we could read ID bubbles instead.
  • Sliding Baskets
    Our second phototype was a large machine that used rods from a 3d printer to control two different baskets. We found some one-way printer rollers that worked consistently.
  • Two-Way
    Our third phototype simplified the design by combining two one-way printer rollers into a two-way roller. Removing the need to shift baskets also increased the sorting speed.

Design, construct, and pitch a prototype product. The top three highest-scoring teams would proceed through regional, and state completions before being accepted into the national competition.

The Document Organizing System, a wooden machine utilizing a series of printer rollers to automatically scan IDs on paper tests and automatically sort them in lexicographic order.

I suggested the idea, modeled the machine on OnShape, did the wiring, and programed the software in Arduino and Raspberry Pi. We pitched the product before a series of judges in a series of private technical interviews and public presentations.

Initially representing Bolsa Grande High School in the regional competition, we eventually represented UC Irvine in the statewide competition, and finally the state of California in the national competition. Through our product pitch, we were awarded second place in the national event in Philadelphia.


  • Petri, 13 Minutes Fast-Forwarded

Create a video game that educates the player on a concept.

Inspired by Conway's game of life, Petri is an evolution sim based on cellular automata. Each cell has a list of commands (such as move, eat, photosynthesize) that combine into a DNA program. When a cell reproduces, it passes on its DNA, with a chance to mutate. After running this for a while, you might end up with something interesting.

I did the design, programming, and art.

  • Scoring a Goal

Build a robot to kick a soccer ball into a goal.

We built a robot with Arduino, wires everywhere, and some tape. There might have been an LCD display too.

This was my first introduction to Arduino programming. Took a while to get the robot to move straight. Knowing PID would have made this a lot easier.