Welcome to my portfolio! I have 16 years of experience with the entire app development life cycle, including design, development, testing, maintenance, and even marketing and tech support. If you think I'd be a good fit for your job opening, please contact me!
This was supposed to be my get-rich-quick app, being a simple yet essential utility I could sell on the Mac App Store. Unfortunately I never found a way to get it to work within the sandboxing limitations, so I made this website to sell it online. But then the Baltimore riots happened and I decided to make it donationware for repairs, and ultimately made it free and open source.
At some point I realized I should work on an open-source Android or web project to round out my portfolio, so I checked out the code bases and communities for reicast, iD, and OsmAnd before deciding to work on Mupen64Plus AE. I added searching and sorting, improved the file management based on my experience with iVideo, and redesigned the user interface.
This project started the summer before college, when my dad took me and my sister to Hawaii and we ended up with a lot of photos and videos. The photos could be handled by iPhoto, but there was no video alternative at the time so I threw together an "iPhoto for videos". A friend suggested I turn it into a full product and sell it online. 12 years later and I'm still maintaining it!
Alchimie LLC needed help reverse-engineering the database formats and metadata tags used by Serato DJ and Traktor, which are largely undocumented. As I had prior experience with reverse-engineering parts of the iTunesDB format and the pixm resource format for OS X, I offered to help. The project was a success and I provided ample documentation and sample code.
On Freelancer there was a contracting job available to implement a Java-to-C bridge of libVLC for $3000. That seemed a little high for something so simple, so I contacted the project starter and we agreed to expand the job to include a Java (later Scala) media player using OpenGL and GLSL for YUV-to-RGB colorspace conversion, and OpenAL for streaming audio.
The common assumption for sorting algorithms was that they had to sacrifice something, whether it be speed, stability, memory, an O(n log n) worst case, or being non-theoretical. That wasn't acceptable to me, so I read nearly 30 academic papers until I discovered one that seemed practical. I implemented the algorithm, added my own twists, contacted the authors, and block sort was born.
For reasons that can only be described as temporary insanity, I thought NIH Syndrome was a great idea and set out to create my own cross-platform object-oriented UI and app framework. Using C. Heavy abuse of the GCC preprocessor, tons of wrapped system functions, and a custom graphics library led to a surprisingly capable framework that did the same thing as other frameworks.
Using Windows when you're used to OS X is not fun at all. I was able to restore most functionality using 3rd-party apps, but I couldn't find a solution for the command-tab app switcher, command-tilde window switcher, or Mac-style text input. So I wrote an AutoHotKey script that hooked into the Win32 API to provide just that!
Sadly I never released this app, since temporary insanity kicked in and I decided to work on the Bonzai Framework instead. Open your art box and use buttons, pom poms, toothpicks, stickers, glitter, yarn, googly eyes, popsicle sticks, yarn, pipe cleaners, doilies, and cloth to create your very own Pod Pal! The stickers were sticky, the googly eyes were googly, and the about screen used realistic rope physics.
I wanted to make one of those mouse figurines for my aunt but lacked things like talent, so instead I drew one of her existing figurines from the top, side, and front, created a 3D model in Cheetah3D using those reference drawings, wrote a small utility that flattened the 3D model into strips, traced those strips onto paper, and taped the pieces back together. Michelangelo I am not.
For my first iOS project I decided to remake one of my earlier games from 2003, called Bubbles. The gameplay relied on the accelerometer for movement and multitouch to collapse the spike walls on either side. I also added an online ranking system, a calibration tool for the accelerometer, and 50 unlockable achievements.
The HiFi Bar hired me in late 2007 to begin working on the next generation of their el▸dj jukebox software. My version was designed from the ground up to work efficiently with over 50,000 songs, use a custom flicker-free user interface, provide detailed usage reports, and of course accept money via their RS-232 bill acceptor.
The following games and apps were written in REALbasic, except for the first one (Yoshi's Puzzle Panel Solver) which was a Java applet. The graphics were hideous, but the games were fun!
These next games were written in AppleScript, which at the time only allowed PushButtons to move. Therefore everything was either made out of buttons or a static grid of images.
Sadly, most of my AppleScript games (and my TI-73 calculator games) seem to be long gone.