I have outstanding customer references available upon request, and in most cases can provide them for specific projects described here.
Document Index
In October 2003 I was named a Microsoft MVP
(Most Valuable Professional) for "Windows Servers - Security". This is a retrospective award
made to those who have made contributions in third-party support forums, and I earned mine
in the Broadband Reports Security Forum.
I've had a fulltime internet connection at my home office since 1994 and have
been responsible for setting up customer routers and firewalls since
that same year. I currently manage around a dozen customer networks,
firewalls, and internet servers.
Internet Infrastructure & Security
Specific areas of practice:
DNS Configuration and Hosting
- I've hosted DNS on my network of topologically diverse system of nameservers for years, and I've become adept at configuring BIND 9 to run in a maximally secure manner (details in my Tech Tip).
Sendmail Configuration
- I have many years of experience wading through sendmail configuration files, whether it be for anti-spam provisioning or simply having the server process mail in unusual ways.
Internet Security
- My interest in computer security long predates the modern internet. For many years I was adept at finding holes in UNIX systems that allowed me to escalate to root privileges. Whether it was breaking root on the VAX/11-780 in college with the vi editor or writing a mini debugger to subvert the kernel's ptrace() mechanism on the AT&T 3B2 UNIX, most systems "have a way" for those aspiring to root to acquire it.
With this background it seemed only natural that I'd move into the internet security arena.
Computer Facsimile
- I was the author of the first commercial release of VSI-FAX, the most widely-used commercial UNIX fax system on the market. Since 1988, I have been involved in nearly every area of computer facsimile: from the low-level modem drivers, imaging, overall server design, and even technical support.
UDP Client/Server Protocol
- I designed a UDP-based protocol and built the client/server library used by networked time clocks to report and query the central server. Both client and server were cross-platform -- UNIX and Windows NT -- and the protocol was apparently designed well enough that no changes were ever needed in the face of multiple revisions to the client and server modules.
Credit Card Authorization Multiplexor
- This UNIX server software accepts credit card authorizations requests from retail point-of-sale clients and routes them via a leased line to the credit card processor. This software reduced the time to run a purchaser's credit card from 30-45 seconds each to 3-5 seconds.
Modem-based File Transfer Communications
- I created a serial-communications module that did X- and Z-Modem transfers via serial I/O (over modem) and via TCP/IP, and had scripted EDI conversations with VAN (Value Added Network) receivers on the other end. This software ran on multiple UNIX platforms and on Windows NT from essentially the same source code. Written in C++, the customer has reported that my modules have been remarkably trouble free.
Sybase Application Data Extraction
- A customer needed to extract data from a Windows-based application that ran on top of Sybase, and I was able to do this via a pcAnywhere remote connection in several hours having only used Sybase once before. I created a set of scripts that cleanly extracted the data to CSV files such that the customer could run the process without my help. The link above is the Tech Tip I created from the process
Report-file parsing
- A customer in the payroll business bought another payroll company, and needed to transfer the data from the new company's system to his own. I wrote software in perl to parse HP PCL output and extract the key payroll data in an easy-to-import form in a fraction of the time that manual data entry would have taken.
Representative projects include:
Windows NT Color Print Driver
- For a medical-grade color imager, I created a printer driver for Windows NT 3.51, and it was very full featured. About 30,000 lines of C++, it supported many sophisticated scaling and color matching algorithms as well as extensive output-formatting options.
UNIX Process Control Manager
- On a Solaris system, I created a daemon that regulated the running processes during a critical data transfer operation: during this window, I/O heavy processes were throttled to minimize SCSI bus usage, and this was done via a the /proc process-control interface.
Software Portability
- This general area (rather than a specific project) has been part of my skillset for 20 years: I've worked on nearly every UNIX system ever made, with additional experience on Win32, CP/M and MS-DOS. This has given me an enormous sense for "what ports" and "what doesn't".
Notable projects include:
Embedded Linux Bootstrap/Installation System
- For a manufacturer of medical equipment that ran the Linux OS, I created the system that allowed for failsafe bootstrapping and software installation. The machine ran on PC-like hardware, had a hard drive for system software and storage, and a ZIP drive for installations and software updates. I created an extensive system for building boot images.
Wire Printer Controller
- I created a hardware and software system to integrate a PC with a Domino ink-jet printer that imprinted customer information and foot-measure markers on audio speaker wire.
I was also a volunteer English as a Second Language (ESL) instructor for many years, and I'm very comfortable in front of a crowd.
I have also been a technical reviewer on dozens of books, some with more involvement than others. I've been credited in at least these publications:
There are many more, but most of them don't seem to be on the shelf at the moment.
Perl
- I'm very strong with perl, having used it for many years. My early work was been text processing, but of late it's grown to include web applications and network tools. Many times I'll prototype an idea for a customer project in perl to get a feel for what's involved, then use this as a base to move forward with the "real" project.
But I'm not anywhere nearly as good as my brother Jeffrey, who wrote Mastering Regular Expressions for O'Reilly and Associates. The second edition is out now, and I've performed a full technical review. It's an epic work on the subject.
Java
- I'm not particularly strong with Java, but I have written a bit of real production software that talks to an IBM DB2 database via JDBC. It's all backend work, though, no GUI. I have excellent outside resources for Java help.
PostScript
- I have years of experience with Postscript: writing it by hand, debugging it, and even maintaining an interpreter.
Pick BASIC
- For many years I had quite a few customers who ran the Dataflow manufacturing system from Data Works (now Epicor), and I found that even UNIX bigots can find plenty of things to admire about Pick BASIC. This was quite a surprise to find such a well done system in BASIC.