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
Web Developer
Recent college grad always eager to learn. Likes building stuff.
I bring data to life.
Some of my projects.
My skills.
What I do for fun.
IEEE RoboCup
Tritons
University
- CAD Model
- WIP Robot
- ModulesEach module has inputs and outputs. We use RabbitMQ to communicate between modules.
- Node GridFor pathfinding, we use a simple grid of nodes and adjust pentalties based on the expected position of future robots.
- Jump-Point SearchJump-Point Search is an optimization for A* that is significantly faster than our previous usage of any-angle Theta*.
- Line of SightTo 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.
MESA National Engineering and Design Competition
Document Organizing System
High School
- Second Place NationalsWe won second place in the national competition. I'm the one in the center.
- First PhototypeThe first phototype used a barcode scanner.
- BubblesRather than reading papers via barcodes, I learned to run OpenCV on a Raspberry Pi so we could read ID bubbles instead.
- Sliding BasketsOur 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-WayOur 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.
Congressional App Challenge
Petri
High School
- 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.
MESA Soccer Bot Competition
Bolsa Grande High School Soccerbot
High School
- 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.