This resume is a single html file and can be easily saved by hitting ctrl+s (command+s).
It can be emailed and viewed in pretty much any html5 compliant browser.
The Zite web alpha is one of my favorite projects. It combines the awesome back end tech that Zite is known for and a true symmetric JS UI. The project uses Yahoo Mojito client and server. It produces identical HTML output either via state changes client side or full round trips to the server. It can function nearly 95% without the client JS loaded. The UI is clean and simple with slick transitions and animations. Although only an alpha it is ready for fullscale production.
The initial Alpha was created in a mind boggling 2.5 weeks. Initial development was followed by a rigorus QA and feature refinement process. The whole project was completed in aproximately 3 months. It is currently in private "Alpha" and waiting on design and feature updates before moving into a public Beta.
onBeing was The Washington Post's award winning flagship video series that produced two large series of videos. The magic of onBeing was the combination of excellent video content and innovative minimalistic interactive design. The original interface was 2D but the second incarnation featured a slick 3D interface built in flash. Both interfaces focussed on a rich fullscreen experience that put the content front and center. It supported multiple modes of interaction and a novel spiral comments system that surfaced important comments visually.
The Gaussian Lines project was done on kind of a whim based on a dream I had. I have always loved withing with 3D. The porject focuses on using a Gaussian distribution to distort a field of lines. You can tumble around the lines field by clicking and dragging. There is also a bit of noise added to the field distortion to give a sense of the frame rate and depth. It's my first time working with WebGL and Three.js. I am now a big fan of both especially when it comes to performance. < source example >
The slide show player I built for Salon is by far the most adaptable I've built so far. The player has 3 modes normal, full width, and fullscreen. In each of these modes the player is responsive, handles ads updating, and GA tracking. Each slide can be either HTML or a simple image, allowing for slide shows of you tube embeds. It also has a nice little pop out animation that keeps a nice smooth feel. < source example >
The Home Row web interface is another side project I work on. The focus of the project is to create a super fast keyboard driven web UI for XBMC. It uses quick flitering and simple hot keys to quickly find and play what you would like to watch. It also turns out to be a very finger friedly design and works well on mobile devices as well. Although it started out very simply I have added more complex features like pop up menus, queueing, and playlists. It is availible in the XBMC app repository for each version of XBMC since dharma.
This project was actually very challenging building a complex menu system that self replicates and has lots of specialized features per menu type. Also there is no back end availible for templating just a maddeningly complex and poorly documented JSON-RPC API. < source example > < source example >
The Word Find project has a funny history. I originally was asked to build a very simple command line word find game as part of a coding test. Unhappy with just producing a commandline version of the game I also created a web interface. The company was quite happy with my implementation in node.js. My wife is a big fan of word searches and wanted to actually make it playable, so I added UI game logic. We then noticed playing on the same screen wasn't so much fun so I thew in socket.io and ended up with a multi-user real time word search game. I still pick this up every now and again and have a lot of fun playing on it. < source example >
The live blog project was very exciting to work on. It was the first realtime app used in production written entirely by me and entirely in javasccript. The live blog features an event stack which is used to sync all users. New users grab static JSONs of past events then join a socket.io room where new events are directly broadcast via websockets. The admin is built directly into the UI. A logged in admin sees extra buttons users do not and admin cookies are checked against an auth server on the back end for secureity. The server is very efficient allowing over 15,000 users to be logged in and participating simultaneously on a single core with 0 lag. The servers can deployed in cluserts that use UDP discovery to build a back channel network to rebroadcast events throughout the network. Our admin users a big fans or this tool for it's speed and reliability. < source example >
This Hand Brake server grew out of simple necesity. I needed to convert a lot of video files from one format to the other and keep track of their progress. I was a big fan of the handbrakeCLI for doing the actual crunching but needed a way to make it user friendly. I built a server and UI that can look within a single directory and give tab completion style directory and file listings. This makes it easy for the user to find and add media to the queue. Each transcode job can have any profile used during conversion. It can recursively scan and queue entire directory trees as well. There are also options to delete the original file when the completetion is successful. < source example >