David Parsons
7107 SE 17th Ave
Portland, Oregon
(503) 235 5687

Projects and work experience

Engineer Software Sys Apps IV, ADP Dealer Services, Nov 2004-present.

Helped maintain the ADP-specific variant of RedHat Linux that we 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/webmaster, 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 is a revision control system somewhat like RCS, but better suited for large projects and project teams. 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).

  • 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.
  • 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.
  • 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) memory detection code for the mainline Linux kernel.

Consultant, McAfee Associates, Jan. 1996-Aug. 1997, Mar. 1998-Mar 1999.

  • Ported McAfee's VirusScan product from Microsoft DOS to SunOS, Solaris, Linux, and FreeBSD.
  • 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.

Developer, Mastodon Linux, 1997-Present

Mastodon is the Linux distribution I've been developing since approximately 1997. The bulk of the work I've put into this distribution is designing and maintaining installers, but it also contains some custom administration tools written in C++ and C.

Developer, Magicfilter, 1999-Present

This is a lpd filter written in C and m4 that allows you to print a variety of graphics and typesetting formats to arbitrary printers. I took over maintaining this printer filter in 1999 and rewrote it from scratch, combining the existing printer database with earlier work I'd done writing ad hoc printer filters for my own systems and converting the UNIX file program into a library that I could use to do file type detection.

Developer, Levee, 1982-1992, 1998-Present

Levee is a vi clone I created when I was using the Terak 8510a and wanted to have a vi on my own machine. I stopped working on it soon after Linux became available, but between 1982 and 1992 I ported in from USCD Pascal to MS-DOS to iRMX to FlexOS to GEM to Unix.

Miscellaneous projects

Over the years, I've done various small projects. Some of the more interesting ones include

  • Running a web hosting service that provides free web- and mailing list hosting to a small collection of nonprofit organizations.
  • Wrote a firewall package using the Linux kernel used in McAfee's WebShield product.
  • Wrote the automoderation robot Automod for the Usenet newsgroup soc.singles.moderated.
  • Wrote date-parsing code for a freely distributable version of the Unix at(1) utility program.
  • Contributed a chapter on code portability to Software Solutions in C, Dale Schumacher, editor, Academic Press (1994).
  • Wrote Cico, a uucp package for the Atari ST and IBM PC personal computer.
  • Ported Citadel (a computer bulletin-board system) to the Atari ST personal computer.

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

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-present) / 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-present) / SunOS, Solaris, NetBSD
Apple Macintosh / (1987-present) / MacOS 7, NetBSD
SGI / (1992-2001) / IRIX
DEC Alpha / (1992-2001) / Digital Unix

Formal education

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

References available upon request.