David Parsons
7107 SE 17th Ave
Portland, Oregon
(503) 235 5687
orc@pell.portland.or.us


Projects and work experience

Principal developer, Discount, 2007-present
Designed and wrote a C implementation of the markdown text-to-html formatting language. Discount is one of the fastest markdown processors available, and is used in a few commercial products.
Engineer Software Sys Apps IV, ADP Dealer Services, Nov 2004-May 2008, Jul 2010-Nov-2010
Helped maintain the ADP-specific variant of RedHat Linux that they use to run the back office machines at auto dealers. Responsible for updating drivers when our hardware vendor introduces new machines, and for updating the build environment to make it run faster and more portably. Implemented a snapshot backup system that uses the Linux lvm system, plus (trivially) wrote new rpm packages and patched existing ones to contain ADP-specific patches.
System administrator, Love Makes a Family, Inc., Jan. 2003-2004
Built a Windows network connecting donated Windows 98/ME workstations to a file server running FreeBSD. Built a pop3 mail server for the lmfamily.org domain (a virtual domain on my webserver machine).
Contract Programmer, GPSclock., Dec. 2001-Mar. 2002
Wrote a PicoBSD system for a NTP clock server product running on a Soekris net 4501, with a web interface for configuring and maintaining the thing. The web interface is written in C and shell – the development cuts of the ntpclock are being wedged into a 2mb flash card just to see how tightly I can wedge existing software onto a system.
Contract Programmer, Symantec, Inc., Mar. 2001-Sep. 2001
Helped finish a port of Symantec’s antivirus product for Lotus Notes on the AS/400. Finished the port of the Symantec AV engine to the AS/400, plus built makefiles to do the building in a sane fashion.
Developer, BitMover, Inc., Mar. 2000-Jan. 2001
Developer for Bitmover’s BitKeeper product, which was the spiritual ancester of git. I developed tools to extract source from RedHat Linux packages and repackage them into BitKeeper repositories so that they can be managed under version control, and I worked on the web interface for BitKeeper.
Contract Programmer, Tripwire Inc, Oct-Nov 1999
Ported Tripwire to Irix, Digital Unix, Solaris, Solaris/x86, and (trivially) RedHat Linux.
System Adminstrator Schrödinger, Inc., Jan. 1997-2001 (half-time)
  1. System administration for quantum chemical software company based in Portland, OR and Jersey City, NJ, maintaining a small network of Linux, Unix (primarily SGI IRIX), and Windows NT machines. Responsible for upkeep of the local area network, backup regimes, and mail and web servers.
  2. I also built PCs for Schrödinger – I have built about 35 machines for workstation and home use, running Windows NT, Linux, and various flavors of Windows.
  3. In 1993 or thereabouts, I ported the chemical modelling software Jaguar (formerly known as PS-GVB) to Linux.
Linux kernel development 1994-1999
I developed (and maintained for a while) the memory detection code that’s in the official Linux kernel.
Consultant, McAfee Associates, Jan. 1996-Aug. 1997, Mar. 1998-Mar 1999
  1. Ported McAfee’s VirusScan product from Microsoft DOS to SunOS, Solaris, Linux, and FreeBSD.
  2. Designed and was principal programmer for WebShield, McAfee’s Linux-based antiviral firewall product.

    WebShield contains code written in C, C++, Perl, and a tiny bit of Java. Aside from design and coding, I was also technical manager of the project during the development phase, and after the product went into release, did onsite visits to analyse and fix various bugs.

Database Administrator, Apple Computer, Inc, 1995
Helped tune databases, set up databases, and helped develop a schema for internal problem tracking software using a Sybase database. Also wrote various programs to import and export data from the Sybase database to other databases.
Consultant, Itron, Inc, 1993-1994
Brought in as a database guru, but ended up as a C++ programmer. Built a collection of C++ classes to wrap around Sybase to make a more-or-less database-independent toolkit for accessing and modifying data in a database. Used these classes to write programs to import and export data to and from handheld computers and IBM mainframe computers. Also built databases for development and testing, and was DBA for those databases.
Database Consultant, Sybase SQL Solutions, Inc, 1990-1993
Managed a large collection of duties, ranging from light system administration to fairly heavy-duty code and query optimization.
Software Engineer, Nixdorf Computer Corporation, 1989-1990
Programmed back-office software for point-of-sale computer systems. Designed and implemented HDLC interfaces for registers. UNIX system and uucp administration of a development network of 680x0 (Targon) and 80386 (SCO UNIX) machines. Wrote applications to install point-of-sale applications onto customer machines.
Independent Contractor, 1987-1989
Developed user interface for optics lab software; UNIX system and uucp administration of Xenix 80386 and J11 (Ultrix) machines.
Software Engineer, CPT Corporation, 1986-1987
Device driver development for MS-DOS, UNIX, and Intel iRMX operating systems. Participated in porting iRMX and UNIX to CPT 80386 workstations. Ported SCCS to MS-DOS and iRMX. Wrote testing programs for hardware development.
Software Engineer, NCR Comten, 1985-1986
Supported SNA software for NCR front-end processors. Designed and supported C development tools on UNIX and IBM VM systems.

Computer languages I’ve worked with

80386 assembly, 8086 assembly, Ada, Awk, BASIC, C, C++, Fortran, HTML, IBM 370 assembly, Java, Modula-2, Pascal, PDP-11 assembly, Perl, PHP, Shell, Sybase transact-SQL.

Computer systems I’ve worked on

Platform When Operating System(s)
PDP-11 1978-1992 RT-11, UNIX, RSTS-11
VAX 1982-1991 UNIX, VMS
IBM 4331 1985 DOS, TSO, UNIX
NAS 6660 1985 VM, TSO
AS400 2001 OS400
HP-2000/3000 1980
Terak 8510a 1979-1997 USCD Pascal & homebrew variants
IBM PC family 1985-now MS-DOS,Microsoft Windows(3.1,95,98,NT,2000), FlexOS, iRMX, OS/2, UNIX, Linux, FreeBSD, NetBSD, OpenBSD, Plan9, Darwin
Atari ST 1986-1992 GEM, Minix, MiNT
Targon 31 1989-1990 UNIX
Sun SPARC 1989-2004 SunOS, Solaris, NetBSD
Apple Macintosh 1987-now MacOS 7, NetBSD, MacOS X
SGI 1992-2001 IRIX
DEC Alpha 1992-2007 Digital Unix

Formal education

B.S., University of Wisconsin, Platteville, August 1984.
Major: Mathematics. Minor: Computer Science.

References available upon request.