MAKER PORTFOLIO
Freshman year, in robotics club, I 3D printed parts and helped program, design, and build the robot. Sophomore year (after AP Computer Science), I coded a Java game applet ("Mayan Temple Builder") and a personal website. I also began my largest project: program an AR Parrot Drone 2.0 to follow people, using computer vision. This summer, I programmed an Android app ("Quantum", available on Google Play Store) and did several Arduino projects. In my engineering internship, besides soldering circuits and laser etching, I learned Visual Basic by hacking the MineSweeper and Tic-Tac-Toe (including AI) games, and learned DOS. While learning Mathematica, I created a Minions graphic, a Galaga GUI, and a program to distort faces in pictures. Finally, I recently attended SD Hacks, where a group of friends and I created a computer vision algorithm to read and solve hand-drawn electrical circuits.
WHAT I MAKE
I do my projects at home (except for 3D printing, which I did at robotics club), on my computer. My "tools" are C++, Java, Visual Basic, Latex, Unix, DOS, Solidworks, Android SDK, Arduino, Mathematica, HTML, CSS, Javascript, and OpenCV. Other than Java and Mathematica, which I have learned/am learning in school, I am entirely self-taught, using online resources. Throughout my relatively short time as a programmer, I have found Stack Overflow to be one of my greatest friends. It was relatively easy to learn HTML, CSS, Javascript, Android, C++, etc. using YouTube tutorials (i.e. Derek Banas), Udacity, Codecademy, cplusplus.com, and the Android Developer sites. I have also read books on Unix, Javascript, computer hardware, Arduino, and app development. For my drone project, I had to read several computer vision, control theory, and drone papers, which I found on university lab websites.
HOW I MAKE
THE MOST MEANINGFUL THING I'VE MADE
Although I have worked on several fun projects, the most meaningful was programming a Parrot AR Drone to follow people based on visual recognition of a user-worn patterned badge. The drone behavior can be controlled by modifying the pattern. Approaching nearly a year and a half since beginning this project, it is by far the most complex I have ever worked on. However, its struggles and moments of despair have made every advance all the more rewarding. I now live for the thrill of overcoming hard problems. In addition, I learned immensely about topics ranging from C++ and threads to control theory and the mechanisms of human attention. One of the main lessons was that certain things are much better learned by making than reading textbooks. Eventually I got the drone to work fairly well. I finally have the pet that my parents always refused me...and it obeys my every command...