Skill level
2 Previously Proficient

Once I re-invented myself as a web developer in 2000 by joining OnlineFocus, I became very attracted to Flash. There was nothing else like it for graphical web delivery other than maybe Java applets at the time. Onlinefocus paid for my University of California courses to get up to speed on it. Being a software engineer, I immediately gravitated towards programming in ActionScript rather than using the Flash GUI timeline. When Flash MX came out in 2004 with object-oriented ActionScript 2, I thought it was the greatest thing since sliced bread and wrote my own 3-D rendering engine for The Burke Institute K-Web project. When contracting for Yahoo! Research Labs, I combined my knowledge of force-directed, gradient-decent graph layouts (based on the Kamada-Kawai algorithm) with Flash AS2 to build a graphical music artist search engine. In 2006, I was hired by FlyteComm to do Flash development full-time. While at FlyteComm, I regularly upgraded to the latest versions of Flash and AS3 to do some really amazing stuff including the design of my own dependency-injection framework which is described in detail below.

When the iPad made its debut in 2010 and Steve Jobs denounced Flash in his famous "Thoughts on Flash" memo in 2011, I saw that Flash was coming to an end and I re-invented myself as an iOS developer, (while still working at FlyteComm), never to go back to Flash again.

Experiences using this skill are shown below:

FlyteComm map clients

Designed and implemented complex, real-time, universal map display applications in Adobe Flash for the web and CocoaTouch for the Apple iPad that yielded a significant increase in revenue and helped achieve financial independence for the company (according to the President/CEO, Maurice Bailey).

Prior Work

2002 — 2006
Zaun Consulting (self-employed) [Boulder Creek, CA]
Yahoo! Research Labs (research lab) [Burbank, CA]
The Burke Institute, (education foundation) [Santa Cruz, CA]

Enhanced the Flash Weather Plug-in with on-demand loading

Refactored the previous weather plug-in I implemented to do on-demand loading of weather only when requested. The previous approach preloaded the weather in the background to speed delivery but that approach negatively affected overall Viewer performance. The weather animation in the new approach would start up soon as 2 layers were loaded and would automatically add more layers to the animation sequence as each layer became available. This provided on-demand loading with a fast initial presentation.

Created a cool Flash Viewer steam-punk skin

This was an interesting exercise in repurposing the Universal Flash Viewer for holiday fun. It required very little code rewriting other than writing a mock web services plug-in that played back canned data (Santa's sleigh ride path). The only other thing I had to do was create a new skin for the holidays and add some easter eggs (such as falling snow and country flags). I did the steam-punk styled graphics arts myself with some pretty cool 3-D effects. I also created the reindeer animations and just substituted one icon plug-in for another to make it appear.

Re-engineered the Flash Viewer Map Plug-in

The redesigned map plug-in solved a long-standing problem with the old map plug-in that was actually a port of some old code written by someone else. The new plug-in required a lot less memory, was a lot less buggy and it could show dozens of different base maps from multiple map tile servers. All of this could be configured without touching any code (unlike route-me and OpenLayers). The map type selected in this screenshot was  the USGS topo map. The pushpin labels were draggable and individually displayable.

Added 200+ NOAA Weather overlays to Universal Flash Viewer

Updated Flash Viewer to support the WMS (Web Mapping Services) supported by NOAA’s weather servers complete with tile image stretching to approximate image warping from the Geographic to World Pseudo Mercator (used within the Flash Viewer). Had the Viewer talking to 24 NOAA weather servers supporting more than 200 weather overlays (including storm tracks, fires, floods, radar, and so on) with full visibility control working in just over a week (on a rush schedule) to show to the FAA. Also added GeoJSON support for NOAA aviation weather.