Software Engineer // Bachelor's degree in Computer Science
You've mentioned that you first began programming in high school on your Ti-84 calculator. How did that come about, and what sort of programs were you writing?
Well, when I was a freshman in high school, I read in my textbook that my calculator had a way to write programs on it. After finding a website that documented the basic language it used fairly well, I started writing these little programs for it. I started out with the usual math formulas that calculate things like the Hypotenuse of a triangle, but I also wrote some other programs like those old-school text-based dungeon crawlers, PONG, and even this one that would let you walk around in a map.
This was around the time you got started with FIRST Robotics Challenge, correct?
Yeah, I joined when I was a freshman in High School, coming out of being in the FIRST Lego League from 5th grade through middle school. Each year would bring a different competition such as shooting foam basketballs into hoops, launching frisbees into overhead goals, and launching a giant exercise ball into these bins on top of where the drivers would stand. When we did the exercise ball game, we built a launcher using an aluminum fork attached to surgical tubing which was pulled back by a winch. It was so powerful that we had to leave a ratcheting wrench in there to help prevent back-driving the motor. I have a vivid memory of being in the queue for a match, but we realized that the force of the mechanism we used to launch the exercise balls was causing the aluminum tubing to crack, which would have put our robot out of commission (and our team out of the semi-finals) if it failed during a match. So we ran over to our pit area, grabbed some tools and some t-shirts to cover the electronics, and we bolted some extra aluminum tubing to it to help reinforce the launching mechanism. While our robot didn’t break, we also didn’t end up winning, but it was a fun experience overall. Oh, and one of the mentors from my team helped build Jabberwock which competed in the original Battle Bots TV show back in the 2000s.
Everyone in the office loves video games, but you’ve taken it a step further and built your own. How was that experience?
When I was in high school, taking an AP Computer Science class, I built a side-scrolling space shooter in Java, and re-wrote it the year after to fix a number of issues in it. Later on, I helped build some games as a part of this game development club at USC, making a lot of the music for them. I actually took a programming class where I worked in a team of 2 people to build this 3rd person shooter where you play as a robot that goes around and can craft parts and upgrades out of materials dropped by enemies that you’ve killed. The year after, when I took a new Media Arts class, I built a game where you had to collect cubes to escape from a place that you were dropped in. For all of these projects, I ended up writing the music and creating some sound effects, which was actually fun to do. However, the part I enjoyed most was programming the game itself and solving all of the challenges that came about while doing that.
Did you have formal musical training prior to writing the music for your video games?
I played the clarinet through middle and high school (both concert band and marching band), and at USC in the Carolina Band. I also play the piano and I've lately been learning how to play the guitar.
Any other cool DIY electronics that are worth mentioning?
During my last semester at USC, I took a New Media Arts class as an elective and ended up building a device that had 2 ultrasonic sensors that measured distance to your hands, and fed that information into a software called Pure Data, which then fed MIDI data into a software synthesizer to play music.
For a while, I was building a status screen to connect to my computer. This used an Arduino which controlled a little LCD screen over SPI.
That's awesome! Can you tell me more about the music device you created?
At the time, I was interested in Computer Music, and was looking for a way to learn more about it, so I started learning more about one software called Pure Data. I created a kind of sequencer with it that would generate the notes that I fed into a software synthesizer called ZynAddSubFX, which could create the sound for multiple instruments at once. This music was generated based off of a chord progression, which dictated the notes that the instruments played. I had originally wanted to use an Xbox 360 Kinect with this, but ended up using 2 Arduinos connected to some Ultrasonic sensors, and modified my Pure Data program to read the serial data to determine when to change chords, and how loud to make the instruments. In all, it turned out pretty well and I felt like I learned something new and useful along the way.
Aside from electronics and music, you've said that you recently started gardening in your free time. What are you growing right now?
I currently have a large Aloe Vera, a bunch of green onions, bell peppers, and a loquat sapling that I grew from a seed from one of the loquat trees on USC’s campus. I named the loquat plant Lazarus, because it came back from the dead (I thought I killed it). I am kind of new to this, so it’s been a good learning experience.