Professional software engineer for 12 years, with an emphasis on Internet messaging systems (SMTP, MIME, NNTP). Expert programmer in C (12 years), Perl (10 years), PHP (5 years). Solid experience working with Red Hat Linux, Debian Linux, and FreeBSD. Comfortable with SunOS and Solaris (5 years). Past accomplishments include designing and implementing one of the world's most highly scalable mailing list archive systems and designing and implementing groundbreaking anti-spam Sendmail extensions in C.
| Software Engineer, RNK Telecom | 4/2005 - present |
Internal systems support engineer for a CLEC in the prepaid calling card and VoIP markets.
Designed and implemented PHP-based secure websites (e.g. https://www.revos.com) for signing up VoIP customer accounts. Web site backend consists of roughly 1,500 lines of code, supports credit card authorization, designed to be modular and easily customized by non-programmers.
Established the company's first centralized authentication system, using OpenLDAP and Red Hat Linux. Led effort to configure Unix workstations, mail clients, and internal web sites to authenticate from a single data source.
| Senior Software Engineer, GameLogic | 10/2003 - 3/2005 |
Operations software engineer for the company's Internet gaming application, designed and operated for Harrah's Casino.
Responsible for setting coding standards and policies for a group of 6-10 engineers, delegating tasks to junior engineers and reviewing their results.
Engineered tools for system performance reporting. Gathered requirements from management, defined project scope, wrote object model specification, assigned coding subprojects and QAed results.
Designed and implemented shell and Perl tools for maintaining split-horizon DNS zones for multi-layered networks.
Designed and implemented Perl software to handle on-call rotation schedules, including shift reminders, follow-me phone numbers and vacation time.
Wrote to specification Perl tools for system log rotation and analysis.
| Senior Software Engineer, Bluefire Security Technologies | 9/2002 - 5/2003 |
Project leader for the Integrity Manager component of Bluefire Mobile Firewall Plus, the company's handheld security software product.
Produced integrity manager rulesets for Bluefire Mobile Firewall Plus. Improved C++ tools used to generate intrusion detection databases.
Designed a protocol for identifying "noise" rulesets for the intrusion detection subsystem. Wrote C++ tools to audit device inventory databases and remove noise.
| Consultant, Carlisle Mosquito | 5/2001 - present |
System administrator for local newspaper. Prepared Web hosting system and search engine for CarlisleMosquito.org. Includes periodic ongoing technical support.
| Lead Engineer, RootsWeb.com | 11/1997 - 8/2002 |
Lead e-mail systems engineer for a genealogical data exchange company.
Maintained mailing list servers handling 500,000+ subscribers and delivering 5 million messages per day.
Proposed, designed and implemented http://archiver.rootsweb.com/, a massively scalable mailing list archive system supporting a store of 13+ million messages, comprising 60 GB of data. Written in Perl with a Berkeley DB back-end.
Designed and implemented mailing list administration tools in Perl. User interface designed for simplicity, clarity and ease of use for most common tasks. Collected feedback for debugging and refining software from users of 26,000 mailing lists.
Fixed bugs and added features to the SmartList mailing list system, using Bourne shell code and procmail rules. Implemented customized antivirus and antispam rules. Designed and implemented MIME tools in C for converting "multipart-alternative" messages to plain text. ftp://ftp.rootsweb.com/pub/unhtml.c
Designed and implemented, in C, extensions to Sendmail for blocking spam by detecting identical message bodies.
Extended Ron Guilmette's "wpoison" package to detect and block malicious web spiders. ftp://ftp.rootsweb.com/pub/flytrap-0.91.tar.gz
| Independent Contractor | 1996 - 1998 |
Reimplemented several RCS tools, in C, as a library for CVS.
Ported SIOD and Columbia MM to FreeBSD. Converted them to the GNU autoconf configuration framework.
Designed and implemented an HTTP client library (in Scheme) and dynamic loading support (in C and Scheme) for Guile, the GNU Scheme interpreter.
Implemented a mail gateway in Perl to translate Internet MIME messages to cc:Mail format.
Implemented a secure remote print spooler in C for HP/UX.
| Systems Programmer, University of Chicago | 7/1994 - 7/1997 |
Wrote HTML rendering code for "Phoenix," a WYSIWYG Web editor/browser written in Tcl/Tk and C. Implemented bulleted list support.
Staff programmer on "Phoenicia," a Web-based groupware system written in Perl. Designed and implemented a room scheduling application for facilities management.
Conceived, designed and implemented the reference implementation for a system of modular article filtering for Usenet newsreaders. http://www.unchi.org/~twp/modular-filtering.html
Acted as liaison to NAMCIC, the North American Medical Center Information Consortium. Participated in database schema design workshops.
| Software Engineer, Granada Hospital Group | 2/1994 - 6/1994 |
Implemented, from spec, a packet-based network protocol in C for managing billing data in a television-on-demand system.
| Programmer, Simmons Computing Service | 10/1993 - 12/1993 |
Wrote Informix database applications on SCO Unix.
| Assistant System Manager, Amherst College | 1992 - 1993 |
Installed and maintained software on Digital and Sun workstations. Assisted students and staff in computer center.
| Amherst College, Amherst, MA | graduated 1993 |
B.A. in Computer Science. Wrote honors thesis in compiler design for RISC architectures.
Operating Systems:Unix (Debian Linux, Red Hat Linux, FreeBSD, NetBSD, Solaris, SunOS, SCO, AIX, Ultrix), Windows 2000, Windows NT, Windows CE.
Languages: C/C++, Perl, PHP, Python, Lisp, Scheme, Tcl/Tk, sed, awk, sh, Pascal, 6502, 6809, Z-80.
Tools: CVS, Autoconf, BitKeeper, PostScript, Emacs, TeX, TPU, DCL.
Long-distance bicycling. Blues and folk guitar (can play a mean Leo Kottke). Film criticism. Juggling.