Contact Information

Jonathan Pullen
27262 Principe
Mission Viejo, CA 92692

(home) 949-347-8225
(cell) 949-357-5701

sheer-pullen at sheer.us

Professional Experience

Mar 2005 - Current Fisix, Laguna Beach, CA
Consultant


		* Wrote a application to implement a expert system
		  on a number of platforms that walks users through
		  emergancy medical protocols based on simple
		  yes/no answers. Application gets protocol logic out
		  of a XML file and audio prompting out of OGG files.

		* Wrote a application in Perl to parse a complex XML file 
		  into a simple XML file and convert WAV files to OGG and AMR 
		  files and build a windows installer script to copy the appropriate
		  files to a PDA

		* Wrote a application in java 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 retreive 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 a 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 a 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 ramdisk 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
	

Jan 2003 - Jan 2005 Headwaters Data Management Systems, Pettegrew, AR
Consultant


		* 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

Mar 2002 - Aug 2002 Circle-R, Houston, Texas
Consultant


		* Wrote application in VBA to assist in sorting of assets 
		  to be distributed to franchise stores

Jan 2002 - Mar 2002 EV Parts, Lynwood, WA
Consultant


		* Converted several databases from a proprietary, non
		  documented format to a format used by a open source web
                  store

		* Wrote and modified a number of php scripts to support
		  functionality desired by evparts.com

		* Configured firewall, mail server, file server, and other
		  core functionality for evparts.com

May 2001 - Nov 2001 Loudeye Technologies, Seattle, WA (fka Encoding.com)
Senior System Architect


		* 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 
		  perform extended service checks on databases.

		* Wrote a modified version of RealAudio's g2slta (simulated live transfer agent) that 
		  chose which clips to play based on information stored in a database, and sent URL 
		  events at configurable times, including in the middle of clips.

		* Assisted in the porting of RealAudio plugins from Windows (MFC) to Linux.

Dec 1999 - May 2001 OnAir.com Streaming Networks, Irvine, CA (fka WWW.COM)
Senior System Architect


		* Designed and helped implement a streaming network capable of delivering 10,000 
		  simultaneous on-demand streams from a 2.1Tbyte SAN using Sistena Softare's Global 
		  File System.

		* Authored software to protect against unauthorized streaming and aid metrics 
		  collection by using tokenized URLs. (single threaded unix daemon that interfaced to 
		  a modified Samba server)

		* Authored 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 advanced (OSPF) 
		  routing configuration.

		* 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.

Mar 1998 - Oct 1999 Headwaters Information Management Systems, Pettegrew, AR
Consultant


		* Wrote application in MFC C++ to take data from a 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 a infrared interface, and store 
		  them on a solid state disk for retrieval through a protocol and application 
		  mentioned above.

		* Reverse engineered a existing application to figure out how to communicate with a 
		  series of parking meters.

Mar 1996 - Sep 1998 Epoch Internet, Irvine, CA
Tech Support - Senior System Architect


		* Designed and implemented mail, news, radius authentication, DNS, and communication 
		  methodologies ("glue") to enable 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 
		  ones. 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.

		* Assisted in the training of system administrators.

		* Assisted in the training of technical support staff, and wrote a training manual 
		  for technical support staff.

		* 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-1996 Support System Developers, Fairfax, VA
Tech Support -Tech Support Level III


		* Handled 50-60 calls a day, assisting clients with a wide variety of printer and 
		  sound card issues. 

1994-1995 Hacker Shack Computers, Woodbridge, VA
Junior Technician - Head Technician



		* 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.

Skills


Languages

		* C - 12 years  - DOS, unix, and MCU
		* C++ - 6 years, both MFC (windows) and unix 
		* CGI - 6 years, Perl and C and java and php
		* Flex - 1.5 years
		* PHP - 5 years
		* AVR assembly - 2 years
		* PIC assembly - 2 years
		* Classic BASIC - 1 year
		* HTML - 9 years 
		* Java - 2 years
		* Laszlo - 6 months
		* Perl - 7 years
		* Pick TCL - 1 year, administration
		* Shell scripting (Bash/Tcl) - 7 years
		* SQL (MS SQL/Oracle/Mysql/PostGres) - 8 years
		* Tcl/Tk - 1 year
		* VBA/Visual Basic - 2 years

Applications

		* Apache - 7 years
		* IIS - 2 years
		* Innd (news) - 2 years
		* Mysql (administration) - 6 years
		* Named (BIND) - 5 years
		* Oracle (administration) - 2 years
		* Pick/D3 (administration) - 1 year
		* Real Audio Servers - 2 years
		* Sendmail - 6 years
		* Qmail - 2 years
		* Windows Media Servers - 2 years

Operating Systems (administration and development)

		* AIX - 2 years
		* IRIX - 2 years
		* Linux - 9 years as a sysadmin, 12 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 - 5 years
		* Windows NT - 3 years
		* Windows XP - 2 years

Other


		* Hardware/software design and integration - 2 years
		* PCB layout - 1 year
		* Analog/digital interface design and implementation - 3 years
		* Hard disk based multitrack audio recording, mixing, and editing - 6 years (approximately 23 tracks)
		* Electric vehicle design and implementation - 3 years

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.