David P. Bushong
Career Goal:
I have accepted a full-time position and am currently not looking for work.
Expertise:
- Software Development (C, C++, Ruby, Perl, Python, PHP, OCaml,
ColdFusion, Lisp, csh, sh, awk, and sed under UNIX and Windows;
AppleScript, BASIC, and Perl under MacOS and Windows) I have also done
work with XML, REST, and SOAP integration for Web Services
implementations.
- Web Design (HTML, JavaScript, AJAX, CGI, Perl, Ruby, PHP,
ColdFusion,
Python, and back-end integration using Oracle, MySQL, and PostgreSQL
through Embperl, EPerl, and Mason with mod_perl, eRuby with mod_ruby,
Rails with FastCGI,
and Plone with Zope for Apache under UNIX, and ASP with PerlScript and
VBScript under Windows and Linux). Trained in Mercado IntuiFind search
implementation and optimization. I also have some image editing
experience using The Gimp under UNIX and Photoshop under MacOS and
Windows, and have additionally developed various back-end image
generation tools (dynamic custom web-based chart/graphic creation).
- Release Management (Administering multiple CVS and Subversion
repositories, with access provided via CVSWeb, WinCVS, Trac, and native
UNIX clients tunneled through SSH. I have written release
scripts using rsync and other tools to efficiently distribute
trees of web data and code, as well as provided for
near-zero-downtime rollback where possible.)
- Systems Administration (FreeBSD 2.2.2 - 5.5, Sun
Solaris 2.5 - 8, RedHat Linux 5.1 - 8.0, Debian GNU/Linux 2.2,
Ultrix 4.2, NetBSD 1.2, Digital UNIX 4.0), supplying SMTP, Ident,
IMAP(S), (S)POP3, HTTP(S), FTP, LPD, NFS, NIS, SMB, NMB, CIFS,
LDAP, NAT, IPSec/PPTP VPN, (D)DNS, CVS(up), DHCP, SSH, VNC, NTP,
IRC, NAS, PPP, WebDAV, Subversion, Bit Torrent, and other services
securely and efficiently. I have configured IPFW, IPFilter, IPChains,
IPTables, and various proprietary firewalls.
- Computer Consulting (expertise in MacOS and Windows
95/98/NT/2000/XP)
- Technical Support (MacOS, UNIX, and Windows 3.x/95/98
products)
- PC Hardware/Software (Assembly, Installation, and
Configuration)
Work Experience:
- 3/2008 - present
Senior Web Developer & Systems Administrator
for MashLogic,
a Silicon Valley startup focusing on enhancing the end-user
browsing experience.
- 3/2005 - 3/2008
Senior Web Applications Engineer
for AvantGo, the service
for mobile content distribution owned and operated by
iAnywhere, Inc., a
subsidiary of Sybase, Inc.
I work with a small team designing new applications and backend support
infrastructure for AvantGo's 7 million user advertising-supported
service.
- 11/2002 - 3/2005
Senior Systems Administrator / Web Developer
for Media Net Link, Inc., a
consulting firm in San Ramon providing "web services for business".
I worked in network architecture, server security, and
web applications development.
- 4/2002 - 11/2002
Independent Consultant providing systems administration and
software development services to a range of clients.
- 11/1998 - 4/2002
Systems Administrator/Web Applications Developer for
Euphorion (formerly DataMain), Inc. (No longer in business), an
e-business solutions provider based out of Milpitas, CA. I handled
planning, consultation, and implementation of security and high
availability networked solutions and did part-time programming of
fast turnaround, resource efficient, web-based applications.
Additionally, I managed much of the internal IT infrastructure
necessary to provide transparent, secure access to intra and extranet
data.
- 8/1996 - 11/1998
Systems Administrator
for the DECF at
UC Berkeley. Responsible for
student, faculty, class, and staff account creation and maintenance,
as well as security and troubleshooting on 1400+ user system.
- 1/1998 - 6/1998
Vice-President of the
CSUA
(Computer Science Undergraduates Association) at UC Berkeley. In charge
of systems administration, account maintenance, and computer policy
for the CSUA's public and private access systems.
- 5/1997 - 9/1997
Senior Research Assistant working on the
Spartan Project.
Wrote C and Perl code to revamp the build system for producing
mappable binary files to program a multi-processor DSP chip array:
the PADDI-2 board.
- 5/1996 - 8/1996
Webmaster and Technical Support Engineer for
InterCon Systems West. (No longer in business)
Maintained and downsized transitional
web page (http://www.svcdudes.com/, no longer in service);
Handled technical support for
TCP/IP and telecom products via phone, fax, and e-mail.
- 1/1996 - 12/1998
Member of CSUA (UC Berkeley
Computer Science Undergraduates Association) Office Staff. Provided
general unix technical support.
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:
- Data Structures: emphasis on C++ data structures
- Machine Structures: emphasis on C and MIPS R3000 assembler
- Operating Systems: emphasis on threads and concurrency in C++
- Database Management Systems: emphasis on RDBMS
- Programming Languages and Compilers: emphasis on OO language design
- Foundations of Computer Graphics: emphasis on 3-D modeling.
Also see the project home page
- Components and Design Techniques for Digital Systems:
emphasis on efficiency in logic design
- Engineering Economics: emphasis of practical aspects of
engineering cost structures
- Software Engineering: emphasis on group dynamics and modular
design. Also see project
home page.
- Efficient Algorithms and Intractable Problems: emphasis on sound computer
theory