P.O. Box 397167
Cambridge, MA 02139
Software should not be as hard to write as it sometimes seems to be. Too many projects find themselves behind schedule, or crippled by bugs, or stymied by an attempt to accommodate new features or to port to a new environment. But these problems are not inevitable: with the right design and infrastructure, good coding style, and an enlightened attitude towards the development process, these problems can be forestalled. My goal as a software engineer is to continually discover better design and coding techniques which foster pleasant, robust, bug-free programming, and which are easier to apply than the alternatives.
I developed client- and server-side code for entering and displaying medical information on handheld devices. I developed simulators to perform automated testing, and synthesizers to emulate the data flows seen in real hospitals. I was also responsible for systems support of servers installed at customer sites.
I specialize in C and Unix, with an emphasis on clean, high-quality code, featuring simplicity, efficiency, portability, and security. I am particularly interested in working on networked databases and information servers, world-wide web development, multinational character sets and internationalization (Unicode, ISO 10646), and geographic information systems. I am also available for C or Unix training.
I maintained a homebrew in-house e-commerce system, implemented primarily as C CGI programs under Linux, which handled several thousand transactions per day.
I worked to improve the efficiency of the “Tax Machine”, an engine which supported various applications used by tax preparers.
I designed and taught a pair of relatively informal, beginning- and intermediate-level courses in C programming.
I was responsible for all software development work (in C under MS-DOS), including user interface, data reduction, data archival, instrument communication, and control firmware. I also designed and built data acquisition instruments, and participated in laboratory and clinical verification of systems and instrumentation.
I wrote a Unix emulation library which was instrumental in porting large quantities of software to VMS. I worked on a “user-friendly” shell, and designed and managed the development of a graphical user interface system for software development tools. I designed a library interface for a set of configuration management tools.
C Programming FAQs: Frequently Asked Questions, Addison-Wesley, 1996.
“C Programming” in the Handbook of Programming Languages, Volume II, Macmillan Technical Publishing, 1998.
“Offline Data Storage and Retrieval” in C Unleashed, Sams, 2000.
References available upon request.