1054 E. 1st Street, Long Beach, CA 90802
Jonathan "Sheer" Pullen
Table of Contents
2007-Present -- Consultant with Kanvas, Laguna Beach, CA
2005-Present -- Consultant with Fisix, Laguna Beach, CA
2003-2005 -- Consultant with Headwaters Data Management Systems, Pettigrew, AR
2002 -- Consultant with Circle-R, Houston, TX
2002 -- Consultant with EV Parts, Lynwood, WA
2001 -- Senior System Architect with Loudeye Technologies, Seattle, WA
1999-2001 -- Senior System Architect with OnAir.com Streaming Networks, Irvine, CA
1998-1999 -- Consultant with Headwaters Information Management Systems, Pettigrew, AR
1996-1998 -- Senior System Architect with Epoch Internet, Irvine, CA
1996 -- Tech Support Level III with Support System Developers, Fairfax, VA
1994-1995 -- Head Technician with Hacker Shack Computers, Woodbridge, VA
Professional Experience
2007 » Present
Consultant
Kanvas, Laguna Beach, CA
- Wrote an engine to parse incoming mail, strip attachments, and convert them into SWF format for viewing inside a SWF
application.
- Made a number of improvements to a Flex STOMP client in order to support using it for binary messaging.
- Refactored and rewrote a proof of concept application to perform whiteboarding and annotations inside a web browser.
- Designed a database to store information about binary assets and users, and wrote PHP scripts to prove an XML API to that database for
a Flex application.
2005 » Present
Consultant
Fisix, Laguna Beach, CA
- Wrote an application to implement an expert system on multiple platforms that walks users through emergency medical protocols based
on simple yes/no answers. Application gets protocol logic out of an XML file and audio prompting out of OGG files.
- Wrote a Perl application to parse a complex XML file into a simple XML file, to convert WAV files to OGG and AMR files, and to build a
windows installer script to copy the appropriate files to a PDA.
- Wrote a Java application to run on a MIDP-2.0 mobile phone and display menus and prompts based on a XML file. The application also
plays audio prompts that are stored in AMR files.
- Wrote a complex windowing UI in Laszlo, including objects to communicate with a Pick database and to retrieve order and user
information, objects to display graphs and alerts, and objects to permit configuration.
- Rewrote significant portions of a Flex whiteboard application. Changed the application to use STOMP instead of FDS for messaging, to
support an event-driven mouse driver system with callbacks and binding, and to support using a database-driven message storage system.
- Developed a proof of concept Flex application that loads as a transparent overlay over a web page and allows annotation of that web
page.
- Rewrote Codehaus's open-source STOMP client in Flex adding significant functionality, including the ability to receive channelized
messages, and the ability to send and receive binary messages including objects.
- Wrote an automated email document converter in Perl that can take emailed files in DOC, XLS, BMP, GIF, JPG, and several other formats,
and convert them all to SWF files that can be viewed in any web browser and email a link back to the sender.
- Wrote a number of database access scripts in PHP to feed XML data to a Flex application.
- Configured a number of Ubuntu Linux servers to act as web servers, database servers, and application servers.
- Configured a Pick database to use a RAM disk for all data storage and optimized it in several other ways, improving the time for a
complex data sort operation from 2 days to 4 hours.
- Wrote scripts to automatically maintain CIFS/Samba mounts.
- Maintained several Linux servers running RainingData's D3 non-relational database engine.
- Wrote scripts to monitor the health of D3, Linux, and the IO subsystem of Linux, to help troubleshoot and improve performance of
D3.
- Wrote a D3/SMTP gateway.
- Imported a 220 million row database from MS SQL into MySql using a public SQL gateway that would only permit queries to run for 10 minutes
- Optimized filesystems and configuration files to maximize mysql performance on heavily loaded systems
- Configured ArcGIS servers
- Helped build a proof of concept Flex user interface for ArcGIS data
- Configured Cisco CSS switches to distribute load and provide redundancy
- Configured Cisco PIX firewalls to permit remote users to connect via VPN with split tunneling to aid administration
2003 » 2005
Consultant
Headwaters Data Management Systems, Pettigrew, AR
- Wrote two applications for Atmel AVR microcontrollers to build advanced multiplexed interrupt-driven UARTs,with data logging to flash
memory.
- Wrote three applications for Windows CE to support downloading transaction data, auditing, programming, and otherwise manipulating
electronic parking meters.
2002
Consultant
Circle-R, Houston, TX
- Wrote application in VBA to assist in sorting of assets to be distributed to franchise stores.
2002
Consultant
EV Parts, Lynwood, WA
- Converted several databases from a proprietary, undocumented format to a format used by an open source web store.
- Wrote and modified a number of PHP scripts to support functionality needed by evparts.com.
- Configured firewall, mail server, file server, and other core functionality for evparts.com
2001
Senior System Architect
Loudeye Technologies, Seattle, WA (fka Encoding.com)
- Designed and helped implement a redundant network of web and application servers using MySQL, Resin, Apache, and F5 BIGiP load
balancers.
- Wrote scripts to modify the normal failover behavior of the F5 load balancers and to perform extended service checks on databases.
- Wrote a modified version of RealAudio's g2slta (simulated live transfer agent) to allow choice of which clips to play based on
information stored in a database, and to send URL events at configurable times, including in the middle of clips.
- Assisted in the porting of RealAudio plugins from Windows (MFC) to Linux.
1999 » 2001
Senior System Architect
OnAir.com Streaming Networks, Irvine, CA (fka WWW.COM)
- Designed and helped to implement a streaming network capable of delivering 10,000 simultaneous on-demand streams from a 2.1Tbyte SAN
using Sistena Software's Global File System.
- Wrote software to protect against unauthorized streaming and aid metrics collection by using tokenized URLs by means of single
threaded Unix daemon that interfaced to a modified Samba server.
- Wrote software to process RealAudio and Windows Media streaming logs and give comprehensive metrics reports.
- Designed and maintained Oracle and MySQL databases.
- Configured and maintained BigIP load balancers and Extreme switches, including advanced troubleshooting of packet loss and latency
issues and configuring of advanced (OSPF) routing.
- Modified CGI scripts to improve searches and joins of a 3 table X 1.5 million row database. Improved search speeds from 2s to
150ms.
- Assisted in maintaining the internal network, including configuring Cisco Pix firewalls, Linux firewalls, Cisco routers, dual-horizon
name servers, mail servers, Samba servers, and a host of other minor administration tasks.
- Wrote a trouble-ticket tracking system for the tracking of internal and external problems.
1998 » 1999
Consultant
Headwaters Information Management Systems, Pettigrew, AR
- Wrote application in MFC C++ to take data from an Access database and send it over a serial port to a handheld micro, and vice versa,
including support for a multi-micro serial bus.
- Wrote application in ANSI C to run on a NEC V20 based handheld micro (Husky FS/2) to collect data from parking meters through an
infrared interface, and store them on a solid state disk for retrieval through a protocol and application mentioned above.
- Reverse-engineered an existing application to figure out how to communicate with a series of parking meters.
1996 » 1998
Tech Support - Senior System Architect
Epoch Internet, Irvine, CA
- Designed and implemented mail, news, radius authentication, DNS, and communication methodologies ("glue") enabling all these
services to be tied to a central registration server.
- Maintained a mail server with over 40,000 active accounts, and over 100,000 dormant accounts. Performed upgrades as
necessary.
- Implemented and maintained two news servers, first on DEC AlphaServers with individual volumes, and then on Sun UltraSparcs with MTI
fiberchannel RAID arrays.
- Helped train system administrators.
- Helped train technical support staff including authoring a training manual to that end.
- Debugged T1, OC3, and T1 frame relay lines over twisted pair, coax, and fiber connections.
- Wrote and maintained simple CGI scripts for client web sites.
- Assisted in the administration, backup, and maintenance of several web servers.
- Located and fixed several severe security holes, both in locally authored software and in off-the-shelf software.
- Administered several AIX machines providing a variety of services.
- Installed and configured Gauntlet, Altavista, and FWTK firewalls.
- Helped design and implement a modern Network Operations Center (NOC).
- Designed and implemented a high-capacity automated backup system, including building a secondary network, configuring Legato and
several tape robots, and installing network clients on WinNT, OSF/1, AIX, and Linux as well as database backup clients for Oracle and MS SQL server.
1996
Tech Support - Tech Support Level III
Support System Developers, Fairfax, VA
- Handled 50-60 calls a day, assisting clients with a wide variety of printer and sound card issues.
1994 » 1995
Junior Technician - Head Technician
Hacker Shack Computers, Woodbridge, VA
- Supervised a staff of 6 junior technicians, repairing and upgrading 5-10 PCs a day.
- Designed and implemented Novell and Windows for Workgroups LANs using a variety of physical link layers.
Volunteer Experience
2002 » Present
Webmaster
Evtech.org
2004 » Present
Webmaster
RadioAlchymy, Los Angeles, CA
1992 » 1993
Volunteer
Appalachia Service Project, West Virginia
Summary of Qualifications
Languages
- C - 12 years - DOS, unix, and AVR and PIC microcontrollers
- C++ - 6 years, Windows and unix
- CGI - 8 years, Perl, C, Java, and PHP
- Flex - 2.5 years, including Caringorm experience
- PHP - 7 years
- AVR assembly - 4 years
- PIC assembly - 2 years
- Classic BASIC - 1 year
- HTML - 9 years
- Java - 4 years
- Laszlo - 6 months
- Perl - 9 years
- Pick TCL - 1 year, administration
- Shell scripting (Bash/Tcl) - 9 years
- SQL (MS SQL/Oracle/Mysql/PostGres) - 10 years
- Tcl/Tk - 1 year
- VBA/Visual Basic - 2 years
Applications
- Apache (httpd)- 9 years
- Apache (activemq) - 2 years
- Courier - 1 year
- IIS - 2 years
- Innd (news) - 2 years
- Mysql (administration) - 8 years
- Named (BIND) - 5 years
- NSD - 2 years
- Oracle (administration) - 4 years
- Pick/D3 (administration) - 1 year
- Real Audio Servers - 2 years
- Sendmail - 6 years
- Qmail - 2 years
- VMWare Server - 2 years
- Windows Media Servers - 2 years
Operating Systems (administration and development)
- AIX - 2 years
- IRIX - 2 years
- Linux - 11 years as a sysadmin, 14 years as a user
- Novell - 1 year [administration only]
- OSF/1 (DEC unix) - 2 years
- SCO unix - 1 year [administration only]
- HPUX - 1 year
- Solaris - 4 years as a sysadmin, 6 years as a user
- VMS - 4 years as a user
- Windows 3.1/3.11 - 4 years
- Windows 95/98 - 2 years
- Windows 2000 - 7 years
- Windows 2003 - 2 years
- Windows NT - 3 years
- Windows XP - 2 years
Other
- Hardware/software design and integration - 4 years
- PCB layout - 1 year
- Analog/digital interface design and implementation - 4 years
- Hard disk based multitrack audio recording, mixing, and editing - 8 years (approximately 25 tracks)
- Electric vehicle design and implementation - 4 years (specifically most of my study has been in battery management of PbA, NiZn and NiMH - I hope to study LiFe soon)
Major Applications Written
- Metertrax CE - a flexible, configurable plugin-based application for querying, auditing, programming, and servicing
parking meters. Written in C++ for Windows CE.
- Novatrans CE - a series of plugins for downloading transactions from parking meters and uploading them via HTTP post
to web servers. Written in C++ for Windows CE.
- Metersync - a plugin for ActiveSync to support the internal database format of the above applications and ODBC
databases on the desktop.
- G2slta - a multithreaded simulated live transfer agent for RealAudio that collected information about what clips and
events to play and send out of a SQL database, and logged clip play times into a SQL database.
- Filed - a single threaded nonblocking file system access control daemon designed to give any service that can mount a
CIFS filesystem one-off tokenized URLS.
- ICM - software for the AtMega8 that implements timer-based task switching, two software UARTS, a software RTC,
complex power management, storage to a external flash filesystem, and a bootloader that will accept direct upload of a binhex file.
- Metrix - a complete suite for parsing, splitting into various customers, and analyzing log files. Written in ANSI C
and Perl
- Menu - a interactive menuing application for querying, auditing, programming, and servicing parking meters. Written
in ANSI C, compiles clean for DOS. Can be run on very lightweight computers. Includes hardware-based interrupt driven serial and infrared IO.
- TroubledTimes - a web-based trouble-ticket processing system, complete with a automated mail gateway, search
capacities, and a host of other features. Written in Perl.
- Uptrax/Downtrax - a interactive application for downloading and uploading data from Menu, mentioned above, into a
Access database. Written in C++ using MFC.
- Safetymate - a expert system for several platforms. Includes a windows CE version based on OGG audio files and a j2me
version based on AMR files, as well as a web version written in OpenLaszlo. All versions read a XML file which contains a decision tree and display a series of menus and
play audio clips to walks users through emergancy protocols.
- SheerMail - a SQL based, high performance, automatic indexing distributed mail system. One P-III running linux can
serve 8192 simultaneous transmit/receive channels at 20Kb/s per channel. (In tests, performance was limited by disk bandwidth to about 1500 channels). Supports POP3,
IMAPv4, and SMTP.
Major Applications Modified
- EW-Too - modified in too many ways to list
- PgMarket - modified in too many ways to list.
- Gated - modified to read OSPF routes out of a SQL table.
- Sendmail - modified to read DB lookups (virtuser, etc) out of a SQL table.
- University of Washington Imapd/Popd - modified to use SQL database for indexing of inbox rather than winding through disk, and to do
user lookups through SQL database.
- Procmail - modified to write indexing information into a SQL database while writing to mail to disk.
- Radiusd - modified to read DB lookups out of a SQL table.
- Samba - Server modified to interface with Filed (see above), client modified to not cache file data between sessions.
- Loughborough University Wbd (whiteboard software) - modified to send and receive on different ports instead of the same one, to
permit the sending of pdf files, and to permit changing the active page over the network.