I have been drawn to computer programming since the age of 10, when I cobbled together my first web site and hacked up a few Macintosh bitmap fonts with a copy of ResEdit. From the beginning, I set my sights high, envisioning myself designing the perfect office suite or windowing system. I even attempted to bring these visions to life, with an office suite built in HyperCard and a windowing system built in Microsoft QuickBASIC, of all things. I had yet to learn how to effectively design the software I was building or, evidently, how to pick the right tools.
In middle school I started reading Usenet newsgroups and joined the Apple II community on comp.sys.apple2. I started with Applesoft BASIC and, as I learned more about the inner workings of the machine, built my way up to assembly and machine language. One of my last contributions was a file manager and program launcher completely hand-rolled in 65C02 assembly language.
Around 2002, the HyperCard community was quickly realizing that the ongoing transition to Mac OS X would leave them behind. I became one of two lead programmers of a community-driven effort to create an open-source clone of our beloved HyperCard. Initially, our project was to be built in RealBasic, but we quickly hit the limits of RealBasic's capabilities: the interpreter we built was unacceptably slow, and with another project I was working on at the time I had so stretched RealBasic to its limits that it became more unstable with every new feature. Realizing that RealBasic would no longer cut it, we switched to C++. The other lead taught me the basics of C syntax, and within days I was writing large chunks of the program's functionality in amazingly coherent C++.
Later on, I took my C knowledge over to the iPodLinux project, where I wrote several applications including PodPaint, a replacement menu system called IconUI, and the entire text input system including all the built-in text input methods.
By the time I had to fill out my college application, the choice of major was fairly obvious. In September 2005, I started the software engineering program at Cal Poly San Luis Obispo. My first computer science course was in C, and I was so quick at the lab assignments that the professor hired me as a student assistant to help the other students complete their assignments. Most of the other courses were taught using Java, so I picked it up as the preferred language for most of my projects.
Part of Cal Poly's software engineering curriculum was the so-called "capstone sequence," a series of courses in which we worked in teams with Intuit to build a Web 2.0 application and companion Blackberry app for task management. All teams were required to use JBoss and JSP for their application server. On top of that, our team added AJAX and JSON for front-end communication, MySQL and Hibernate for our database, and Maven for the build process. My contributions to the project included UML diagrams, the initial database schema, and both back-end and front-end code to manage lists of employees, tasks, and resources.
For my senior project, I designed and developed an interpreter for a language reminiscent of HyperCard's scripting language, HyperTalk, harkening back to the days of that HyperCard clone. The most challenging aspect was the language's grammar, with such non-context-free features as case insensitivity and keywords that can be used as variable names. I laid down my guiding principles of consistency, maintainability, modularity, expandability, and compatibility, and applied my new software engineering skills to follow them.
I graduated cum laude from Cal Poly San Luis Obispo with my B.S. in Software Engineering on December 12, 2009. I continue to work on many personal software projects, some of which are shown here. Some of these projects have been or eventually will be released as open source, including a feature-packed painting application I am currently working on. I love to create things that others use to create, as demonstrated by the aforementioned interpreter and painting programs.
In addition to software engineering, I also love drawing and writing. I am currently in the middle of writing a novel about a lonely girl in middle and high school who becomes friends with witches, aliens, and genetic engineering experiments. I also draw cartoons, mostly of the characters in my novel. You can get an idea of the extent of my Kreativity from my main web site, Kreative Korporation. All of the design, coding, and content found here and on the larger Kreative Korporation site is my own work.