Selected projects
Mobile Applications
RemoteDroid
This was a personal Android project of mine. I'd been using a projector hooked up to my computer to watch movies for quite some time, and I'd run into the problem of how to control the computer from the couch in between movies. I'd already rejected the idea of a Bluetooth keyboard and mouse as being too unwieldy, so when Google released Android, I decided to solve this problem myself. Since its release at the beginning of this year, RemoteDroid has been downloaded over 100,000 times and has been mentioned on blogs like Wired, Engadget, and Boing Boing Gadgets.WTF?!
An iPhone app done in conjuction with Lavalobe, WTF?! was meant as a fun conversation-starter app. It pulls random facts and trivia from a database, allows you to rate them, submit new lines, and see the highest-rated, and newest entries. I did the entirety of the programming work for this project, using Objective-C, PHP, and MySQL to create a secure back-end, and easy to use front-end for this project. More importantly, it gave me insights into the approval process for the iTunes App Store, which is a hurdle everyone who wants to publish for the iPhone and iPod touch will need to overcome.Web Sites
3LCD
I localized and internationalized the 3LCD site with Cole & Weber United, updating and cleaning up existing ASP.NET code.Washington's Lottery
Working with Cole & Weber United, I updated the Washington Lottery site from old 'n busted ASP to ASP.NET with modern, semantic HTML. Over the course of a month I wrote all-new HTML, JavaScript using jQuery, and ActionScript using Flex to provide a much better online experience for Washington lottery players.Engine Interactive - Business site
This site uses standards-compliant HTML, cross-browser DHTML courtesy of jQuery, and a fun browser back button hack in the jobs section to provide a usable, progressively enhanced experience for prospective clients.Wetpaint
For this community-based collaborative art site, I was asked to enhance the existing functionality and UI by adding various improvements such as a folksonomy, ratings and commenting ability. To do so, I used PHP and MySQL, plus AJAX for the interface components.Flash
Sounders FC Ticketing Site
With Cypress Consulting. I worked directly with the Sounders Lead Graphic Designer to bring this site to life. I also conducted user testing to refine their seat selection tool to ensure the best user experience for sounders fans.Suncadia Real Estate
An all-Flash site with an XML backend. The site is designed to showcase this real estate company's properties and includes videos, dynamic listings for multi-million dollar vacation homes, and a live webcam.Diego Dinosaur Adventure
This was a downloadable suite of games done for Nick Jr. As lead programmer, not only was I responsible for overseeing 3 other programmers, and making all technical decisions, I also had a hand in QA, and final tweaks to gameplay.Nickelodeon Kid's Choice Awards Desktop Blimp Toy
Using mProjector, I created full-screen downloadable toy that's cross-platform, performs well, and was fun to create. Especially challenging was writing routines to make sure that only the relevant parts of the screen were updated on each frame.American Dragon - All Star Skate Park
This was the number one most popular game on the Disney Channel web site when it was launched, breaking game pageview records for that site. In building the game I utilized 3D math and camera systems. The positions of all elements on stage are stored as absolute positions, but then displayed as relative to a camera, making scrolling and changing viewpoints very easy.Raven Pinball
This project was challenging due to Disney requiring that it be playable by users whose machines had, at the low end, a 500mHz machine with 256mb of memory. At the same time, it needed a fast, accurate physics engine. Achieving both goals meant using a grid to cut down on collision tests, and a bunch of ActionScript optimizations.Experiments
Bombs and Daisies
I wanted to figure out how to program a multi-player game server, so I created this. Click the flower icon, then click around the screen to plant flowers. Click the bomb icon, then click around the screen to blow flowers up. Open up two browser windows, and you'll see that the state remains consistent between them. You might even be able to see other people planting, or blowing things up at the same time.The server was written in Java, and the challenges for this were maintaining state in a multi-threaded environment while keeping performance decent. The test button sends mouse clicks at random locations, and is there for load testing.
