David P. Bushong

david@bushong.net Mailing address upon request
+1 510 881 5346 http://bushong.net/david/

Career Goal:

I have accepted a full-time position and am currently not looking for work.

Expertise:

Work Experience:

Projects:
Mason Components for AJAX
I gave a 45-minute presentation at OSCON 2006 on how to use Mason components to build AJAX applications through good design and effective code reuse. Used: HTML::Mason, Javascript, S5
AvantGo for RSS
This feature allows RSS feeds to be synchronized to a handheld device for offline viewing. Challenges included the need for extensive, multi-level caching for performance and to avoid overfetching feeds from sensitive RSS providers, parsing of often poorly formatted data, and finding ways to provide easy implementation of the feature in the existing server framework. Used: Perl, HTML::Mason, Javascript, MySQL, Memcache, RSS
AvantGo Travel Tab
The AvantGo Travel Tab feature allows PDA users to pull down an offline cached copy of their travel itineraries, as well as weather, maps, and city guide information (restaurants, attractions, etc.) pertinent to their travel destinations. Challenges included retrieving and normalizing data feeds from various Travel Providers, as well as integrating numerous other data types into an efficiently downloadable and navigable UI. Used: Perl, HTML::Mason, Javascript, MySQL, Memcache, XML, SOAP
Wordsy
Wordsy is a playalike to the Yahoo! "TextTwist" game, but implemented entirely using AJAX, DHTML, and a simple Perl backend, integrating a third-party Java applet for optional sound support. Used: Perl, Javascript
Dogtivities
I originally wrote the PHP Event Calendar backend for this for use with Danville.com. For Dogtivities (with permission from Media Net Link), I rewrote the code to be more modular and to cater to the specific needs of the site. Used: PHP, MySQL
Baagle Desktop Search
Built in a weekend on a dare, this is a workalike to Google Desktop Search that works on UN*X systems. It uses existing Open Source indexing and conversion software, but provides an easy-to-use web frontend to access the results, without the need for a separate webserver. Used: Perl
Floating Sheep Wishlist
I designed the backend database schema and core logic for this generic wishlist system. Interesting features include: heuristic page scraping, hidden automatic "learning" customization of some interface features to the individual user, a simple generic PHP PearDB abstraction layer-based database session storage layer, a HTML::Mason-like args() functionality to provide register_globals-like simple access to variables in a secure fashion, and a reuse of my styled-font image generation and caching system. Used: PHP, MySQL
AthenaRMS
I have worked on the 5.0 Open Source release of the Athena Request Management System software, performing a complete security audit. I wrote the installation system and wrote the release management scripts. I implemented some of the advanced configurability features for the 5.1 release, and worked on an upgrade/XML data transport import/export utility. Used: PHP
XML::Aggregator
This system allows you to extract content from any unstructured data source (e.g. a website) and publish it to any XML DTD you specify in an automated manner. Great for extracting real estate listings, job listings, RSS news feeds, or just about any sort of repetitive data whose format you can't control. The core module is Perl, the web interface uses HTML::Mason
Euphorion Performance Tester
Fully configurable custom load tester. Uses multiprocess communication, locking, and database files efficiently to achieve and sustain a high number of parallel connections to a webserver, simulating any sort of user session desirable. Targeted towards evaluating application server page (Java, Perl, ASP, etc) performance. Used: straight perl
Euphorion Client Extranet
Working with the UI design team, built a complete extranet interface for Euphorion's clients to securely access files, project member information, and mailing lists. Features included: Windows filesharing access for Euphorion staff, web upload capability for client, complete administrative control via the web, no back-end database needed, all information encapsulated in client directories, full per-client authentication and external anonymity (no one client can see what the others are). Used: HTML::Mason
Mason Gallery
My own take on automatic thumbnail generation: simply create a directory and toss images to it under the /pics tree and they are automatically accessible (no index.html or anything needed). Pages are cached efficiently and only regenerated when necessary. Other features include JPEG Exif data and thumbnail extraction, RSS feed, and simple search. Used: HTML::Mason
Comics Page
A configurable, databased-backed, multi-user comics page system for my private use. Contact me for a demonstration. Does many interesting things with caching and failure management. Also provides an RSS feed for use with rich aggregators. Used: HTML::Mason
Temperature Page
This application combines a back-end cron job to gather temperature data with a simple front-end graphing page. Used: Ruby, Rails, RRDtool

Education:
UC Berkeley, Berkeley, CA.
Bachelor of Science Degree in Electrical Engineering and Computer Science (EECS), Computer Science Emphasis, received 12/1998
Course-work included: